Відповіді:
У деяких випусках sudo налаштовано таким чином, що всі змінні середовища все очищаються при виконанні команди. Щоб зберегти значення для http_proxy та виправити це, вам потрібно відредагувати / etc / sudoers, запустити:
visudo
Потім знайдіть рядок, в якому зазначено:
Defaults env_reset
і додайте після нього:
Defaults env_keep = "http_proxy ftp_proxy"
Все почне працювати так, як очікувалося.
Дякую комугксу на форумах Ubuntu, що знайшли рішення для цього.
Для того, щоб виправити не лише apt-get, але й графічні утиліти X11, наприклад, синаптичні, mintintall, ...), /etc/sudoers
слід виконати наступний рядок у :
Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"
Використовуй це.
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
Це те, що я використовую. Працює чудово.
Apt також дозволяє розміщувати окремі налаштування у файлах під /etc/apt/apt.conf.d/
, тому це має точно такий же ефект, як вище, але може бути простішим у підтримці, якщо у вас є інші рядки у .conf
файлі:
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf.d/05proxy
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
apt.conf
.
/etc/apt/apt.conf
або використовувати файл конфігурації у /etc/apt/apt.conf.d
.... або працює! :-)
E: Syntax error /etc/apt/apt.conf:2: Extra junk at end of file
Що для мене працювало:
sudo http_proxy=http://yourserver apt-get update
Що трохи дивно, оскільки просто експортувати http_proxy, а потім запускати sudo echo $ http_proxy слухняно роздруковувати експортоване значення
$http_proxy
розширюється до того, як судо навіть запуститься.
export http_proxy=http://proxyusername:proxypassword@proxyaddress:proxyport
sudo apt-get update
Експортування не повинно бути необхідним, sudo
і якщо ваш проксі-сервер анонімний, просто викиньте його proxyusername:proxypassword@
.
wget
?
Якщо це тимчасова конфігурація , ви можете спробувати це: sudo bash -c 'http_proxy = "http: // <proxy_host>: <proxy_port> /" apt-get update "
Вам це потрібно, тому що змінну оточення потрібно визначити для "кореневого" облікового запису. Робота та експорт раніше не повинні працювати.
Для постійної конфігурації вам доведеться змінити системний файл. Це вже описано в наступній відповіді про те, як перевірити, чи дійсно застосовано мережевий проксі? .
Ubuntu неймовірно ворожий до автентичності проксі. Я використовую ноутбук Ubuntu на роботі, і кількість поломки неймовірна.
Synaptic, Apt, Firefox, Chromium тощо застосовують різні методи для визначення проксі, і ніде не можна точно вказати облікові дані.
Деякі помилки на тему: https://bugs.edge.launchpad.net/ubuntu/+source/msttcorefonts/+bug/220070
https://bugs.edge.launchpad.net/ubuntu/+source/apt-cacher/+bug/198138
https://bugs.edge.launchpad.net/ubuntu/+source/apt/+bug/433827
https://bugs.edge.launchpad.net/ubuntu/+source/b43-fwcutter/+bug/683630
Пропозиція Oli використати експорт - це єдиний невиразно безпечний спосіб це зробити. Крім того, іноді можливе «погладжування» підтримки проксі, якщо проксі-сервер використовує вторинну аутентифікацію, щоб мінімізувати навантаження на основні сервери аутентифікації (скажімо, Active Directory). Тут перше проксі-з'єднання автентифіковане проксі-сервером проти AD, тоді протягом встановленого періоду часу (як правило, 5 хвилин) всі інші з'єднання "довіряють" цьому користувачеві. Тому ви можете відкрити Firefox, переглядати Інтернет (де завгодно), а потім спробувати утиліту (wget, synaptic, що завгодно), вказавши проксі, але залишити ім’я користувача порожнім.
Ubuntu, як правило, вороже відноситься до будь-якого корпоративного середовища просто тому, що дозволяє з легкістю читати паролі. Seahorse - головний винуватець, але Менеджер мережі також шокує - підключіться до будь-якої мережі, яка має автентифікацію PEAP, і ви просто зберегли свій пароль в аплеті, щоб хтось міг побачити, хто може позичити ваш ноутбук. Мабуть, спільний використання ноутбуків вважається блюзнірством у землі Linux, оскільки розробники Seahorse відкинули претензії на незахищеність. Після цього у мене не було серця звертатися до розробників мережі.
Ви спробували редагувати /etc/apt/apt.conf
? Я використовую це для використання apt за нашим корпоративним проксі.
Acquire::http::proxy "http://user:password@host:port/";
Я вважаю, що apt використовує це значення, якщо в середовищі оболонки не визначено $ http_proxy (тобто $ http_proxy має перевагу).
apt.conf
все одно слід використовувати. Ви можете побачити, які налаштування конфігурації apt думає, що вони встановлені за допомогою apt-config dump
.
Якщо ви хочете запустити "sudo apt-get update" через проксі в командному рядку, використовуйте команду нижче,
sudo apt-get -o Acquire::http::proxy="http://user:password@host:port/" update;