Start   Impressum         online lesen   Download         Jumping Blue Turtle

Debian für Unternehmer - Debian-Know-how

0303: Einen Debian-Mirror aus den vorhandenen DVDs erstellen

In diesem Modul soll gezeigt werden, wie aus vorhandenen DVDs ein Debian-Repository erzeugt werden kann. Umgangssprachlich wird ein Debian-Repository auch "Debian-Mirror" genannt.



1. Der Versuchsaufbau

Wir testen die Transformation mit dem Betriebssystem Debian Etch R3. Für die Versuche benötigen wir ein Verzeichnis auf einer Partition, die mindestens 30 Gigabyte groß sein sollte. Legen Sie nun ein entsprechendes Verzeichnis an:

cd /multi
mkdir mirroring

Innerhalb dieses Verzeichnisses erzeugen wir nun jeweils ein Verzeichnis für die Inhalte der DVD-Images und für den zu erstellenden Debian-Mirror:

cd /mirroring
mkdir dvds
mkdir debian-mirror

cd /dvds
mkdir dvd1
mkdir dvd2
mkdir dvd3


2. Inhalte der DVD-Images kopieren

Mounten Sie nun nacheinander die DVD-Images und kopieren Sie die Inhalte der DVD-Images in die Unterverzeichnisse des Verzeichnisses "dvds". Für das Kopieren können Sie z.B. den "Midnight Commander" nutzen.

Das Mounten und Unmounten eines DVD-Images zeige ich Ihnen hiermit beispielhaft am DVD-Image 1:

# mounten:
mkdir dvd1
mount -t iso9660 debian-40r3-i386-DVD-1.iso dvd1 -o loop

# kopieren Sie jetzt die Inhalte
# ...

# unmounten:
umount dvd1
rm -R dvd1


3. Beschäftigen Sie sich mit dem Thema "Debian-Repository"

Im Grunde ist das, was sich auf einem DVD-Image von Debian befindet, nichts weiter als ein "Debian-Repository". Was wir jetzt vorhaben, ist, dass wir die drei "Debian-Repositories" zum einem einzigen "Debian-Repository" verschmelzen.

Auf den DVDs befinden sich viele verschiedene Verzeichnisse und Dateien. Für jemanden, der das erst einmal nur verstehen will, ist das für den Anfang zu viel.

Wirklich wesentlich für einen Debian-Mirror sind eigentlich nur die 2 Verzeichnisse "dists" und "pool".


3.1. Das "dists"-Verzeichnis

Das "dists"-Verzeichnis enthält Paketinformationen zu den Paketen, die im aktuellen "Debian-Repository" enthalten sind. Wenn Sie das "Debian-Repository" in der Datei "/etc/apt/sources.list" vermerkt haben und ein Paket nachinstallieren, dann sucht APT zuerst im "dists"-Verzeichnis des "Debian-Repositorys" nach dem Paket, und zwar im Detail so:

  1. Wechseln in das "dists"-Verzeichnis

  2. Innerhalb des "dists"-Verzeichnis: Wechseln in das Unterverzeichnis der entsprechenden Debian-Version. Zum Beispiel in das Verzeichnis mit dem Namen "etch".

  3. Innerhalb des Versions-Verzeichnisses: Wechseln in das Unterverzeichnis der "Komponente" (gemeint ist "main", "contrib", "non-free" oder "non-us"). Zum Beispiel in das Verzeichnis mit dem Namen "main".

  4. Innerhalb des Komponenten-Verzeichnisses: Wechseln in das Unterverzeichnis der Rechner-Architektur. Zum Beispiel in das Verzeichnis mit dem Namen "binary-i386".

  5. Innerhalb des Architektur-Verzeichnisses: Öffnen der Datei mit dem Namen "Packages.gz".

  6. Innerhalb der Packages-Datei: Nachsehen, ob ein Eintrag zum zu installierenden Paket vorhanden ist.

Wenn ein Eintrag gefunden wurde, dann kann der Eintrag ausgewertet und das Paket installiert werden.


3.2. Das "pool"-Verzeichnis

Natürlich hat in unserem Beispiel APT nur einen Eintrag zum zu installierenden Paket gefunden (die Paketinformation), jedoch nicht das zu installierende Paket selbst.

Die Paketinformation enthält aber einen Untereintrag mit dem Namen "Filename". Die Pakete selbst sind Dateien, deren Namen auf ".deb" enden. Sie liegen im "pool"-Verzeichnis und die einzelnen Paketinformationen verweisen (mit Hilfe des Untereintrags "Filename") darauf. In unserem Beispiel findet APT also das zu installierende Paket im "pool"-Verzeichnis und kann es endlich installieren.


3.3. Mehr Hintergrundwissen

Im Wesentlichen haben Sie nun den Aufbau und die Funktionsweise eines Debian-Mirrors verstanden. Mehr Details können Sie hier nachlesen:



4. Zusammenkopieren der Pakete in ein einziges Verzeichnis

Unser Ziel besteht ja darin, aus 3 Debian-Mirrors (3 Debian-DVDs) einen einzigen Debian-Mirror zu machen. Dazu verwenden wir wieder einen Dateibrowser, z.B. den "Midnight Commander".

