17

我正在尝试在 Windows 7 上的 Strawberry Perl 中安装 Perl 模块。

我正在运行以下命令,并收到大量我不明白的消息。看起来我收到了 500 个错误,好像该页面无法访问。但是,当我在浏览器中指向镜像时,访问 FTP 目录没有问题。我在 Linux 上几乎没有 Perl 经验,在 Windows 上也没有。我尝试手动将镜像添加到 urllist,但我认为这没有帮助。

C:\Program Files> cpan Win32::IE::Mechanize

CPAN: LWP::UserAgent loaded ok (v5.835)
CPAN: Time::HiRes loaded ok (v1.9721)
Fetching with LWP:
http://cpan.strawberryperl.com/authors/01mailrc.txt.gz
LWP failed with code[500] message[Can't connect to cpan.strawberryperl.com:80 (Bad hostname 'cpan.strawberryperl.com')]
Warning: no success downloading 'C:\strawberry\cpan\sources\authors\01mailrc.txt.gz.tmp5264'. Giving up on it.
Fetching with LWP:
ftp://mirror.teklinks.com/CPAN/authors/01mailrc.txt.gz
LWP failed with code[500] message[LWP::Protocol::MyFTP: Bad hostname 'mirror.teklinks.com']
Fetching with Net::FTP:
ftp://mirror.teklinks.com/CPAN/authors/01mailrc.txt.gz
  Could not connect to host 'mirror.teklinks.com' with Net::FTP
Fetching with Net::FTP
ftp://mirror.teklinks.com/CPAN/authors/01mailrc.txt.gz.gz
  Could not connect to host 'mirror.teklinks.com' with Net::FTP
Warning: no success downloading 'C:\strawberry\cpan\sources\authors\01mailrc.txt.gz.tmp5264'. Giving up on it.
Warning: no success downloading 'C:\strawberry\cpan\sources\authors\01mailrc.txt.gz.tmp5264'. Giving up on it.

As a last resort we now switch to the external ftp command 'C:\WINDOWS\system32\ftp.EXE'
to get 'C:\strawberry\cpan\sources\authors\01mailrc.txt.gz.tmp5264'.

Doing so often leads to problems that are hard to diagnose.

If you're the victim of such problems, please consider unsetting the
ftp config variable with

    o conf ftp ""
    o conf commit

Issuing "C:\WINDOWS\system32\ftp.EXE -n"

  Trying with external ftp to get
    ftp://mirror.teklinks.com/CPAN/authors/01mailrc.txt.gz
  Going to send the dialog
    open mirror.teklinks.com
    user anonymous win32-vanilla@perl.org
    lcd C:\strawberry\cpan\sources\authors
    cd /
    cd CPAN
    cd authors
    bin
    passive
    get 01mailrc.txt.gz 01mailrc.txt.gz.tmp5264
    quit

Unknown host mirror.teklinks.com.
Not connected.
Local directory now C:\strawberry\cpan\sources\authors.
Not connected.
Not connected.
Not connected.
Not connected.
Invalid command.
Not connected.
Bad luck... Still failed!
Can't access URL ftp://mirror.teklinks.com/CPAN/authors/01mailrc.txt.gz.

Fetching with LWP:
http://cpan.strawberryperl.com/authors/01mailrc.txt.gz
LWP failed with code[500] message[Can't connect to cpan.strawberryperl.com:80 (Bad hostname 'cpan.strawberryperl.com')]
Warning: no success downloading 'C:\strawberry\cpan\sources\authors\01mailrc.txt.gz.tmp5264'. Giving up on it.
Warning: no success downloading 'C:\strawberry\cpan\sources\authors\01mailrc.txt.gz.tmp5264'. Giving up on it.
Fetching with LWP:
ftp://mirror.teklinks.com/CPAN/authors/01mailrc.txt.gz
LWP failed with code[500] message[LWP::Protocol::MyFTP: Bad hostname 'mirror.teklinks.com']
Fetching with Net::FTP:
ftp://mirror.teklinks.com/CPAN/authors/01mailrc.txt.gz
  Could not connect to host 'mirror.teklinks.com' with Net::FTP
Fetching with Net::FTP
ftp://mirror.teklinks.com/CPAN/authors/01mailrc.txt.gz.gz
  Could not connect to host 'mirror.teklinks.com' with Net::FTP
Warning: no success downloading 'C:\strawberry\cpan\sources\authors\01mailrc.txt.gz.tmp5264'. Giving up on it.
Warning: no success downloading 'C:\strawberry\cpan\sources\authors\01mailrc.txt.gz.tmp5264'. Giving up on it.

As a last resort we now switch to the external ftp command 'C:\WINDOWS\system32\ftp.EXE'
to get 'C:\strawberry\cpan\sources\authors\01mailrc.txt.gz.tmp5264'.

Doing so often leads to problems that are hard to diagnose.

If you're the victim of such problems, please consider unsetting the
ftp config variable with

    o conf ftp ""
    o conf commit

Issuing "C:\WINDOWS\system32\ftp.EXE -n"

  Trying with external ftp to get
    ftp://mirror.teklinks.com/CPAN/authors/01mailrc.txt.gz
  Going to send the dialog
    open mirror.teklinks.com
    user anonymous win32-vanilla@perl.org
    lcd C:\strawberry\cpan\sources\authors
    cd /
    cd CPAN
    cd authors
    bin
    passive
    get 01mailrc.txt.gz 01mailrc.txt.gz.tmp5264
    quit

Unknown host mirror.teklinks.com.
Not connected.
Local directory now C:\strawberry\cpan\sources\authors.
Not connected.
Not connected.
Not connected.
Not connected.
Invalid command.
Not connected.
Bad luck... Still failed!
Can't access URL ftp://mirror.teklinks.com/CPAN/authors/01mailrc.txt.gz.

CPAN: YAML loaded ok (v0.73)
Please check, if the URLs I found in your configuration file
(http://cpan.strawberryperl.com/, ftp://mirror.teklinks.com/CPAN/) are
valid. The urllist can be edited. E.g. with 'o conf urllist push
ftp://myurl/'

Could not fetch authors/01mailrc.txt.gz
4

4 回答 4

19

这很容易成为防火墙/代理问题。您需要在 中设置http_proxy变量cpan

cpan通过在 shell 命令提示符下键入并点击.进入 CPAN shell Enter。进入 CPAN shell 后,输入以下内容:

o conf http_proxy http://proxy.mycorp.com:8080/

cpan然后可能会要求您提供用户名和密码,以便您至少可以将代理用于 HTTP 流量。

您的 FTP 访问可能被防火墙阻止。cpan将解决这个问题。

  • 如果代理配置很简单,您可以查看您的浏览器。
  • 如果它更复杂,你将不得不
    • 将URL粘贴到浏览器地址中的配置脚本中
    • 当浏览器提示您时,使用编辑器打开该 URL(或使用带有 HTTP URL 的编辑器,如jEditNotepad++。)。

解析位置和 CPAN 的大小写后,您可以获取返回的服务器名称,添加端口(如果有),并cpan使用该值设置环境变量或配置。

于 2011-07-07T18:16:57.420 回答
7

这看起来像一个代理问题。CPAN shell 使用需要设置的环境变量,以便它知道代理——它无法从浏览器中检测到它们。

环境变量是:

http_proxy         Proxy host for HTTP requests
ftp_proxy          Proxy host for FTP  requests

由于您使用的是 Windows,因此您可以从同一命令 shell 执行以下操作:

C:\> set http_proxy=http://proxy.sn.no:8001/
C:\> set ftp_proxy=http://proxy.sn.no:8001/
C:\> cpan

然后尝试像以前一样安装。由于您的 CPAN 使用的是 FTP,因此ftp_proxy需要设置(是的,它的 URL 通常是 HTTP)。

您也可以在系统控制面板中永久设置环境变量,通常在高级设置下,环境变量。您可以为系统或当前用户设置它们。除非您有充分的理由,否则最好不要为整个系统设置它们。

您必须弄清楚代理实际上是什么。您的浏览器应该知道,因此请查看其 Internet 设置。

于 2011-07-07T18:10:36.493 回答
3

我有一个类似的问题,虽然这里的解决方案没有为我解决这个问题。我刚刚在三台机器上将 Strawberry Perl 从 5.18.2.1 升级到 5.20.1.1,虽然 CPAN 在两台 Windows 7 机器上工作,但在 Windows Server 2003 机器上却没有。

最后,为我解决的问题是删除 CPAN 配置文件,C:\strawberry\perl\lib\CPAN\Config.pm就我而言。我启动了 CPAN 并做了一个reload index; 它再次询问我的凭据(我使用的代理不需要它),所以我只需按两次 Enter 将它们留空,然后它设法连接并更新了它的索引。

我记得以前在 Strawberry Perl 发行说明中看到警告说要C:\strawberry在卸载以前的版本之后和安装新版本之前删除。这次似乎没有这样的警告,但无论如何我想这是一个很好的做法。

顺便说一句,我在设法让 CPAN 再次工作之前使用的临时解决方法是从我已经升级 Perl 并且 CPAN 仍然可以工作的机器上复制,libsite目录。这样,在没有 CPAN 实际工作的情况下,我就拥有了我需要的所有模块。(两台机器是相同的架构,需要相同的安装程序来升级。)vendor

于 2014-10-06T07:26:56.703 回答
0

Strawberry Perl 环境中的 CPAN 配置文件为:

c:\Strawberry\perl\lib\CPAN\Config.pm .

特定用户的配置定义写入MyConfig.pm位于以下的文件中:C:\Users\user name\AppData\Local\.cpan\CPAN\. 可以在这些文件之一中覆盖代理定义。

于 2015-09-20T11:09:08.730 回答