Как cpanm может получить настройки для прокси, который требует имя пользователя и пароль
Я работаю с CPANM для взаимодействия с прокси, который требует имя пользователя и пароль. Я указал настройки при запуске "o conf init /proxy/ под cpan". Я считаю, что переменные, используемые в среде unix для определения прокси, не являются стандартными для всей среды. Другие утилиты Unix работают правильно через прокси после установки переменных среды в правильные значения.
Мои вопросы следующие:
- Как CPANM взаимодействует с любыми переменными среды? Что бы они были?
- Будет ли CPANM использовать переменные, указанные в CPAN, или они полностью разделены?
- Есть ли какая-то соответствующая область кода, которую мы можем посмотреть, чтобы помочь устранить двусмысленность, я думаю, что внутри CPANM есть интерфейс LWP? https://github.com/miyagawa/cpanminus/blob/devel/App-cpanminus/cpanm
####:/mnt/c/Projects$ sudo cpanm install Catalyst::Helper -v
cpanm (App::cpanminus) 1.7040 on perl 5.022001 built for x86_64-linux-gnu-thread-multi
Work directory is /home/####/.cpanm/work/1543605706.124
You have make /usr/bin/make
You have LWP 6.36
You have /bin/tar: tar (GNU tar) 1.28
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by John Gilmore and Jay Fenlason.
Searching install () on cpanmetadb ...
########:/mnt/c/Projects$ env | grep HTTP_proxy
HTTP_proxy=http://####:###
1 ответ
Насколько я вижу, cpanm (на самом деле App:: Cpanminus использует HTTP:: Tiny для выполнения HTTP-запросов.
HTTP:: Tiny может прокси-запросы как http, так и https. Поддерживается только базовая авторизация прокси, и она должна предоставляться как часть URL прокси: http://user:pass@proxy.example.com/.
HTTP:: Tiny поддерживает следующие переменные окружения прокси: http_proxy или HTTP_PROXY, https_proxy или HTTPS_PROXY, all_proxy или ALL_PROXY
Следовательно, вы должны попытаться указать имя пользователя и пароль прокси как часть URL, например:
$ export HTTP_PROXY=http://<user>:<password>@<url>:<port>
$ export HTTPS_PROXY=http://<user>:<password>@<url>:<port>