как настроить apt-get для работы через прокси?
3 ответа
в /etc/apt/apt.conf добавьте строку:
Acquire::http::Proxy "http://MYDOMAIN\MYNAME:MYPASS@MY.PROXY.COM:MYPORT"
От: http://ubuntuforums.org/showthread.php?t=96802
(Примечание: полностью украден из этого ответа на мой аналогичный вопрос по SF. Кред Гризли)
http_proxy="http://host:port" apt-get something
должно сработать.
Если вам требуется аутентификация, попробуйте
http_proxy="http://user:pass@host:port" apt-get something
И если вы хотите, чтобы это было постоянным, вам, вероятно, следует установить http_proxy (и ftp_proxy?) переменные в вашем ~/.bashrc
чтобы все ваши прокси-совместимые приложения работали в будущем, например, 'wget'.
Прокси-сервер указывается путем установки переменных среды http_proxy
, ftp_proxy
и all_proxy
, локально (например, в ~/.bashrc
) или глобально (например, в /etc/bash.bashrc
). Эти параметры учитываются практически всеми пакетами сетевого программного обеспечения (такими как apt-get, wget, curl и т.д.):
# HTTP proxy without authentification
export http_proxy="http://host:port"
# HTTP proxy with authentification
export http_proxy="http://user:pass@host:port"
Однако их установка не помогает при запуске sudo apt-get ...
- и это из-за этой строки в /etc/sudoers
:
Defaults env_reset
Эта строка сбрасывает все переменные окружения при использовании sudo
по соображениям безопасности. Чтобы сохранить значения http_proxy
и т.д. В вызове sudo
, вы можете указать исключения для env_reset
через env_keep
:
# Exception specific to the command apt-get
Defaults!/usr/bin/apt-get env_keep="http_proxy https_proxy ftp_proxy"
# Exception specific to the user joe
Defaults:joe env_keep="http_proxy https_proxy ftp_proxy"
Таким образом, вы получаете apt-get
чтобы соблюдать глобальные настройки для http_proxy, вместо дублирования настроек для apt-get
в каком-то непонятном специфичном для apt файле конфигурации.