¿Cómo puedo instalar la versión de Perl debajo de mi casa usando perlbrew?
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.
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
.