Werbehinweise

Startseite » Software » Linux » Debian GNU/Linux:
apt-get via Proxy 

Werbung

Debian GNU/Linux

apt-get via Proxy

Per apt-get sein Debian zu aktualisieren ist eine feine Sache – vorallem dann, wenn man es (dank Flatrate) über das Internet machen kann. Sollte man keine direkte Verbindung mit dem Internet haben, so kann man über einen HTTP- oder FTP-Proxy die Pakete dennoch herunterladen (lassen). Wie das geht soll hier mit wenigen Worten beschrieben werden.

/etc/apt/apt.conf

Die bisherige apt.conf muß bearbeitet werden. Sie befindet sich im Verzeichnis /etc/apt/. Im Verzeichnis /usr/doc/apt/examples/ befindet sich die Datei configure-index.gz. In dieser sind Beispielscripte vorhanden, die dann »nur« noch angepasst werden müssen.

Das folgende Script basiert auf dem Beispiel aus dieser Datei, ich habe es aber bereits angepasst und werde mich im Folgenden auf dieses veränderte Script beziehen.

Da ich Probleme hatte, über einen FTP-Proxy mit dem Web eine Verbindung zu erstellen, habe ich einfach das Update per HTTP vorgezogen.

Als »Vorarbeit« muß man eine Variable ändern. Diese lautet http_proxy. Das Ändern bzw. Setzen einer Umgebungsvariable wird mit dem Befehl export erledigt. Mit set kann man sich den Inhalt der Umgebungsvariablen anzeigen lassen.

Bevor man die Variable ändert sollte man überprüfen, ob sie nicht eventuell schon einen Wert hat. Dies kann man mit folgendem Aufruf machen:

set | grep http_proxy

Wenn als Ausgabe nichts erscheint, ist die Variable leer. Für die Verbindung mit dem HTTP-Proxy war in meinem Fall ein einloggen mit Username und Passwort erforderlich. Daher mußte ich beim Zuweisen der Variablen diese Werte mit übergeben. Ein Aufruf mit Username und Passwort würde wie folgt aussehen:

export http_proxy=http://username:password@192.168.99.1:3128

Natürlich muß die IP des Proxys und der dazugehörige Port ebenfalls mit angegeben werden. Dies ist nach dem @ zu machen – ganz wie im Beispiel ersichtlich.

Die Angabe vom Usernamen und dem dazugehörigen Passwort im Klartext birgt natürlich Sicherheitsrisiken. Ich habe die Variable daher nicht in die /etc/environment eingetragen sondern immer per export sozusagen »temporär« zugewiesen.

Das Script

Nun aber zum eigentlichen Script:

// Pre-configure all packages before they are installed.
// (Automatically added by debconf.)
DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};

/* In some instances involving filenames it is possible to set the default
   directory when the path is evaluated. This means you can use relative
   paths within the sub scope.

   The configuration directives are specified in a tree with {} designating
   a subscope relative to the tag before the {}. You can further specify
   a subscope using scope notation eg,
     APT::Architecture "i386";
   This is prefixed with the current scope. Scope notation must be used
   if an option is specified on the command line with -o.
*/ // Options for the downloading routines
Acquire
{
  // HTTP method configuration
  http
  {
    Proxy "http://proxy:3128";

    Timeout "120";
  };   // FTP method configuration
  ftp
  {
    Proxy "ftp://proxy:3128";     /* Required script to perform proxy
                                  /* login. This example should work
       for tisfwtk */
    ProxyLogin
    {
       "USER $(PROXY_USER)";
       "PASS $(PROXY_PASS)";
       "USER $(SITE_USER)@$(SITE):$(SITE_PORT)";
       "PASS $(SITE_PASS)";
    };

    Timeout "120";

    /* Passive mode control, proxy, non-proxy and per-host. Pasv mode
       is prefered if possible */
    Passive "true";
  };

};

Abschließende Informationen

Aus der Vorlage zum Script habe ich zunächst mal alle unnötigen Einträge gelöscht. Zwar habe ich den FTP-Block noch im Script gelassen, aber solange in der sources.list nur HTTP-Quellen angegeben werden ist das relativ egal.

Geändert habe ich die Angabe des Proxyservers. In der /etc/hosts habe ich einen Eintrag für proxy gemacht und dort die richtige IP zugewiesen. Dies hat den Vorteil, dass man bei einer eventuellen Änderung der IP des Proxys sehr einfach für alle (!) Scripte die Angabe der IP des Proxys ändern kann – eben über die hosts-Datei.

Zurück zum Script. Da der HTTP-Proxy samt Username und Passwort in einer Umgebungsvariablen definiert worden ist, sollte der Transfer jetzt ohne Probleme funktionieren. Ist das Script nicht in der apt.conf eingefügt worden, schlägt das Update fehl. Das Script ist also defintiv notwendig!

Datenschutzerklärung
Durch die Nutzung der Website stimmen Sie der Verwendung von Cookies zur Durch­führung von Analysen und zum Erstellen von Inhalten und Werbung, welche an Ihre Interessen angepasst ist, zu.