Как избежать sudo -i для обновления [duplicate]

Мне нужно настроить прокси. В etc/apt/ не было файла apt.conf, поэтому я создал его с помощью nano.

Но я не понимаю, что мне там нужно писать. Я написал http_proxy = http://lgn:pwd@192.168.1.254:8080/, а затем перезапустил networking. Но когда я пытаюсь apt-get update - это не работает.

На самом деле я не понимаю, какой порт и ip я должен написать в файле apt.conf (был пример с 192.168.1.254 ip и 8080 портом, поэтому я решил использовать их).

55
задан 11 April 2013 в 20:19

11 ответов

Чтобы использовать прокси-сервер, вам нужен прокси-сервер. IP и порт должны быть с этого прокси-сервера. Вход и pwd должны быть вашим пользователем и паролем на прокси-сервере (если для прокси требуется вход в систему).

С сайта help.ubuntu.com:

Метод файла конфигурации APT Этот метод использует файл apt.conf, который находится в вашем каталоге / etc / apt /. Этот метод полезен, если вы хотите, чтобы apt-get (а не другие приложения) постоянно использовали http-прокси. На некоторых установках не будет установлен файл apt-conf. Измените файл apt-conf (или создайте новый, если у вас его еще нет), используя редактор по вашему выбору. sudo nano /etc/apt/apt.conf Добавьте эту строку в файл /etc/apt/apt.conf (замените свои данные для вашего прокси-адреса и проксипорта). Acquire::http::Proxy "http://yourproxyaddress:proxyport"; Сохранить файл apt.conf.

Если вашему прокси требуется логин / пароль, замените:

"http://yourproxyaddress:proxyport";

на:

"http://username:password@yourproxyaddress:proxyport";

, используя имя пользователя и пароль с прокси-сервера. [ ! d11]

81
ответ дан 17 July 2018 в 22:58

Чтобы использовать прокси-сервер, вам нужен прокси-сервер. IP и порт должны быть с этого прокси-сервера. Вход и pwd должны быть вашим пользователем и паролем на прокси-сервере (если для прокси требуется вход в систему).

С сайта help.ubuntu.com:

Метод файла конфигурации APT Этот метод использует файл apt.conf, который находится в вашем каталоге / etc / apt /. Этот метод полезен, если вы хотите, чтобы apt-get (а не другие приложения) постоянно использовали http-прокси. На некоторых установках не будет установлен файл apt-conf. Измените файл apt-conf (или создайте новый, если у вас его еще нет), используя редактор по вашему выбору. sudo nano /etc/apt/apt.conf Добавьте эту строку в файл /etc/apt/apt.conf (замените свои данные для вашего прокси-адреса и проксипорта). Acquire::http::Proxy "http://yourproxyaddress:proxyport"; Сохранить файл apt.conf.

Если вашему прокси требуется логин / пароль, замените:

"http://yourproxyaddress:proxyport";

на:

"http://username:password@yourproxyaddress:proxyport";

, используя имя пользователя и пароль с прокси-сервера. [ ! d11]

81
ответ дан 24 July 2018 в 13:33

Должно работать следующее:

Acquire::http::proxy "http://lgn:pwd@192.168.1.254:8080/"; Acquire::https::proxy "http://lgn:pwd@192.168.1.254:8080/";
18
ответ дан 17 July 2018 в 22:58

Что вы можете сделать, так это также попытаться запустить команду с sudo -E, которая примет настройки среды. Кажется, это работает для меня, когда я пытаюсь обновить, добавить-apt-репозиторий и установить. Пример:

sudo -E add-apt-repository ppa:xxxxx

Согласно @David Foerster, это работает только для ручного взаимодействия с использованием оболочки, но оно не будет работать на автоматизированных задачах и службах, вызывающих Apt без взаимодействия с пользователем.

0
ответ дан 17 July 2018 в 22:58

Это более общий ответ вместе с apt config.

Так как там много мест для настройки параметров прокси-сервера, он может запутаться при начале. Позвольте мне подвести некоторые вещи и предложить некоторые хорошие практики.

