Das Netz hier ist ziemlich dicht, nach außen geht es nur über den HTTP oder FTP Proxy. Das ganze lässt sich auch im Konfigurationsfile (/etc/apt/apt.conf) das Paketmanagement Frontends apt einstellen:
Acquire::ftp
{
Proxy "ftp://foobar:2121";
ProxyLogin
{
"USER $(SITE_USER)@$(SITE)";
"PASS $(SITE_PASS)";
};
};
Acquire::http::Proxy "http://barfoo:8080";
Dann aber wurde der FTP Proxy im Zuge einer Umstellung abgeschaltet. Glücklicherweise ist FTP ins Internet damit noch nicht gekappt, denn der HTTP Proxy beherrscht auch dieses Protokoll. Die FTP-in-HTTP-Verpackung sieht dann zum Beispiel in etwa so aus:
GET ftp://ftp.de.debian.org HTTP/1.1
...
Diese Umstellung sollte kein Problem darstellen, da der entsprechenden Konfigurationszeile das Zugriffsschema voransteht (http:// oder ftp://). Also war ftp://foobar:2121 einfach durch http://barfoo:8080 zu ersetzen. Der Erfolg blieb leider aus und es hagelte nur Connection Timeouts. An dieser Stelle ist der erste Gedanke natürlich: was passiert da auf dem Netz? Ethereal zeigt dann, dass apt offentlich versucht FTP mit dem HTTP Proxy zu sprechen. Klarer Fall: da hab ich etwas falsch konfiguriert. Nach mehrmaliger Prüfung war aber beim besten Willen kein Fehler zu finden. Alle Quellen im Netz hatten es auch so eingestellt. Fast vom Stuhl gefallen bin ich, als ich folgenden Abschnitt in man sources.list lesen konnte.
It is possible to proxy FTP over HTTP by setting the ftp_proxy environment variable to a http url - see the discussion of the http method above for syntax. You cannot set this in the configuration file and it is not recommended to use FTP over HTTP due to its low efficiency.
Hallo? Geht's noch ein bischen schizophrener? Wenn etwas in einer Environment Variable gesetzt ist funktioniert es. Im applikationseigenen Konfigurationsfile wird nicht angenommen. Allein das ist schon krank, aber es geht ja noch weiter. Die Proxyurl, vor der eindeutig http:// steht, dann ohne jegliche Fehlermeldung zu etwas anderem zu verwursten und dann zu behaupten der Server wäre kaputt setzt dem ganzen die Krone auf. Eine leidlich vollständige Dokumentation entbindet nicht davon einigermaßen sinnvolle Fehlermeldungen auszugeben.
Danke. Jetzt geht's mir besser.
Nachtrag
Natürlich will ich nicht nur meckern, sondern auch eine konkrete Problemlösung anbieten. Systemweite Environment Variablen werden bei Debian normalerweise in /etc/environment gesetzt. Allerdings werden diese offensichtlich nur bei einem Login und nicht bei einem Benutzerwechsel zu root ausgelesen. Daher sollte man den Proxy zusätzlich in /root/.profile setzen.
export http_proxy="http://barfoo:8080"
export ftp_proxy="http://barfoo:8080"


Kommentare