Wie Sie bereits wissen, befinden sich die Pakete in den "pool"-Verzeichnissen der Debian-Repositories. Sie fügen diese Pool-Verzeichnisse nun wie folgt zu zusammen.

  1. Wechseln in das Verzeichnis "/multi/mirroring/dvds/dvd1". Kopieren Sie das dortige "pool"-Verzeichnis in das noch leere Verzeichnis "/multi/mirroring/debian-mirror".

  2. Wechseln in das Verzeichnis "/multi/mirroring/dvds/dvd2". Kopieren Sie das dortige "pool"-Verzeichnis in das Verzeichnis "/multi/mirroring/debian-mirror".

  3. Wechseln in das Verzeichnis "/multi/mirroring/dvds/dvd3". Kopieren Sie das dortige "pool"-Verzeichnis in das Verzeichnis "/multi/mirroring/debian-mirror".

Wenn alles glatt gegangen ist, dann werden Sie feststellen, dass im 2. und im 3. Schritt keine einzige Datei überschrieben werden musste. Daran erkennen Sie, dass die Pakete von Debian Etch (R3) tatsächlich auf 3 DVDs aufgeteilt wurde, ohne Redundanzen.



5. Zusammenkopieren der Paketinformationen in ein einziges Verzeichnis

Während sich die "pool"-Verzeichnisse so leicht zusammenkopieren lassen, wird das bei den "dists"-Verzeichnissen etwas schwieriger. Wir werden es jetzt trotzdem tun. Nach dieser Aktion werden Sie verstehen, was am "dists"-Verzeichnis gegenüber dem "pool"-Verzeichnis die Herausforderung ist.

  1. Erstellen Sie im Ziel-Repository ein "dists"-Verzeichnis:
    cd /multi/mirroring/debian-mirror
    mkdir dists
    cd dists
    mkdir etch
    cd etch
    
  2. Kopieren Sie nun die Paketinformationen der DVD1 in das Zielverzeichnis. Sie sollten dabei wissen, dass die Packages-Dateien immer doppelt vorhanden sind: Einmal unkomprimiert als "Packages" und einmal komprimiert als "Packages.gz".
    mkdir main
    cd main
    mkdir binary-i386
    cd binary-i386
    cp -a ../../../../../dvds/dvd1/dists/etch/main/binary-i386/Packages .
    
    cd ..
    mkdir debian-installer
    cd debian-installer
    mkdir binary-i386
    cd binary-i386
    cp -a ../../../../../../dvds/dvd1/dists/etch/main/debian-installer/binary-i386/Packages .
    
    cd ../../..
    mkdir contrib
    cd contrib
    mkdir binary-i386
    cd binary-i386
    cp -a ../../../../../dvds/dvd1/dists/etch/contrib/binary-i386/Packages .
    
  3. Jetzt kopieren Sie die Paketinformationen der DVD2 in das Zielverzeichnis.
    cd ../../main/binary-i386
    cat ../../../../../dvds/dvd2/dists/etch/main/binary-i386/Packages>>Packages
    
  4. Und zuletzt kopieren Sie die Paketinformationen der DVD3 in das Zielverzeichnis.
    cd ../../main/binary-i386
    cat ../../../../../dvds/dvd3/dists/etch/main/binary-i386/Packages>>Packages
    

Wie Sie festgestellt haben, müssen im "dists"-Verzeichnis die Dateien ineinanderkopiert werden, weil eine Packages-Datei aus einer Aneinanderreihung von Paketinformationen besteht und die Paketinformationen, die vorher auf drei DVDs aufgeteilt waren, nun zusammenzufügen sind. Um ein Ineinanderkopieren zu erreichen, benutzen wir den "cat"-Befehl.

Nach dem Ineinanderkopieren der Packages-Dateien müssen wir die Resultate noch komprimieren, weil APT auf die komprimierten Versionen zugreift:

cd ../../main/binary-i386
cp -a Packages Packages.backup
gzip -9v Packages
mv Packages.backup Packages

cd ../../contrib/binary-i386
cp -a Packages Packages.backup
gzip -9v Packages
mv Packages.backup Packages

cd ../../main/debian-installer/binary-i386
cp -a Packages Packages.backup
gzip -9v Packages
mv Packages.backup Packages


6. Kopieren der Installationsimages

Im Prinzip ist der Debian-Mirror nun fertig, bis auf eine Kleinigkeit: Wenn Sie den Debian-Mirror nutzen wollen, um daraus DVD-Images für Debian Etch R3 zu generieren (siehe Modul 0304), müssen Sie noch ein paar Installationsimages kopieren, die benötigt werden, wenn Sie von den DVDs aus ein Debian installieren möchten. Gehen Sie wie folgt vor:

  • Wechseln in das Verzeichnis "/multi/mirroring/dvds/dvd1". Kopieren Sie das dortige Verzeichnis mit dem Namen "install.386" in das Verzeichnis "/multi/mirroring/debian-mirror".

Herzlichen Glückwunsch! Ihr Debian-Repository ist nun fertig!