【问题标题】:Unable to use CPAN with proxy authentication. Getting keep_alive error无法将 CPAN 与代理身份验证一起使用。获取 keep_alive 错误
【发布时间】: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


【解决方案1】:

您必须从 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

【讨论】:

  • 谢谢,正是我需要的!更多信息——如果需要更改,您可以稍后在 ~/.cpan/CPAN/MyConfig.pm 中编辑此信息。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 2018-07-19
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    相关资源
    最近更新 更多