无法在代理下安装WWW :: Mechanize

时间:2013-04-26 10:34:10

标签: perl proxy www-mechanize

操作系统:Linux。 Perl版本:5.16.0(使用Perlbrew)。

我正在尝试安装Catalyst,并且完全按照以下描述完成了测试失败:

http://stevemoss.posterous.com/installing-wwwmechanize-and-testwwwmechanize

我在我的工作场所的代理下运行,我已经在〜/ .cpan / CPAN / Config.pm中设置了http_proxy,并且还将no_proxy设置为以下各项,但没有成功: 1.当地主持人 2. 127.0.0.1(本地主机IP)。 3.我测试过的已知http服务器没有代理。 空白。

以下是失败的测试日志,最后一个甚至没有结束,它停留在44/47:

rlbrew/perls/perl-5.16.0/bin/perl
# Test::Memory::Cycle 1.04 is installed.
t/00-load.t .............. ok   
t/add_header.t ........... ok   
t/aliases.t .............. ok   
t/area_link.t ............ ok   
t/autocheck.t ............ ok   
t/clone.t ................ ok   
t/content.t .............. ok   
t/cookies.t .............. # Test server http://127.0.0.1:22443 as PID 4655
t/cookies.t .............. ok     
t/credentials-api.t ...... Use of uninitialized value in lc at /perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/LWP/UserAgent.pm line 605.
t/credentials-api.t ...... ok   
t/credentials.t .......... ok     
t/die.t .................. ok   
t/field.t ................ ok   
t/find_frame.t ........... ok   
t/find_image.t ........... ok     
t/find_inputs.t .......... ok     
t/find_link-warnings.t ... ok     
t/find_link.t ............ ok     
t/find_link_id.t ......... ok    
t/form-parsing.t ......... ok   
t/form_with_fields.t ..... 1/? There are 2 forms with the named fields.  The first one was used. at t/form_with_fields.t line 27.
t/form_with_fields.t ..... ok   
t/frames.t ............... ok   
t/image-new.t ............ ok     
t/image-parse.t .......... ok     
t/link-base.t ............ ok   
t/link-relative.t ........ ok   
t/link.t ................. ok     
t/local/back.t ........... 44/47 

3 个答案:

答案 0 :(得分:2)

似乎这不是重要的问题。您可以强制安装模块:

cpan -f -i WWW::Mechanize

答案 1 :(得分:1)

这里的问题显然不是你的CPAN客户端无法正确使用代理(毕竟它设法下载了包),但是你要安装的模块要么不知道代理还是没有准备好处理代理。

如果您尝试安装的模块无法处理代理,那么您运气不佳。

如果可以,请通过设置相关的环境变量告诉它使用您的代理:

export http_proxy="http://your.proxy.goes.here"

答案 2 :(得分:1)

对于local / back.t(以及其他几项测试),暂时禁用http_proxy。您可能会遇到竞争条件,在重新激活http_proxy之前,临时服务器(在测试中创建)不会被销毁。

幸运的是,no_proxy在测试期间未被禁用,它应该能够解决问题。只需确保将其设置为“localhost”而不是“本地主机”,就像您为选项#1编写的那样。

如果不起作用,请通过暂时将其设置为外部站点(并且无法访问它)来检查NO_PROXY是否正确配置。当然,取消所有提及的http_proxy是另一种选择,但这有时很尴尬,应该导致其他测试失败。