Debian GNU/Linux Anwenderhandbuch | ||
---|---|---|
Zurück | Kapitel 23. Weitere Infos | Nach vorne |
Aufgrund des bereits großen Umfangs des Debian-Archives ist es nicht sinnvoll eine komplette Kopie aller Dateien lokal vorzuhalten. Meist ist es ausreichend lediglich die Binarys für die verwendete Architetur (beispielsweise i386) vorzuhalten. Die Sourcen der Pakete werden nur in seltenen Fällen benötigt und können gezielt bei Bedarf besorgt werden. Informationen zum spiegeln eines Debian Servers finden sich auch unter http://www.debian.org/mirror/ftpmirror.
absurd_debmirror ist ein auf rsync basierendes Shellscript. Der Vorteil bei der Verwendung von rsync ist der schonendere Umgang mit den Systemresourcen. absurd_debmirror überträgt neben den eigentlichen Paketen auch die entsprechenden Bootdisketten der gewünschten Release, so das sich dieses Programm sehr gut eignet um einen lokalen Mirror zu erzeugen aus dem bootfähige CD-ROMs generiert werden können.
absurd_debmirror enthält eine umfangreiche Dokumentation innerhalb des Scriptes. Als Parameter beim Aufruf von absurd_debmirror ist zunächst das lokale Verzeichnis anzugeben in dem die Pakete abgelegt werden sollen (ohne Angabe des Verzeichnisses debian). Zweiter Parameter ist der Server von dem die Pakete geholt werden, gefolgt von dem Verzeichnis auf diesem Server. Als drittes folgt die gewünschte Release, mehrere Releases sind dabei durch Anführungszeichen zusammenzufassen. Gleiches gilt für die Bereiche sowie für die gewünschten Architekturen.
Ein Aufruf von absurd_debmirror kann demnach wie folgt aussehen:
absurd_debmirror /home/ftp ftp.debian.org debian "woody sid" "main contrib non-free non-US/main non-US/contrib non-US/non-free" "i386" |
Natürlich ist es auch möglich den Non-US Bereich eines Servers zu spiegeln. Dies kann mit folgendem Aufruf geschehen:
/usr/local/bin/absurd_debmirror /home/ftp/debian non-us.debian.org debian-non-US "woody sid" "non-US/main non-US/contrib non-US/non-free" "i386" |
absurd_debmirror wird nicht mehr weiterentwickelt, stattdessen kann das im folgenden beschriebene debmirror verwendet werden.
Das Programm debmirror von Joey Hess bietet eine sehr einfach Möglichkeit einen Debian FTP Server, bei Bedarf auch nur in Teilen, zu spiegeln. Das Programm steht leider nicht als offizielles Debian Paket zur Verfügung, da es sich aber um ein Perl Script handelt ist dies keine große Katastrophe. Sie finden die aktuelle Version unter http://cvs.kitenet.net/joey-cvs/bin/Attic/debmirror. Alternativ kann auf das nicht-offizielle Paket unter http://www.openoffice.de/linux/debian/dists/woody/main/binary-i386/misc/ zurückgegriffen werden.
debmirror benutzt keine Konfigurationsdatei, alle benötigten Parameter können auf der Kommandozeile angegeben werden. Sehr vorteilhaft ist bei diesem Script das es speziell auf die Bedürfnisse von Debian angepasst wurde, so kann es beispielsweise mit Package-Pools problemlos umgehen. Das Packages-Pool Konzept wurde mit der Entwicklung von „woody“ eingeführt und erlaubt es verschiedene Releases (testing, stable, unstable...) auf Basis der Daten innerhalb des Verzeichnisses pool/ zu verwalten. Weiterhin werden die benötigten Dateien auf Basis der Package-Dateien ermittelt, somit ist auch hier immer ein einheitlicher Stand sichergestellt.
Die Verwendung von debmirror ist ziemlich simpel. Wenn das Programm ohne weitere Parameter aufgerufen wird, bekommen Sie eine Übersicht der möglichen Parameter:
sushi:~# ./debmirror mirrordir not specified Usage: ./debmirror mirrordir [--debug] [--progress] [--source|--nosource] [--md5sums|--nomd5sums] [--passive] [--host=remotehost] [--user=remoteusername] [--root=directory] [--dist=foo[,bar,..] ...] [--section=foo[,bar,..] ...] [--arch=foo[,bar,..] ...] [--cleanup|--nocleanup] [--skippackages] [--adddir=directory] [--ignore=regex] [--getcontents] [--exclude=regex] [--help] |
Als einziger Parameter ist „mirrordir“ zwingend erforderlich. Dieser beschreibt das lokale Verzeichnis in dem der Debian Spiegel erzeugt werden soll. Wenn dieses Verzeichnis nicht vorhanden ist, so wird es erzeugt.
Folgendes Kommando erzeugt einen Debian Mirror für die Architektur „i386“ im Verzeichnis /home/ftp/debian/, es werden die Versionen „potato“, „woody“ und „sid“ mit den Bereichen „main“, „contrib“ und „non-free“ kopiert. Als Server dient „ftp.debianorg“ (hier sollte auf alle Fälle ein gut erreichbarer Server benutzt werden), es werden keine Sourcen übertragen und das Verzeichnis „debian-non-US“ auf der lokalen Platte wird nicht angetastet (dazu gleich mehr). Weiterhin wird Fortschritt laufend angezeigt.
debmirror -a i386 -s main -s contrib -s non-free \ -h ftp.debian.org \ -d woody -d potato -d sid \ /home/ftp/debian \ --nosource \ --ignore=debian-non-US/ --progress |
Da auf dem offiziellen Debian FTP Server die Pakete aus dem non-US Bereich fehlen, können diese Pakete mit einer zweiten Zeile auf den heimischen Rechner geholt werden:
debmirror -a i386 -h ftp.de.debian.org \ -r /debian-non-US -s non-US/main,non-US/contrib,non-US/non-free \ -d woody -d potato -d sid \ /home/ftp/debian/debian-non-US --progress |
Je nach Bandbreite Ihrer Internetanbindung steht Ihnen nach einiger Zeit ein lokaler Debian Mirror zur Verfügung.
Durch den Einsatz von debmirror-wrapper wird auch die Syntax beim Aufruf noch einfacher. Viele der benötigten Optionen können direkt im Script fest verankert werden, lange Kommandozeilen Optionen entfallen damit. debmirror-wrapper von Stephan A. Suerken ist auf seinen Webseiten zu finden.
Hier eine Konfigurationsdatei die die Architekturen i386 und powerpc vom Debian FTP Server kopiert.
package=Debian # comment=Mirror of parts of ftp.debian.org/pub/debian # # specify remote host, directory and ls-lR file site=ftp.de.debian.org remote_dir=/debian store_remote_listing=/tmp/DEBIANREMOTE ls_lR_file=ls-lR.gz # # specify the local directory local_dir=/home/ftp/debian # # inform this user about results mail_to=fr # # Compress these files. #compress_patt=\.*(C|c)ontents(-i386)? #compress_patt+|Packages(-Master)?|ls-lR|md5sums #compress_patt+|Maintainers|msdos-names # # Exclude these files or directories exclude_patt=private/|project/|ls-lR|ls-lR.gz|ls-lR.patch.gz|dsync.list exclude_patt+|debian-(bugs|lists)/ exclude_patt+|\.*(hurd-i386|hppa|mipsel|mips|ia64|s390|arm|m68k|alpha| hurd|mips|sparc).deb? exclude_patt+|\.*(hurd-i386|hppa|mipsel|mips|ia64|s390|arm|m68k|alpha| hurd|mips|sparc).udeb? exclude_patt+|\.*(hurd-i386|hppa|mipsel|mips|ia64|s390|arm|m68k|alpha| hurd|mips|sparc).gz? exclude_patt+|\.*(hurd-i386|hppa|mipsel|mips|ia64|s390|arm|m68k|alpha| hurd|mips|sparc).diff.gz? exclude_patt+|\.*(hurd-i386|hppa|mipsel|mips|ia64|s390|arm|m68k|alpha| hurd|mips|sparc).dsc? exclude_patt+|\.*(hurd-i386|hppa|mipsel|mips|ia64|s390|arm|m68k|alpha| hurd|mips|sparc).tar.gz? exclude_patt+|\.tar.gz? exclude_patt+|\.dsc? exclude_patt+|\.changes? exclude_patt+|\.diff.gz? exclude_patt+|bo/ exclude_patt+|rex/ exclude_patt+|slink/ exclude_patt+|binary-arm/ exclude_patt+|binary-m68k/ exclude_patt+|binary-ia64/ exclude_patt+|binary-hppa/ exclude_patt+|binary-sparc/ exclude_patt+|binary-mipsel/ exclude_patt+|binary-mips/ exclude_patt+|binary-alpha/ exclude_patt+|disks-alpha/ exclude_patt+|disks-m68k/ exclude_patt+|disks-sparc/ exclude_patt+|upgrade-alpha/ exclude_patt+|upgrade-m68k/ exclude_patt+|upgrade-sparc/ exclude_patt+|binary-s390/ exclude_patt+|binary-hurd-i386/ exclude_patt+|md5sums exclude_patt+|md5sums.gz exclude_patt+|/potato/main/disks-arm/ exclude_patt+|/potato/main/binary-arm/ exclude_patt+|/potato/contrib/binary-arm/ exclude_patt+|/potato/non-free/binary-arm/ exclude_patt+|/potato/main/binary-sparc/ exclude_patt+|/potato/contrib/binary-sparc/ exclude_patt+|/potato/non-free/binary-sparc/ exclude_patt+|woody/non-free/binary-sparc/ exclude_patt+|woody/non-free/binary-alpha/ exclude_patt+|woody/main/binary-sparc/ exclude_patt+|woody/main/binary-alpha/ exclude_patt+|woody/contrib/binary-sparc/ exclude_patt+|woody/contrib/binary-alpha/ exclude_patt+|woody/main/binary-hurd/ exclude_patt+|woody/main/binary-hurd-i386/ exclude_patt+|woody/main/binary-arm/ exclude_patt+|woody/main/binary-mips/ exclude_patt+|woody/main/binary-mipsel/ exclude_patt+|binary-hppa/ exclude_patt+|binary-sh/ exclude_patt+|woody/main/binary-sparc/ exclude_patt+|woody/main/disks-sparc/ exclude_patt+|woody/main/binary-alpha/ exclude_patt+|woody/Contents-arm.gz exclude_patt+|woody/Contents-hurd-i386.gz exclude_patt+|woody/Contents-alpha.gz exclude_patt+|woody/Contents-sparc.gz exclude_patt+|woody/Contents-hppa.gz exclude_patt+|woody/Contents-sh.gz exclude_patt+|woody/Contents-mips.gz exclude_patt+|woody/Contents-mipsel.gz # exclude_patt+|\.notar # # Don't delete what is mirrored by the other mirror package below # # delete_excl=(local|debian-non-US|non-US|project)(/|$) # Do not delete if more than 20% of all files would vanish max_delete_files=20% |
Zurück | Zum Anfang | Nach vorne |
Weitere Infos | Nach oben | Erstellen von eigenen Debian GNU/Linux CD-ROMs |