
Я использую Debian 6. Я сижу за прокси, поэтому я настроил Debian на использование этого прокси. Просмотр и любая HTTP и FTP активность через GUI работает нормально.
Я хотел обновить свой репозиторий пакетов, поэтому набрал в командной строке:
sudo aptitude
затем, если я попытаюсь обновить репозиторий (нажав «u»), aptitude остановится при попытке подключиться к FTP-серверу Debian, и это действие в конечном итоге прервется.
Но если попытаться:
$ su
# aptitude
работы по обновлению.
В чем разница между двумя вызовами? Переменные окружения $http_proxy
и $ftp_proxy
существуют в обеих оболочках.
решение1
Theвскоманда запускает другую оболочку как root (или кого-то еще, если вы укажете имя пользователя и правильный пароль). Эта оболочка получает все обычные переменные окружения, которые, конечно, включают переменные HTTP_PROXY и FTP_PROXY. Таким образом, это работает.
Theсудокоманда УДАЛЯЕТ ВСЕ переменные среды, за исключением специально выбранного подмножества... которое, конечно же, НЕ включает переменные HTTP_PROXY и FTP_PROXY, поэтому ваши команды не выполняются.
Ты можешь сделатьсудосохраните переменные *_PROXY, отредактировав файл конфигурации sudoers, используявизудокоманда (конечно).
Добавление следующего сделаетсудосохраните значения HTTP_PROXY и FTP_PROXY:
Defaults env_keep += "http_proxy ftp_proxy https_proxy HTTP_PROXY FTP_PROXY HTTPS_PROXY"
По совпадению, если вы добавите DISPLAY и HOME в этот список, вы также сможете использовать графические программы с sudo (им нужна переменная DISPLAY для подключения)
Defaults env_keep += "DISPLAY HOME"
Вы даже можете просто добавить эти две строки, вот так. (+=здесь ключ) Не забудьте добавить эти строки ближе к концу файла, так как в первых нескольких строках обычно задается 'env_keep' переменная с прямой '"="', который стирает все предыдущие значения.
решение2
Я сам с этим боролся и в конце концов воспользовался решением, предложенным на Ask Ubuntu: apt-get не работает с прокси
Если настройка
http_proxy
не работает, попробуйте отредактироватьapt.conf
. В
Ubuntuapt.conf
фрагментирован в/etc/apt/apt.conf.d/
каталоге.
В этом каталоге отредактируйте/etc/apt/apt.conf.d/01ubuntu
:APT { Acquire { http { Proxy "http://user:password@server:port"; }; }; };