Почему git, curl и подобные инструменты не могут использовать системный сетевой прокси?

Я считаю, что вы должны указать inittabна сценарий, но вы должны использовать доступные инструменты, а не редактировать вручную.

man mkitab
0
25.06.2021, 11:10
2 ответа

Для инструментов командной строки, таких как curlи т. д., «настройки системного прокси» — это именно то, что вы установили во втором примере -, то есть переменные $http_proxyи т. д. Используемый вами инструмент с графическим интерфейсом для настройки « системные настройки прокси" установить эти переменные для сеансов терминала? Если нет, то у вас есть ответ, почему настройки не используются. Просто ваше приложение настройки прокси с графическим интерфейсом несовместимо с инструментами командной строки.

$http_proxyи т. д. переменные окружения являются *nix command -стандартными строками. Любой, кто пишет приложение с графическим интерфейсом для установки прокси-сервера и хочет, чтобы этот параметр был применим к инструментам строки команды -, должен соответствовать этому стандарту. Не наоборот, потому что существует множество возможных способов, как графические DE будут хранить информацию о прокси, и инструменты командной строки не могут знать их все (и в этом нет смысла, потому что по определению инструменты командной строки могут работать -и обычно запускаются -без запущенного графического DE ). Подумайте, что у вас есть один и тот же curlкод, работающий под GNOME, KDE, XFCE, множеством других DE Linux, родной DE Windows, родной DE MacOS или в простом текстовом -режиме сеанса ssh без какой-либо DE...

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

3
28.07.2021, 11:22

Переменные среды, которые вы используете здесь, являются стандартным способом Unix для выражения настроек прокси в обычных инструментах Unix, включая инструменты строки команды -. Эта конструкция имеет несколько преимуществ:

  • Позволяет настроить для каждой -программы, какой прокси использовать и использовать ли прокси вообще.
  • Он допускает большую специфичность настроек прокси-сервера, в том числе по протоколу.
  • Он работает во всех системах Unix переносимым образом. Чтение настроек из macOS, вероятно, потребует, чтобы переносимые программы связывались с дополнительным кодом, характерным для macOS, вероятно, с кодом, написанным на Objective C.

Часто возникает соблазн подумать: «Почему поставщики не могут просто поставить переносимую библиотеку для доступа к настройкам прокси-сервера?» но, к сожалению, никто этого не сделал, и разные среды (GNOME, KDE, MATE, macOS )работают совершенно по-разному. Apple также часто избегает делать вещи, аналогичные другим системам Unix (, например, Metal вместо OpenGL и Vulkan; Mach -O вместо ELF ), так что даже если бы другие Unix-системы предлагали стандартные инструменты, маловероятно, что Apple поставит такую ​​библиотеку изначально.

2
28.07.2021, 11:22

Теги

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