APT offline verwenden ----------------------------------------------------------------------------- Jason Gunthorpe Version 2.7.6 ----------------------------------------------------------------------------- Copyright © 1999 Jason Gunthorpe Lizenzhinweis »APT« und dieses Dokument sind freie Software. Sie können sie unter den     Bedingungen der GNU General Public License, wie sie von der Free Software Foundation veröffentlicht wird; entweder Version 2 der Lizenz oder (optional) jeder neueren Version weitergeben und/oder verändern.     Siehe für weitere Details auf Debian-Systemen die Datei /usr/share/ common-licenses/GPL, die die vollständige Lizenz enthält. Zusammenfassung Dieses Dokument beschreibt, wie APT in einer Umgebung ohne Netzwerk, speziell einem »Turnschuhnetzwerk«, an die Durchführung von Upgrades herangeht. ----------------------------------------------------------------------------- Inhaltsverzeichnis 1. Einleitung 1.1. Übersicht 2. APT auf beiden Maschinen benutzen 2.1. Übersicht 2.2. Die Konfigurationsdatei 3. APT und Wget benutzen 3.1. Übersicht 3.2. Betrieb Kapitel 1. Einleitung Inhaltsverzeichnis 1.1. Übersicht 1.1. Übersicht Normalerweise benötigt APT direkten Zugang zu einem Debian-Archiv, entweder von einem lokalen Medium oder über ein Netz. Eine andere häufige     Beanstandung ist, dass eine Debian-Maschine an einer langsamen Anbindung, wie einem Modem, hängt und eine andere Maschine eine sehr schnelle Verbindung hat, sie jedoch physisch fern sind. Die Lösung dazu besteht darin, große Wechselmedien, wie eine Zip-Platte oder eine SuperDisk zu benutzen. Diese Platten sind nicht groß genug, um ein ganzes Debian-Archiv zu speichern, können aber leicht eine Untermenge aufnehmen, die für die meisten Benutzer groß genug ist. Die Idee besteht darin, APT zu benutzen, um eine Liste benötigter Pakete zu generieren und     diese dann mit einer anderen Maschine mit guter Verbindung auf die Platte herunterzuladen. Es ist sogar möglich, eine andere Debian-Maschine mit APT oder ein komplett unterschiedliches Betriebssystem und ein Download-Werkzeug wie Wget zu benutzen. Nennen wir die Maschine, die die Pakete herunterlädt ferner Rechner und die mit der schlechten oder fehlenden Verbindung Zielrechner. Dies wird durch kreatives Manipulieren der APT-Konfigurationsdatei erreicht. Die wesentliche Voraussetzung besteht darin, APT mitzuteilen,     dass es für seine Archivdateien auf einer Platte nachsieht. Beachten Sie, dass diese Platte mit einem Dateisystem formatiert sein sollte, das mit langen Dateinamen umgehen kann, so wie ext2, fat32 oder vfat. Kapitel 2. APT auf beiden Maschinen benutzen Inhaltsverzeichnis 2.1. Übersicht 2.2. Die Konfigurationsdatei 2.1. Übersicht Ein verfügbares APT auf beiden Maschinen stellt die einfachste Konfiguration dar. Die Grundidee besteht darin, eine Kopie der     Statusdatei auf der Platte abzulegen und die Maschine in der Ferne zu benutzen, um die neusten Paketdateien herunterzuladen und zu entscheiden, welche Pakete heruntergeladen werden. Die Plattenverzeichnisstruktur sollte so aussehen: /Platte/ Archive/ partial/     lists/ partial/ status sources.list apt.conf 2.2. Die Konfigurationsdatei Die Konfigurationsdatei sollte APT mitteilen, dass es seine Dateien auf der Platte speichert und obendrein die Konfigurationsdateien auf der Platte benutzt. Die »sources.list« sollte genau die Sites enthalten, die     Sie auf der fernen Maschine benutzen möchten und die Statusdatei sollte eine Kopie von /var/lib/dpkg/status vom Zielrechner sein. Bitte beachten Sie, falls Sie lokale Archive benutzen, dass Sie »copy«-URIs benutzen müssen. Die Syntax entspricht der von »file«-URIs.     apt.conf muss die nötigen Informationen enthalten, damit APT die Platte benutzt: APT { /* Dies ist nicht nötig, falls die beiden Maschinen die gleiche Architektur haben. Es teilt dem fernen APT mit, welche Architektur die Zielmaschine hat */ Architecture "i386"; Get::Download-Only "true"; }; Dir     { /* Die Platte für Statusinformationen benutzen und die Statusdatei von der Vorgabe /var/lib/dpkg umleiten */ State "/disc/"; State::status "status"; // Programmzwischenspeicher werden lokal gespeichert Cache::archives "/disc/archives/"; Cache "/tmp/"; // Ort der Quellenliste. Etc "/disc/"; };     Weitere Details finden sich in der apt.conf-Handbuchseite und der Musterkonfigurationsdatei in /usr/share/doc/apt/examples/apt.conf. Das Erste, was auf der Zielmaschine getan werden muss, ist das Einhängen der Platte und das Kopieren von /var/lib/dpkg/status dorthin. Sie werden     außerdem die in der Übersicht umrissenen Verzeichnisse archives/partial/ und lists/partial/ erstellen müssen. Dann bringen Sie die Platte zu der fernen Maschine und konfigurieren Sie die »sources.list«. Führen Sie das folgende auf der fernen Maschine aus: # export APT_CONFIG="/disc/apt.conf" # apt-get update     [ APT lädt die Paketdateien herunter ] # apt-get dist-upgrade [ APT lädt all die Pakete herunter, die die Zielmaschine benötigt, um ein Upgrade durchzuführen ] Der Befehl »dist-upgrade« kann durch alle anderen Standard-APT-Befehle     ersetzt werden, insbesondere »dselect-upgrade«. Sie können sogar eine APT-Oberfläche, wie dselect, benutzen. Jedoch stellt dies ein Problem dar, Ihre Auswahl zurück an den lokalen Rechner zu kommunizieren. Nun enthält die Platte alle Indexdateien und Archive, die nötig sind, um     ein Upgrade der Zielmaschine durchzuführen. Bringen Sie die Platte zurück und starten Sie: # export APT_CONFIG="/Platte/apt.conf" # apt-get check     [ APT erstellt eine lokale Kopie der Zwischenspeicherdateien ] # apt-get --no-d -o dir::state::status=/var/lib/dpkg/status dist-upgrade [ Oder irgendeinen anderen APT-Befehl ]     Es ist für ordentliches Funktionieren notwendig, die Statusdatei erneut als die lokale anzugeben. Dies ist sehr wichtig! Wenn Sie Dselect benutzen, können Sie die sehr riskante Aktion durchführen, disc/status auf /var/lib/dpkg/status zu kopieren, so dass die von Ihnen auf der fernen Maschine gemachte Auswahl aktualisiert wird.     Es wird in höchstem Maße empfohlen, dass Leute nur auf der lokalen Maschine Auswahlen treffen – aber dies könnte manchmal unmöglich sein. Kopieren Sie die Statusdatei NICHT, falls Dpkg oder APT in der Zwischenzeit benutzt wurden! Kapitel 3. APT und Wget benutzen Inhaltsverzeichnis 3.1. Übersicht 3.2. Betrieb 3.1. Übersicht wget ist ein beliebtes und portierbares Herunterladewerkzeug, das auf     nahezu jeder Maschine laufen kann. Anders als die Methode oben wird hierfür benötigt, dass die Debian-Maschine bereits eine Liste verfügbarer Pakete hat. Die Grundidee besteht darin, eine Platte zu erzeugen, die nur die heruntergeladenen Archivdateien von der fernen Site enthält. Dies wird     durch Benutzen der Option »--print-uris« von Apt-get und dem anschließenden Erstellen eines Wget-Skripts getan, das dann die Pakete tatsächlich herunterlädt. 3.2. Betrieb Anders als bei der vorherigen Technik werden keine speziellen     Konfigurationsdateien benötigt. Es werden lediglich die Standard-APT-Befehle benutzt, um die Dateiliste zu erstellen. # apt-get dist-upgrade [ Antworten Sie »nein« auf gestellte Fragen; stellen Sie sicher, dass Sie     mit den Aktionen zufrieden sind ] # apt-get -qq --print-uris dist-upgrade > uris # awk '{print "wget -O " $2 " " $1}' < uris > /Platte/wget-script     Es könnte auch jeder andere Befehl neben »dist-upgrade« hier benutzt werden, einschließlich »upgrade«. Die Datei /Platte/wget-script wird nun eine Liste der Wget-Befehle     enthalten, um die erforderlichen Archive herunterzuladen. Dieses Skript sollte mit dem aktuellen Verzeichnis als Platteneinhängepunkt ausgeführt werden, so dass die Ausgabe auf die Platte gespeichert wird.     Die Maschine in der Ferne würde etwas wie das folgende tun # cd /Platte     # sh -x ./wget-script [ warten … ]     Sobald die Archive heruntergeladen und die Platte zur Debian-Maschine zurückgekehrt ist, kann die Installation durch Benutzung von     # apt-get -o dir::cache::archives="/Platte/" dist-upgrade     fortfahren, wodurch die bereits auf der Platte heruntergeladenen Archive benutzt werden.