3

Я использую Debian 6. Я сижу за прокси, поэтому я настроил Debian для использования этого прокси. Просмотр и любая активность HTTP и FTP через GUI работают нормально.

Я хотел обновить свой репозиторий пакетов, поэтому я набрал в оболочке:

sudo aptitude

затем, если я пытаюсь обновить репо (нажатие 'u'), aptitude останавливается при попытке получить доступ к FTP-серверу Debian, и это действие в конечном итоге истекает.

Но если это попытаться:

$ su
# aptitude

обновление работает.

В чем разница между двумя вызовами? Переменные среды $http_proxy и $ftp_proxy существуют в обеих оболочках.

2 ответа2

2

Команда su запускает другую оболочку от имени пользователя root (или кого угодно, если вы введете имя пользователя и правильный пароль). Эта оболочка получает все обычные переменные среды, которые, конечно, включают переменные HTTP_PROXY и FTP_PROXY. Таким образом, это работает.

Команда sudo УДАЛЯЕТ ВСЕ переменные среды, кроме специально выбранного подмножества ... которое, конечно, НЕ включает переменные HTTP_PROXY & FTP_PROXY, поэтому ваши команды не выполняются.

Вы можете заставить sudo сохранять переменные * _PROXY, отредактировав файл конфигурации sudoers с помощью команды visudo (конечно).

Добавление следующего заставит sudo сохранить значения 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 . В
Ubuntu apt.conf фрагментируется в каталоге /etc/apt/apt.conf.d/ .
В этом каталоге отредактируйте /etc/apt/apt.conf.d/01ubuntu:

APT {
  Acquire {
      http {
          Proxy "http://user:password@server:port";
      };
  };
};

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .