Экспорт переменных прокси в рецепты GNU Make
Экспортируйте окружение прокси для команд рецептов GNU make и не теряйте shell export между отдельными строками рецепта.
make запускает загрузчик; загрузчик решает, как использовать прокси. В GNU make экспортируйте переменные на уровне Makefile, когда каждая нужная рецептура должна их получить:
export http_proxy := http://proxy.example:8080
export https_proxy := http://proxy.example:8080
fetch:
curl --fail --output package.tar.gz https://downloads.example/package.tar.gz
Строка рецепта начинается с табуляции. Директивы export относятся к синтаксису make и передают значения в окружение команд.
shell export в одной строке рецепта обычно исчезает до следующей строки, потому что GNU make вызывает отдельный shell для каждой строки. Для одной команды используйте вместо этого присваивание shell прямо при этой команде:
fetch:
http_proxy=http://proxy.example:8080 https_proxy=http://proxy.example:8080 curl --fail https://downloads.example/package.tar.gz
Используйте документированные имена переменных и протокол прокси загрузчика. Если сборка может использовать публичную конечную точку HTTP, выберите кандидата из списка HTTP-прокси для этих значений окружения. Исполняемому файлу, который игнорирует эти переменные, нужна собственная опция прокси. Учётные данные лучше передавать через окружение сборки, чем записывать в Makefile.
Эти экспорты влияют на дочерние команды. Они не меняют окружение родительского терминала после завершения make.