rsync - SuSE Patch CDs erstellen


By rakekniven - Posted on 22 August 2005

Patch CDs für die SuSE Distribution erstellen

Situation:

Wenn mehrere Rechner installiert mit SuSE installiert sind und jeder sein eigenes Online-Update durchführt, entsteht schnell viel unnötiger Traffic. Vielleicht sind auch einige Rechner (aus gutem Grund) nicht mit dem Internet verbunden und man will sie trotzdem auf dem neuesten Patchstand halten.

Dann ist es nur logisch sich die nötigen Pakete einmalig herunterzuladen. Sie dann auf einem lokalen FTP-Server zu laden oder eine Patch-CD/DVD zu brennen und so die Rechner auf dem aktuellen Stand zu halten.

Bei SuSE geht dies ganz einfach mit Hilfe von rsync.

1. Laden der Patches mittels rsync

Einfacher und komfortabler können Sie die relevanten Update-Dateien mittels rsync auf Ihren Rechner holen. Per Default wird rsync bei SuSE Linux 9.3 allerdings nicht installiert, Sie müssen es also zunächst auf Ihrem System per YaST einrichten.

rsync ist ein nützliches Tool, nicht nur zum automatisierten Download von Patches. Es eignet sich beispielsweise auch für Backups.

Nach der Installation von rsync können Sie von einem FTP-Server, der auch rsync unterstützt, mittels einer Kommandozeile automatisch alle Updates holen lassen. Das Praktische an diesem Verfahren ist, dass folgende Aufrufe derselben Befehlssequenz nur neue oder geänderte Dateien übertragen. Sie könnten also beispielsweise in einem cron-Job jeden Abend ein Shell-Script aufrufen, das die neuesten Updates herunterlädt.

Ein FTP-Server mit Unterstützung für rsync ist beispielsweise ftp.leo.org. Ziel ist wiederum, nur bestimmte Dateien zu laden und andere auszulassen. Im Beispiel benötigen wir alle Dateien außer denen in Verzeichnissen namens src (--exclude "src"), denen für die Extended Architecture (--exclude "x86_64/" und --exclude "*.x86_64.delta.rpm") und den vollen Paketen (--exclude "*.i586.rpm"). Da mit Letzterem auch der Kernel ausgeschlossen wird, sorgen die drei Include-Befehle dafür, dass er explizit wieder in die Liste aufgenommen wird.

Erstellen Sie lokal die folgende Ordnerstruktur "/tmp/patchcds/9.3/i386/update/" und geben folgenden Befehl ein:

rsync -rltuzv --stats --progress --delete --delete-excluded \
	--include "kernel-default*.i586.rpm" \
	--include "kernel-source*.i586.rpm" \

	--include "kernel-syms*.i586.rpm" \
	--exclude "*.i586.rpm" \
	--exclude "src/" \
	--exclude "x86_64/" \
	--exclude "*.x86_64.delta.rpm" \
	ftp.leo.org::suse/i386/update/9.3 /tmp/patchcds/9.3/i386/update/

Beim erstmaligen Ausführen des Befehls ganz eine ganz schön lange Zeit vergehen bis der Vorgang abgeschlossen ist. Bei den folgenden Aktualisierungsvorgängen werden nur die neuen Dateien geladen und das geht fix.

Zum Erstellen einer CD/DVD brennen Sie einfach den Ordner "/tmp/patchcds/9.3/" auf eine CD. Nutzen Sie mkisofs zum Erstellen der ISO-Datei die Sie dann mit k3b oder einem anderen Brennprogramm brennen können.

Der mkisofs-Befehl lautet:

mkisofs -v -r -J -V "SuSE Update CD" -o /tmp/patch93.iso /tmp/patchcds/9.3/