Ответы:
В некоторых выпусках sudo настраивается таким образом, что все переменные среды очищаются при запуске команды. Чтобы сохранить значение для вашего http_proxy и исправить это, вам нужно отредактировать / etc / sudoers, запустите:
visudo
Затем найдите строку, в которой говорится:
Defaults env_reset
и добавьте после этого:
Defaults env_keep = "http_proxy ftp_proxy"
Вещи начнут работать как положено.
Спасибо kdogksu на форумах Ubuntu за то, что нашли решение для этого.
Чтобы исправить не только apt-get, но и графические утилиты X11, например, synaptic, mintintall, ...), следующая строка /etc/sudoers
должна выполнить эту работу:
Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"
Использовать это.
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
Это то, что я использую. Работает отлично.
Apt также позволяет размещать отдельные настройки в файлах /etc/apt/apt.conf.d/
, так что это имеет тот же эффект, что и выше, но может быть проще поддерживать, если у вас есть другие строки в .conf
файле:
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf.d/05proxy
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
apt.conf
.
/etc/apt/apt.conf
или использовать файл конфигурации в /etc/apt/apt.conf.d
.... либо работает! :-)
E: Syntax error /etc/apt/apt.conf:2: Extra junk at end of file
То, что работало для меня, было:
sudo http_proxy=http://yourserver apt-get update
Что немного странно, потому что простой экспорт http_proxy и последующее выполнение sudo echo $ http_proxy послушно распечатали экспортированное значение
$http_proxy
расширяется до того, как sudo даже запускается.
export http_proxy=http://proxyusername:proxypassword@proxyaddress:proxyport
sudo apt-get update
Экспорт не должен нуждаться, sudo
и если ваш прокси-сервер анонимный, просто откажитесь от proxyusername:proxypassword@
части.
wget
?
Если это временная конфигурация , вы можете попробовать это: sudo bash -c 'http_proxy = "http: // <proxy_host>: <proxy_port> /" apt-get update'
Это необходимо, поскольку переменная окружения должна быть определена для учетной записи «root». Делать и экспортировать раньше не должно работать.
Для постоянной настройки вам придется изменить системный файл. Это уже описано в следующем ответе о том, как проверить, действительно ли применяется сетевой прокси? ,
Ubuntu невероятно враждебен к аутентификации прокси. Я использую ноутбук Ubuntu на работе, и количество поломок невероятно.
Synaptic, Apt, Firefox, Chromium и т. Д. Используют разные методы для указания прокси, и негде безопасно указать учетные данные.
Некоторые ошибки по теме: https://bugs.edge.launchpad.net/ubuntu/+source/msttcorefonts/+bug/220070
https://bugs.edge.launchpad.net/ubuntu/+source/apt-cacher/+bug/198138
https://bugs.edge.launchpad.net/ubuntu/+source/apt/+bug/433827
https://bugs.edge.launchpad.net/ubuntu/+source/b43-fwcutter/+bug/683630
Предложение Оли использовать экспорт - единственный неопределенно безопасный способ сделать это. Иногда также возможно «выдумать» поддержку прокси, если прокси-сервер использует вторичную аутентификацию, чтобы минимизировать нагрузку на основные серверы аутентификации (скажем, возможно, Active Directory). Именно здесь первое прокси-соединение аутентифицируется прокси-сервером против AD, затем в течение заданного периода времени (обычно 5 минут) все остальные соединения «доверяются» этому пользователю. Таким образом, вы можете открыть Firefox, просматривать Интернет (где угодно), затем попробовать свою утилиту (wget, synaptic и т. Д.), Указав прокси, но оставив имя пользователя пустым.
Ubuntu, как правило, враждебен к любой корпоративной среде просто потому, что позволяет так легко читать пароли. Seahorse - главный преступник, но Network Manager также шокирует - подключайтесь к любой сети с аутентификацией PEAP, и вы только что сохранили свой пароль в апплете, чтобы каждый мог увидеть, кто может одолжить ваш ноутбук. По всей видимости, совместное использование ноутбуков считается кощунством на земле Linux, так как разработчики Seahorse отвергли заявления о ненадежности. После этого у меня не было сердца, чтобы связаться с разработчиками сетевого менеджера.
Вы пытались редактировать /etc/apt/apt.conf
? Я использую это, чтобы использовать apt позади нашего корпоративного прокси.
Acquire::http::proxy "http://user:password@host:port/";
Я полагаю, что apt использует это значение, если в вашей оболочке не определено $ http_proxy (то есть $ http_proxy имеет преимущество).
apt.conf
все еще следует использовать. Вы можете увидеть, какие параметры конфигурации apt считает установленными, используя apt-config dump
.
Если вы хотите запустить «sudo apt-get update» через прокси в командной строке, используйте команду ниже,
sudo apt-get -o Acquire::http::proxy="http://user:password@host:port/" update;