【发布时间】:2013-08-22 23:41:49
【问题描述】:
我无法在 perl 中安装任何需要代理身份验证的模块。 我使用 cpan[2]> o conf init /proxy/
为 perl 配置了代理凭据当我尝试安装任何软件包时出现以下错误。 请帮忙。
cpan[4]> i 'XML::RAI'
←[32mGoing to read 'C:\Perl\cpan\Metadata'←[0m
←[32m Database was generated on Wed, 26 Sep 2012 10:43:03 GMT←[0m
←[32mFetching with LWP:
http://ppm.activestate.com/CPAN/authors/01mailrc.txt.gz←[0m
The keep_alive option must be enabled for NTLM authentication to work. NTLM authentication aborted.
Catching error: "Undefined subroutine &CPAN::HTTP::Credentials::_clear_non_proxy_credentials called at C:\\Perl\\lib/CPAN/HTTP/Cred
ne 391
CPAN::shell() called at C:/Perl/lib/App/Cpan.pm line 295
App::Cpan::_process_options('App::Cpan') called at C:/Perl/lib/App/Cpan.pm line 364
App::Cpan::run('App::Cpan') called at C:\Perl\bin/cpan.bat line 24
←[32m←[0m
乌玛·马赫什
【问题讨论】:
-
您是否发现此错误消息中的任何内容有意义:必须启用 keep_alive 选项才能使 NTLM 身份验证正常工作。 NTLM 身份验证已中止。
-
例如,您是否尝试通过 NTLM 向您的代理进行身份验证?
-
@lenjaffe 我相信,是的。当我如下使用 LWP 时,它适用于 CPAN 配置,我使用 o conf 提供了相同的凭据并提交以提交。我的 $request = new HTTP::Request('GET', $url); $request->proxy_authorization_basic($USERNAME, $PASSWORD);我的 $response = $ua->request($request);
-
您是否启用了 keep_alive 选项?
-
我遇到了同样的问题,而且我使用的是 NTLM 代理。我通过运行CNTLM 来修复它,它使用 NTLM 进行身份验证,并将我的 cpan 配置设置为那个(例如 localhost:3128)
标签: perl cpan keep-alive