2011-07-07 4 views
15

Je suis en train d'installer un module Perl dans les Perl fraises sur Windows 7.  Comment installer un module? Questions Strawberry Perl

Je suis en cours d'exécution de la commande ci-dessous et je obtenir un grand nombre de messages que je ne comprends pas. Il semble que je reçois 500 erreurs, comme si la page n'était pas accessible. Cependant, lorsque je pointe les miroirs dans mon navigateur, je n'ai aucun problème pour accéder aux répertoires FTP. J'ai peu d'expérience Perl sur Linux, et aucune sur Windows. J'ai essayé d'ajouter manuellement un miroir à l'urliste, et je ne pense pas que cela ait aidé.

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 [email protected] 
    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 [email protected] 
    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 
+0

Elles ressemblent principalement à des problèmes de proxy/réseau. Quelle est la configuration de votre réseau? Êtes-vous derrière un pare-feu? –

+0

Je suis derrière un pare-feu d'entreprise, et je m'en doutais, mais alors je suis en mesure d'y accéder via le navigateur. – Brian

+1

@Brian, oui parce que votre navigateur est probablement configuré pour utiliser correctement et ignorer le proxy - souvent à travers un script de configuration. – Axeman

Répondre

18

Ceci est facilement des problèmes de pare-feu/proxy. Vous devez configurer http_proxy variable dans cpan. Entrez le shell cpan en tapant cpan à l'invite de commande du shell et en appuyant sur Entrée. Une fois dans la coquille cpan, entrez les informations suivantes:

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

cpan peut alors vous demander le nom d'utilisateur et mot de passe afin que vous puissiez utiliser le proxy pour le trafic http, au moins.

Il est possible que votre accès FTP soit bloqué par le pare-feu. cpan va contourner cela.

  • Vous pouvez regarder dans votre navigateur si la configuration du proxy est simple.
  • Si elle est plus complexe, vous aurez à
    • coller l'URL du script de configuration dans l'adresse du navigateur
    • ouvert URL avec un éditeur lorsque le navigateur vous invite (ou utilisez un éditeur prend les URL http — comme jEdit ou Notepad++.).

Une fois que vous analysez le cas pour votre emplacement et CPAN, alors vous pouvez prendre le nom du serveur retourné, un port le cas échéant, et soit la variable d'environnement ou configuration cpan avec la valeur.

+2

Exécutez 'o conf init/proxy /' pour afficher/définir toutes les options liées au proxy, et pas seulement le proxy HTTP couramment utilisé. – daxim

6

Cela ressemble à un problème de proxy. Le shell cpan utilise des variables d'environnement qui doivent être définies pour qu'il connaisse un proxy - il ne peut pas les détecter à partir du navigateur.

Les variables d'environnement sont:

http_proxy   proxy host for http requests 
ftp_proxy   proxy host for ftp requests 

Puisque vous êtes sous Windows, vous pouvez effectuer les opérations suivantes de la même shell de commande:

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

puis essayez d'installer comme avant. Étant donné que votre CPAN utilise FTP, le ftp_proxy devra être défini (et oui, l'URL sera généralement une URL HTTP).

Vous pouvez également définir les variables d'environnement de manière permanente dans le panneau de configuration du système, généralement sous Paramètres avancés, variables d'environnement. Vous pouvez les définir pour le système ou pour l'utilisateur actuel. Il est préférable de ne pas les définir pour l'ensemble du système sauf si vous avez une très bonne raison.

Vous devrez déterminer ce qu'est vraiment le proxy. Votre navigateur devrait savoir, alors jetez un oeil dans ses paramètres Internet.

2

J'ai eu un problème similaire, même si les solutions ici ne l'ont pas résolu pour moi. Je venais juste de mettre à jour Strawberry Perl de 5.18.2.1 à 5.20.1.1 sur trois machines, et bien que CPAN travaillait sur les deux machines Windows 7, ce n'était pas le cas sur Windows Server 2003. En fin de compte, la chose qui m'a arrangée était de supprimer le fichier de configuration du CPAN, C:\strawberry\perl\lib\CPAN\Config.pm dans mon cas. J'ai commencé le CPAN et j'ai fait un reload index; Une fois de plus, il m'a demandé mes informations d'identification (dont je n'ai pas besoin pour le proxy que j'utilise), donc j'ai appuyé deux fois sur Entrée pour les laisser vides, et il a réussi à se connecter et mettre à jour son index. Je me souviens avoir déjà vu des avertissements dans les notes de version de Strawberry Perl pour dire de supprimer C:\strawberry après avoir désinstallé la version précédente et avant d'installer la version la plus récente. Il ne semble pas y avoir un tel avertissement cette fois-ci, mais c'est une bonne pratique de toute façon, je suppose.

En aparté, une solution temporaire je avant de réussir à se CPAN travailler à nouveau a été de copier à travers les lib, site et vendor répertoires à partir d'une machine sur laquelle j'avais déjà mis à jour Perl et sur lequel CPAN a fait encore travail. De cette façon, j'avais tous les modules dont j'avais besoin sans que le CPAN ne fonctionne réellement. (Les deux machines étaient la même architecture, ce qui nécessite le même programme d'installation de mise à niveau.)

0

Le fichier de configuration CPAN dans l'environnement Perl Strawberry est:

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

définitions de configuration pour un utilisateur spécifique sont écrits dans le MyConfig.pm fichier situé sous: C:\Users\user name\AppData\Local\.cpan\CPAN\. Les définitions de proxy peuvent être remplacées dans l'un de ces fichiers.

Questions connexes