如果 CPAN 接受了代理设置,却通过另一条路径下载,请查看所选下载器的诊断输出。CPAN.pm 既可能使用 Perl 的网络模块,也可能把工作交给外部程序。

检查当前的交互式配置:

cpan> o conf http_proxy
cpan> o conf ftp_proxy
cpan> o conf no_proxy
cpan> o conf urllist

urllist 选择的是目标镜像和协议,而不是中间代理。获取 FTP 资源的 HTTP 代理仍然是 HTTP 监听器;字段名并不会把它变成 FTP 服务器。

如果传输过程调用了 curl,请检查该子进程继承的环境。限定范围的启动方式如下:

http_proxy=http://proxy.example:8080 https_proxy=http://proxy.example:8080 cpan

在允许该路径的网络上从公共镜像下载时,请把示例替换为此列表中无需账号的候选:HTTP 代理列表。除非有其他启动器改动环境,否则这会把 HTTP 端点交给 CPAN 及其子进程。Curl 读取小写的 http_proxy;HTTPS 目标设置也可以指向同一个 HTTP 监听器。

如果 CPAN 选择了 LWP,则应改为遵循它配置的取值和客户端行为。装了 curl 并不能证明 CPAN 用过它。在确认这一选择之前,不要安装模块或修改启动文件。

在负责安装的账号下用 o conf commit 保存想要保留的 CPAN 改动,并让机密信息远离共享示例。这里是交互式 CPAN.pm 客户端;cpanm 即使在同一个镜像上也可能选择另一个下载器和配置。

相关文章