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.
War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top