приобрести :: http :: proxy только для указанных репозиториев

Как и в ответе @ oliv, вам нужно объявить его как массив. Более безопасный способ объявить его в виде массива заключается в следующем:

declare -a NIIFILES=( "$INPUT_DIRECTORY"/*.nii )

Он дает немного больший контроль над контентом, поскольку он, несомненно, помечает его как массив для следующего разработчика, который его увидит.

Более кратким способом, или если пространство может позже стать проблемой (из-за слишком большого количества файлов / папок в дереве), вы можете использовать:

for FILE in "INPUT_DIRECTORY"/*.nii; do
  FILENAME="$(basename $FILE $NIIEXT)"
  ${N4} -d ${DIMENSION} -i ${FILENAME}.nii -s ${N4_SHRINK_FACTOR} -c ${N4_CONVERGENCE} -b ${N4_BSPLINE_PARAMS} -o ["(${SEGMENTATION_N4_IMAGES}/${FILENAME})".nii,"(${BIAS_DIRECTORY}/${FILENAME})".nii.gz] --verbose 1
done

Конечно, все зависит от предпочтений. Эти и подобные структуры можно увидеть в в этом вопросе о переполнении стека .

Надеюсь, это поможет.

9
задан 17.04.2020, 22:20

2 ответа

Наконец-то я заработал, как хотел.

Для каждого локального зеркала вы должны добавить такую ​​строку:

Acquire::http::proxy::local.mirror.address "DIRECT";

Итак, в /etc/apt/apt.conf я получил что-то вроде:

Acquire::http::Proxy "http://yourproxyaddress:proxyport";
Acquire::http::proxy::local.mirror.address "DIRECT";
Acquire::https::Proxy "http://yourproxyaddress:proxyport";
Acquire::ftp::Proxy "http://yourproxyaddress:proxyport";
Acquire::socks::Proxy "http://yourproxyaddress:proxyport";

Таким образом, я могу использовать наш веб-прокси для внешних / внешних репозиториев и иметь возможность использовать наше зеркало локального репозитория без веб-прокси.

9
ответ дан 17.04.2020, 22:21
  • 1
    Это работает отлично, но где документация для этого?? – Ant 17.04.2020, 22:21
  • 2
    @chronospoon, я думаю, что способные авторы думают, что Вы - ведущее устройство в Python и будете знать точно, как эта часть работает. 8-) – Eric O Lebigot 17.04.2020, 22:22
  • 3
    Наоборот может быть похожим на это: Acquire::http::proxy::HOST_NAME_TO_BE_PROXIED "http://yourproxyaddress:proxyport";, например: Acquire::http::proxy::download.docker.com "http://1.2.3.4:1234"; – Ant 17.04.2020, 22:22

Вот как я решаю эту проблему.

Удалите все строки получения в apt.conf и верните его в исходное состояние.

Теперь экспортируйте ваш http_proxy как

export http_proxy=http://username:password@host:port 
export no_proxy=.xyz.org

, где xyz.org - имя вашего локального домена.

Теперь, наконец, запустите apt-get следующим образом.

sudo -E apt-get update

Опция -E делает переменную http_proxy доступной для apt-get. Вот и все. Прокси теперь используется для всех внешних подключений, а не для внутренней сети.

0
ответ дан 17.04.2020, 22:20
  • 1
    Этот метод не совместим с остальной частью системы. – dcpartners 17.04.2020, 22:21

Теги

Похожие вопросы