无法在代理身份验证下使用CPAN。出现keep_alive错误。

4

我无法安装任何需要代理身份验证的perl模块。

我使用cpan进行配置,输入命令o conf init /proxy/来设置代理凭据。

当我尝试安装任何软件包时,出现以下错误。请帮忙解决问题。

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

Uma Mahesh


你在这个错误信息中发现了有意义的内容吗:必须启用keep_alive选项才能使NTLM身份验证工作。NTLM身份验证已中止。 - Len Jaffe
例如,您是否正在尝试通过NTLM验证代理? - Len Jaffe
@lenjaffe 我相信是的。当我使用以下LWP时,它可以工作。对于CPAN配置,我已经使用o conf提供了相同的凭据并提交以进行确认。my $request = new HTTP::Request('GET', $url); $request->proxy_authorization_basic( $USERNAME, $PASSWORD );my $response = $ua->request($request); - uma mahesh
你启用了keep_alive选项吗? - Len Jaffe
1
我曾经遇到过同样的问题,而且我在使用NTLM代理。我通过运行CNTLM来解决这个问题,CNTLM使用NTLM进行身份验证,并将我的cpan配置设置为该代理(例如localhost:3128)。 - Will Sheppard
2个回答

2

您需要从cpan设置代理设置。

perl -MCPAN -e shell
cpan[2]> o conf init /proxy/
Your ftp_proxy? [a.b.c.d] a.b.c.d:port
Your http_proxy? [a.b.c.d] a.b.c.d:port
Your no_proxy? [] a.b.c.d:port
cpan[3]> o conf commit

2
谢谢,正是我所需要的!更多信息 - 如果需要更改,您可以在~/.cpan/CPAN/MyConfig.pm中编辑此信息。 - Tim S.

1
如果存储的密码不正确,可能会触发此错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接