# apt-get update # apt-get -qq --print-uris dist-upgrade > uris # awk '{print "wget -O " $2 " " $1}' < uris > /medium/wget-script # cd /medium # sh -x ./wget-script
Offline-Verwaltung mit 'apt-get' und 'wget'
In diesem Szenario kombinieren wir aus APT das Werkzeug apt-get
mit
awk
und wget
. Diese wunderbare Idee und Beschreibung ist entlehnt
aus Frank Ronneburgs Debian-Anwenderhandbuch
[Debian-Anwenderhandbuch-apt-offline] sowie dem Beitrag von Samuel
Suter [Suter-apt-offline], hier jedoch nur für ausgewählte Pakete.
awk
ist ein Analyse- und Filterprogramm für Textdaten
[Debian-Paket-gawk]. wget
ist hingegen ein Kommandozeilenprogramm,
um Dateien über das Netzwerk zu beziehen [Debian-Paket-wget]. Während
'gawk' zu den essentiellen Paketen zählt, ist 'wget' optional und daher
ihrerseits vor dessen Verwendung gegebenenfalls noch zu installieren.
Der Ablauf ist wie folgt:
-
Einhängen (
`mounten'') eines externen, mobilen Datenträgers im Verzeichnis `/medium
-
Aktualisieren der lokalen Paketdatenbank mittels
apt-get update
-
Erzeugen der URLs mittels
apt-get
für die Pakete, die zu aktualisieren sind, und Umleitung der Ausgabe in die lokale Dateiuris
-
Generieren der passenden
wget
-Aufrufe aus den zuvor gespeicherten URLs mittelsawk
. Ausgabe aufstdout
und Umleitung der Ausgabe in die lokale Skriptdatei/medium/wget-script
. -
Ausführung der der Skriptdatei zum Bezug der bezeichneten Pakete vom Spiegelserver und der Speicherung der bezogenen Pakete im lokalen Verzeichnis.
apt-get
, awk
und wget
Als Ergebnis dieser Aufrufe finden Sie auf dem mobilen Datenträger alle
deb
-Pakete, die zur Aktualisierung mittels apt-get dist-upgrade
erforderlich sind. Unmounten Sie den mobilen Datenträger auf dem ersten
System und mounten Sie diesen auf dem Zielsystem. Als finalen Schritt
erfolgt auf dem Zielsystem ein Aufruf von apt-get dist-upgrade
mit dem
Paketcache auf dem mobilen Medium. Dazu verwenden Sie den Schalter -o
mit der APT-Direktive dir::cache::archives
und dem passenden Pfad zum
Paketcache. Der Einfachheit halber heißt dieser hier ebenfalls
/medium
.
# apt-get -o dir::cache::archives="/medium/" dist-upgrade