Wie kann ich Perl-Version unter meinem Hause mit perlbrew installieren?
Frage
Ich habe installiert perlbrew , die wie eine gute Lösung scheint, aber ich einige sinnlose Fehler, wenn tatsächlich versuchen, einige Perl-Version zu installieren:
$ 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.
Lösung
Auf der Basis Ihrer Kommentare tun Sie http_proxy
ENV Variablen-Set in der Shell haben?
$ env | grep http_proxy
Wenn nicht, dann setzen Sie ihn mit Ihren Proxy-Einstellungen und Wieder try perlbrew installieren:
$ export http_proxy = "http://yourProxyURLorIP:8080"
$ perlbrew install perl-5.12.1
perlbrew
verwendet diese ENV Variable den Proxy-Server zu holen. Wenn diese ENV Variable nicht gesetzt ist, dann versucht es die normale direkte HTTP-Verbindung (siehe HTTP::Lite
. Dies ist, was perlbrew
Anwendungen unter der Motorhaube Quellcode zu holen. NB. perlbrew verwendet seine eigene Kopie von HTTP :: Lite
Schließlich, wenn noch kein Glück Sie erwähnten, dass Sie über CPAN „es zuerst installiert“. Die docs hat Probleme erwähnt, wenn sie von einer früheren CPAN Version zu aktualisieren. Diese vielleicht etwas weiter müssen Sie Blick in?
Aktualisieren Test dieses HTTP::Lite
Skript und lassen Sie mich wissen, was Sie sehen (NB Sie müssen möglicherweise HTTP::Lite
installieren.):
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!
Ich glaube, Sie haben wahrscheinlich durch einen bekannten Fehler mit HTTP::Lite
getroffen worden siehe, RT Ausgabe uri Art Proxy-env vars nicht den Proxy und den Port einstellen richtig .
Der obige Code ist die Abhilfe für diesen Fehler. Ich gehe davon aus dem gleichen Fehler ist in perlbrew
Kopie HTTP::Lite
. Wenn es dann die http://
von Ihrem Entfernen http_proxy ENV würde das Problem beheben (berühmte letzte Worte!)
Update 2
Just zu meinem letzten Kommentar deutlich zu machen, wenn Sie perlbrew
führen Sie diese (von Shell wie bash
) tun können:
http_proxy=IPaddr:Port perlbrew install perl-5.12.1
Sie müßten immer jeden perlbrew
Befehl wie dieser Präfix, zumindest bis HTTP::Lite
oder perlbrew
Proxy-Fehler behoben ist.
Alternative zu oben ist, können Sie einfach nur Ihre lokale Version patchen die folgenden Punkte, bevor Zeile 1277 werden hinzugefügt:
$ENV{http_proxy} = "IPaddr:Port"; # <= your proxy IP & port
Hoffentlich haben wir geknackt es endlich! Lassen Sie mich, wenn alle erfolgreich wissen, denn wenn ja, dann werde ich ein Update auf Gugod (Autor von perlbrew
) mit notwendige lokale Änderungen an HTTP::Lite
.