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

Используйте ExitCode, если Ваше основное имеет пустую подпись возврата, иначе необходимо "установить" его значением, которое Вы возвращаете.

Среда. Свойство

ExitCode, Если Основной метод возвращается пусто, можно использовать это свойство для установки кода выхода, который будет возвращен к среде вызова. Если Основной не возвращается пусто, это свойство проигнорировано. Начальное значение этого свойства является нулем.

4
задан 09.05.2020, 14:37

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/

5
ответ дан 09.05.2020, 14:38
  • 1
    Вместо того, чтобы РЕШИТЬ проблему, всегда ОБХОДНЫЕ РЕШЕНИЯ... Добро пожаловать в мир Linux! – 6 revs, 2 users 78% 09.05.2020, 14:38
  • 2
    Интересный подход, я didn' t знают об этом. – balpha 09.05.2020, 14:38

Я обнаружил, что для меня работает следующее, что касается использования 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 .

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

16
ответ дан 09.05.2020, 14:38
  • 1
    Я думаю, что можно использовать set | grep -i proxy, чтобы проверить, установлен ли прокси - вероятно, причина, я нашел, что другой метод был то, потому что это так или иначе wasn' t набор. – jsoverson 09.05.2020, 14:39
  • 2
    Это намного лучше, чем принятый ответ. – balpha 09.05.2020, 14:39
  • 3
    Ха-ха-ха, я делал ту несправедливость в течение многих лет и всегда настраивал прокси для Кв. дополнительно. Со всем должным уважением, какой идиот придумал идею, что Вам нужен пустой конфигурационный файл для способного для чтения http_proxy переменной? Существует ли вариант использования, где Вы определили прокси в/etc/environment, и склонный не должен использовать его? Хорошо, если я хочу использовать apt-cacher-ng, но затем я могу сделать это явно в apt.conf?! – balpha 09.05.2020, 14:40
  • 4
    Огромное спасибо! Я работал над этим в течение многих дней! Теперь это наконец работает! – 2 revs 09.05.2020, 14:40
  • 5
    Действительно работал на меня! спасибо – balpha 09.05.2020, 14:41

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

sudo apt-get install REQUIRED_PACKAGE

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

sudo -E apt-get install REQUIRED_PACKAGE

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

0
ответ дан 09.05.2020, 14:39

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

export http_proxy=proxy.mycompany.com:80

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

echo $http_proxy
1
ответ дан 09.05.2020, 14:39
  • 1
    Да, к сожалению, я попробовал в значительной степени все эти небольшие приемы, найденные в сети:-( – 11 revs, 4 users 67% 09.05.2020, 14:40

Чтобы добавить к Уилфу, я запустил следующую команду, чтобы автоматизировать загрузку через 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
2
ответ дан 09.05.2020, 14:40

Теги

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