Pregunta

He instalado perlbrew que parece una buena solución, pero me da un error sentido cuando en realidad tratando de instalar alguna versión de Perl:

$ perlbrew install perl-5.12.1
Attempting to load conf from /home/dave/perl5/perlbrew/Conf.pm
Fail to get http://search.cpan.org/dist/perl-5.12.1 (error: ) at /home/dave/perl5/perlbrew/bin/perlbrew line 1277.
¿Fue útil?

Solución

Sobre la base de sus comentarios tiene la variable ENV http_proxy conjunto en su concha?

$ env | grep http_proxy

Si no, entonces configurar con la configuración del proxy y vuelva a intentarlo perlbrew instalar:

 $ export http_proxy = "http://yourProxyURLorIP:8080"
 $ perlbrew install perl-5.12.1

perlbrew utiliza esta variable ENV para recoger el servidor proxy. Si esta variable ENV no se establece a continuación, se intenta la conexión normal HTTP directa (ver línea 1274 en perlbrew maestro actual en Github )

$ua->proxy($ENV{http_proxy}) if $ENV{http_proxy};

Si eso no funciona, entonces echar un vistazo a HTTP::Lite . Esto es lo que perlbrew usos bajo el capó descargar fuentes. NB. perlbrew utiliza su propia copia de HTTP :: Lite

Por último, si sigue sin suerte que usted ha mencionado que "instaló por primera vez" a través de CPAN. Los documentos hace mención problemas al actualizar desde una versión anterior de CPAN. Esto tal vez algo más que necesita para estudiar?


Actualizar Prueba este script HTTP::Lite y quiero saber lo ves (NB Es posible que tenga que instalar HTTP::Lite .):

use strict;
use warnings;
use HTTP::Lite;

my $ua = HTTP::Lite->new;

$ua->proxy("yourProxyURLorIP:8080");  # <= http_proxy env minus "http://"

my $req = $ua->request( 'http://search.cpan.org/dist/perl-5.12.1/' ) 
    or die "Unable to get document: $!";


print $ua->body();   # <= if you get this then all is good!

Creo que probablemente ha sido golpeado por un fallo conocido con HTTP::Lite , véase la edición RT uri estilo env vars proxy de dejar de establecer el proxy y el puerto correctamente.

El código anterior es la solución a este error. Asumo el mismo error está en la copia de perlbrew HTTP::Lite . Si se está eliminando entonces el http:// de su http_proxy ENV resolvería el problema (famosas últimas palabras!)


Actualización 2

Sólo para hacer mi último comentario borrar cuando se ejecuta perlbrew usted puede hacer esto (de la cáscara como bash):

http_proxy=IPaddr:Port perlbrew install perl-5.12.1

Se necesitaría un prefijo siempre cada comando perlbrew como este, por lo menos hasta HTTP::Lite o apoderado perlbrew error se corrige.

Alternativa a la anterior es que sólo puede parchear la versión local simplemente añadirá lo siguiente antes de la línea 1277:

$ENV{http_proxy} = "IPaddr:Port";   # <= your proxy IP & port

Espero que finalmente ha agrietado él! Déjame saber si todo éxito porque si es así, voy a publicar una solución a Gugod (autor de perlbrew) con cambios locales necesarios a HTTP::Lite.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top