Для консольных программ

Пример: wget, git и почти все консольные приложения, которые подключаются к Интернету.

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

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/ export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

Иначе, если вы хотите использовать одни и те же настройки каждый раз для всех пользователей, используйте

установить переменные среды

$ nano /etc/bash.bashrc export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/ export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

Настроить в /etc/environment

$ nano /etc/environment https_proxy="http://myproxy.server.com:8080/" ftp_proxy="http://myproxy.server.com:8080/" ...

Настроить в /etc/environment

Откройте сетевые настройки и установите сетевой прокси-сервер вашей сети.

Сеть -> Сетевой прокси -> Настроить -> Применить к системе в целом. [ ! d14]

Но это может оказаться неприемлемым, если у вас есть аутентификация для прокси.

Для apt.

Вам нужно сделать некоторую дополнительную работу для apt, так как, кстати, apt не подчиняется переменным среды,

$ nano /etc/apt/apt.conf Acquire::http::Proxy "http://USERNAME:PASSWORD@SERVER:PORT"; Acquire::https::Proxy "https://USERNAME:PASSWORD@SERVER:PORT";

Для всего, что выходит из этой области, должна быть опция для настройки параметров прокси-сервера в самом приложении. Если нет, извините;)

11
ответ дан 17 July 2018 в 22:58

Оригинальный вопрос может быть в неправильном направлении. Я считаю, что вы хотите настроить прокси-сервер в Linux?

Ну, это совсем не так, как хотелось бы использовать существующий прокси из среды Linux.

Если ваш вопрос первый, то используйте любые сторонние службы для настройки прокси-сервера в Linux. Примером может быть squid.

Простые команды для установки squid:

$ sudo apt-get install squid3

Затем отредактируйте конфигурацию, чтобы разрешить локальную сеть (в этом случае ваша собственная машина). $ sudo vi /etc/squid3/squid.conf

Добавить / отредактировать следующие строки:

http_access allow local_net acl local_net src 192.168.1.0/255.255.255.0

Предполагая, что ваш IP-адрес для машины Linux находится в блоке 192.168.1 / 24 .

0
ответ дан 17 July 2018 в 22:58

Должно работать следующее:

Acquire::http::proxy "http://lgn:pwd@192.168.1.254:8080/"; Acquire::https::proxy "http://lgn:pwd@192.168.1.254:8080/";
18
ответ дан 24 July 2018 в 13:33
  • 1
    Есть ли разница в том, какой порт и ip использовать? – lapots 17 February 2013 в 18:36
  • 2
    Ну, да, вам нужно указать правильные данные для прокси-сервера, который вы хотите использовать, конечно. – Dennis Kaarsemaker 17 February 2013 в 18:37
  • 3
    er ... ip - это IP-адрес маршрутизатора? Я имею в виду этот ip, который я использовал из примера, но все настройки маршрутизатора настраиваются в браузере с помощью 192.168.1.1 ip. Я должен использовать .1? и логин и пароль должны быть корнем или маршрутизатором ubuntu? – lapots 17 February 2013 в 18:40
  • 4
    Вы даже знаете, что делаете? Как вы знаете, что вам нужно использовать прокси-сервер, если вы не знаете его деталей? – Dennis Kaarsemaker 17 February 2013 в 18:47
  • 5
    Тогда спросите своего учителя. Это не «моя домашняя работа для меня». сайт. – Dennis Kaarsemaker 17 February 2013 в 18:51

Что вы можете сделать, так это также попытаться запустить команду с sudo -E, которая примет настройки среды. Кажется, это работает для меня, когда я пытаюсь обновить, добавить-apt-репозиторий и установить. Пример:

sudo -E add-apt-repository ppa:xxxxx

Согласно @David Foerster, это работает только для ручного взаимодействия с использованием оболочки, но оно не будет работать на автоматизированных задачах и службах, вызывающих Apt без взаимодействия с пользователем.

