На этот вопрос уже есть ответ здесь:
Чтобы команды apt-get update/upgrade/install
работали, я добавил информацию о прокси в файл /etc/environment
. Например:
http_proxy="http://proxy-chain.acmewidgets.com:8080/"
https_proxy="https://proxy-chain.acmewidgets.com:8080/"
ftp_proxy="ftp://proxy-chain.acmewidgets.com:8080/"
socks_proxy="socks://proxy-chain.acmewidgets.com:8080/"
Затем, и это важно для моей установки (не уверен почему - это мой вопрос), я должен войти в режим суперпользователя, чтобы заставить apt-get
работать. Как я уже сказал, я не уверен почему, но простое предварение вышеупомянутых команд apt-get командой sudo
не работает для меня. Например, когда я выполняю sudo apt-get update
, окно терминала зависает следующим образом:
somedude@ACME-WIDGETS-03:~$ sudo apt-get update
0% [Connecting to us.archive.ubuntu.com (91.189.91.13)] [Connecting to security
Что работает, так это ввод sudo su
в командной строке, а затем выполнение команд apt-get
БЕЗ предварения sudo
. Мне приходится делать это, даже если я работаю в терминале суперпользователя (открываю его, выполнив sudo gnome-terminal
). Пока я не выполню команду sudo su
, настройки прокси в /etc/environment
не видны. Я проверил это, выполнив echo $http_proxy
до и после su
; до: ничего не появилось, после: появилось то, что было установлено в /etc/environment
.
Это не большая проблема, потому что я могу получать свои обновления и делать свои установки; но идея Ubuntu состоит в том, чтобы использовать sudo, чтобы вы случайно не нанесли вред, находясь в режиме суперпользователя. Так что же происходит, как вы думаете? Спасибо.
Это ожидаемое поведение - sudo
сброс среда по умолчанию. Запуск корневой оболочки с sudo su
является одним обходным решением. Можно также изменить sudo
поведение (см. связанную страницу).