2011-07-07 25 views
15

Estoy tratando de instalar un módulo de Perl dentro de fresa Perl en Windows 7.  ¿Cómo instalo un módulo? Strawberry Perl emite

estoy ejecutando el siguiente comando y estoy recibiendo una gran cantidad de mensajes que no entiendo. Parece que estoy recibiendo 500 errores, como si la página no fuera alcanzable. Sin embargo, cuando apunto las réplicas en mi navegador no tengo problemas para acceder a los directorios FTP. Tengo poca experiencia de Perl en Linux, y ninguna en Windows. Traté de agregar manualmente un espejo al urilista, y no creo que haya sido de ayuda.

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

Estos se ven principalmente como problemas de proxy/red. ¿Cómo es tu configuración de red? ¿Estás detrás de un firewall? –

+0

Estoy detrás de un firewall corporativo, y sospeché eso, pero luego puedo acceder a él a través del navegador. – Brian

+1

@Brian, sí, porque su navegador probablemente esté configurado para usarlo correctamente e ignorar el proxy, a menudo a través de un script de configuración. – Axeman

Respuesta

18

Esto es fácilmente problemas de firewall/proxy. Debe configurar la variable http_proxy en cpan. Ingrese el shell cpan escribiendo cpan en el indicador de comando del shell, y presionando enter. Una vez en la cáscara cpan, entre lo siguiente:

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

cpan puede entonces pedir el nombre de usuario y una contraseña para que pueda utilizar el proxy para el tráfico HTTP, por lo menos.

Es posible que su acceso ftp esté bloqueado por el firewall. cpan solucionará esto.

  • Puede ver su navegador si la configuración del proxy es simple.
  • Si es más complejo, que tendrá que
    • pegue el URL de la secuencia de configuración en la dirección del navegador
    • abierta esa URL con un editor cuando el navegador le pide (o usar un editor que toma http URLs — como jEdit o Notepad++).

Una vez que analizar el caso para su ubicación y CPAN, a continuación, se puede tomar el nombre de servidor devolvió, un puerto en su caso, y, o bien establecer la variable de entorno o configuración cpan con el valor.

+2

Ejecute 'o conf init/proxy /' para ver/configurar todas las opciones relacionadas con el proxy, no solo el proxy HTTP comúnmente utilizado. – daxim

6

Parece un problema de proxy. El shell cpan utiliza variables de entorno que deben establecerse para que sepa sobre un proxy, no puede detectarlos desde el navegador.

Las variables de entorno son:

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

Ya que estás en Windows, puede realizar cualquiera lo siguiente desde la misma consola de comandos:

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

y luego intenta instalar como antes. Dado que su CPAN está utilizando FTP, se deberá configurar el ftp_proxy (y sí, la URL para ello normalmente será una HTTP).

También puede establecer las variables de entorno permanentemente en el panel de control del sistema, generalmente en configuraciones avanzadas, variables de entorno. Puede configurarlos para el sistema o para el usuario actual. Lo mejor es no configurarlos para todo el sistema a menos que tenga una muy buena razón.

Deberá averiguar qué es realmente el proxy. Su navegador debe saberlo, así que eche un vistazo a su configuración de Internet.

2

Tuve un problema similar, aunque las soluciones aquí no lo arreglaron para mí. Acababa de actualizar Strawberry Perl de 5.18.2.1 a 5.20.1.1 en tres máquinas, y aunque CPAN funcionaba en las dos máquinas con Windows 7, no funcionaba en la máquina con Windows Server 2003.

Al final, lo que me arregló fue eliminar el archivo de configuración de CPAN, C:\strawberry\perl\lib\CPAN\Config.pm en mi caso. Inicié CPAN e hice un reload index; una vez más, me pidió mis credenciales (que no necesito para el proxy que uso), así que presiono Enter dos veces para dejarlas en blanco, y logró conectarse y actualizar su índice.

Recuerdo haber visto anteriormente advertencias en las notas de la versión de Strawberry Perl para indicar que eliminen C:\strawberry después de desinstalar la versión anterior y antes de instalar la versión más reciente. No parece haber tal advertencia esta vez, pero es una buena práctica de todos modos, supongo.

Como acotación al margen, una solución temporal utilicé antes de lograr llegar a funcionar de nuevo CPAN era copiar a través de las lib, sitevendor y directorios de una máquina en la que me había actualizado Perl y sobre el que ya se CPAN hizo todavía trabajo. De esta manera, tenía todos los módulos que necesitaba sin que CPAN realmente funcionara. (Las dos máquinas eran la misma arquitectura, que requiere el mismo instalador para actualizar.)

0

El archivo de configuración CPAN en el entorno de la fresa Perl es:

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

definiciones de configuración para un usuario específico se escriben en el MyConfig.pm archivo ubicado debajo de: C:\Users\user name\AppData\Local\.cpan\CPAN\. Las definiciones de proxy pueden anularse en uno de estos archivos.

Cuestiones relacionadas