0
ответ дан 24 July 2018 в 13:33
  • 1
    Это не поможет автоматическим задачам и службам, вызывающим Apt без взаимодействия с пользователем. – David Foerster 20 June 2017 в 20:05
  • 2
    Спасибо за уведомление, я добавлю ваш комментарий к ответу. – Frank Qiu 20 June 2017 в 20:53

Это более общий ответ вместе с apt config.

Так как там много мест для настройки параметров прокси-сервера, он может запутаться при начале. Позвольте мне подвести некоторые вещи и предложить некоторые хорошие практики.

Для консольных программ

Пример: wget, git и почти все консольные приложения, которые подключаются к Интернету.

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

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/ export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

Иначе, если вы хотите использовать одни и те же настройки каждый раз для всех пользователей, используйте

установить переменные среды

$ nano /etc/bash.bashrc export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/ export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

Настроить в /etc/environment

$ nano /etc/environment https_proxy="http://myproxy.server.com:8080/" ftp_proxy="http://myproxy.server.com:8080/" ...

Настроить в /etc/environment

Откройте сетевые настройки и установите сетевой прокси-сервер вашей сети.

Сеть -> Сетевой прокси -> Настроить -> Применить систему в целом. [ ! d14]

Но это может оказаться неприемлемым, если у вас есть аутентификация для прокси.

Для apt.

Вам нужно сделать некоторую дополнительную работу для apt, так как, кстати, apt не подчиняется переменным среды,

$ nano /etc/apt/apt.conf Acquire::http::Proxy "http://USERNAME:PASSWORD@SERVER:PORT"; Acquire::https::Proxy "https://USERNAME:PASSWORD@SERVER:PORT";

Для всего, что выходит из этой области, должна быть опция для настройки параметров прокси-сервера в самом приложении. Если нет, извините;)

11
ответ дан 24 July 2018 в 13:33
  • 1
    конфигурация в / etc / environment очень важна, потому что если вы просто настроите http_proxy var для своего пользователя, когда вы переходите в режим sudo (для таких вещей, как «sudo apt-get update»), терминал обычно не сохраняет текущую среду вары; очень важно проверить ваши настройки: sudo echo $ http_proxy – belun 28 June 2017 в 20:51

Оригинальный вопрос может быть в неправильном направлении. Я считаю, что вы хотите настроить прокси-сервер в Linux?

Ну, это совсем не так, как хотелось бы использовать существующий прокси из среды Linux.

Если ваш вопрос первый, то используйте любые сторонние службы для настройки прокси-сервера в Linux. Примером может быть squid.

Простые команды для установки squid:

$ sudo apt-get install squid3

Затем отредактируйте конфигурацию, чтобы разрешить локальную сеть (в этом случае ваша собственная машина). $ sudo vi /etc/squid3/squid.conf

Добавить / отредактировать следующие строки:

http_access allow local_net acl local_net src 192.168.1.0/255.255.255.0

Предполагая, что ваш IP для машины Linux находится в блоке 192.168.1 / 24 .

0
ответ дан 24 July 2018 в 13:33

Если вам нужно использовать apt за прокси-сервером, возможно, все остальное также нуждается в настройке прокси-сервера. Мне нравится управлять настройками прокси-сервера в одном месте, что будет переменной окружения.

Для этого я создаю /etc/profiles.d/99-proxy.sh, который содержит необходимые настройки прокси-сервера (например, larent):

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export https_proxy=$http_proxy
export ftps_proxy=$http_proxy

, все пользователи этой машины имеют доступ к прокси. (не забудьте chmod a+x)

Когда вы используете apt или apt-get как пользователь, этот пользователь может использовать sudo. Как описал Фрэнк Цю, sudo не передает переменные среды. Для этого вы можете добавить

Defaults env_keep += "http_proxy https_proxy ftp_proxy"

в (например,)

/etc/sudoers.d/00-environment 

или непосредственно в файл

/etc/sudoers

. Таким образом, вам нужно только управлять настройками прокси-сервера в одном месте.

1
ответ дан 7 October 2018 в 19:48

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

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