apt-get не работает за прокси

Моя компания использует HTTP-прокси, и поэтому наши различные серверы Ubuntu 12.04 должны быть правильно настроены, а именно: для параметра \etc\apt\apt.conf.d\80proxy установлено значение:

Acquire::http::Proxy "http://proxy.mycompany.com:80";

Acquire::http::No-Cache true;

Теперь, через несколько дней, этот метод внезапно остановился. работает: я сталкиваюсь с ошибками несоответствия суммы. Я испробовал все обычные приемы, найденные в stackoverflow или в Интернете , среди прочего:

sudo rm -fR /var/lib/apt/lists/*
sudo apt-get clean

Но, похоже, ничего не работает. Я даже переключился на FTP-сервер, без какой-либо удачи. Какое радикальное решение этой проблемы? Вероятно ли, что у прокси-сервера есть какая-то проблема? Что бы это могло быть?

Использование Ubuntu 12.04

4
задан 6 February 2014 в 02:56

5 ответов

Чтобы использовать apt-get через прокси-сервер, я делаю следующее - вам нужно иметь доступ к Интернету (например, через браузер, такой как Firefox):

sudo apt-get --print-uris install PROGRAM

Это печатает URL-адреса (и другую информацию, такую ​​как md5sums) пакетов, необходимых для установки, чтобы вы могли скачать их. Например, используя supertux:

wilf@comp:~$ sudo apt-get install --print-uris supertux
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  supertux-data
The following NEW packages will be installed
  supertux supertux-data
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 59.4 MB of archives.
After this operation, 80.0 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
'http://gb.archive.ubuntu.com/ubuntu/pool/universe/s/supertux/supertux-data_0.3.3-6_all.deb' supertux-data_0.3.3-6_all.deb 58590640 MD5Sum:68bd36f2c262f7caed1b5c947977202a
'http://gb.archive.ubuntu.com/ubuntu/pool/universe/s/supertux/supertux_0.3.3-6_i386.deb' supertux_0.3.3-6_i386.deb 804782 MD5Sum:a49c6c3c918bae2c968b3da6ac725b06

Затем загрузите файлы .deb по заданным ссылкам (предпочтительно в пустую папку) через браузер, который работает через прокси-сервер и т. Д., И вы можете затем установить их с помощью Software Center; или используя cd /FOLDER/WITH/DOWNLOADED-DEB-FILES и одну из этих команд в терминале

dpkg -i *.deb
gdebi *.deb 

Это немного медленно и раздражает, но, похоже, работает через прокси HTTP. Вы также можете получить пакеты с http://packages.ubuntu.com/

0
ответ дан 6 February 2014 в 02:56

Я обнаружил, что для меня работает следующее, что касается использования apt только из терминала:

  1. Оставьте /etc/apt/apt.conf пустым, так что apt возвращается к $*_proxy переменные окружения.
  2. Убедитесь, что переменные окружения установлены правильно: например, вы можете добавить в .bashrc:

    http_proxy="http://username:password@proxyserver:port"
    # And so on for other proxy settings like https_proxy and ftp_proxy
    

    Если ваше имя пользователя или пароль содержат какие-либо специальные символы, они могут быть URL в кодировке .

  3. Заставьте sudo использовать ваши переменные окружения, а не свои собственные. Это делается путем редактирования файла /etc/sudoers. Будьте осторожны при этом! Используйте только команду sudo visudo для редактирования файла; любые ошибки могут привести к невозможности повторного входа в режим sudo! Добавьте следующее:

    Defaults env_keep+="http_proxy https_proxy ftp_proxy socks_proxy"
    

    Это гарантирует, что sudo сохранит эти переменные при выполнении sudo apt-get install ... и т. Д.

Я узнал об этом из apt-get howto в Ubuntu .

Дайте мне знать, если это работает :)

0
ответ дан 6 February 2014 в 02:56

Чтобы добавить к Уилфу, я запустил следующую команду, чтобы автоматизировать загрузку через Chrome. Firefox, я понимаю, может быть даже проще.

yes | sudo apt-get --print-uris install PROGRAM-NAME-HERE | grep http | awk '{print $1 }' | tr -d \' | while read -r line; do google-chrome "$line"; done

РЕДАКТИРОВАТЬ: так что весь ответ будет в одном посте, как только закончится загрузка просто

cd /FOLDER/WITH/DOWNLOADED-DEB-FILES; dpkg -i *.deb
0
ответ дан 6 February 2014 в 02:56

Я не знаю, пытались ли вы это уже сделать, но как насчет:

export http_proxy=proxy.mycompany.com:80

Вы можете проверить это потом с помощью:

echo $http_proxy
0
ответ дан 6 February 2014 в 02:56

Одна из ловушек здесь заключается в том, что если после настройки вашего прокси-сервера в качестве непривилегированного пользователя вы запускаете

sudo apt-get install REQUIRED_PACKAGE

, где REQUIRED_PACKAGE - это программное обеспечение, которое вы хотите установить, и вы по-прежнему видите, что оно зависает при обращении к компьютеру за пределами вашего компьютера. прокси, тогда он, скорее всего, сработает, передавая -E команде sudo следующим образом ...

sudo -E apt-get install REQUIRED_PACKAGE

Это приводит к выполнению команды в качестве пользователя root с использованием текущей среды (настроек среды прокси-сервера)

0
ответ дан 6 February 2014 в 02:56

Другие вопросы по тегам:

Похожие вопросы: