Start   Impressum   Lizenz         online lesen   Download         Online-Shop   Jumping Blue Turtle

Debian für Unternehmer - Debian-Know-how

0302: Einen eigenen Debian-Mirror betreiben

Ich werde Ihnen zeigen, wie Sie einen Debian-Mirror betreiben können, der Folgendes enthält:

  • ein vollständiges Debian Squeeze i386
  • ein vollständiges Debian Squeeze amd64
  • ein unvollständiges Debian Wheezy i386
  • ein unvollständiges Debian Wheezy amd64
  • ein unvollständiges Debian Sid i386
  • ein unvollständiges Debian Sid amd64

Vollständig heißt, dass auf Basis dieses Debian-Mirrors beliebige Installationsmedien (ISO-Images) generiert werden können, ohne dazu Internet zu benötigen.

Theoretisch können mit diesem Mirror sogar "network install"-CD-Images offline generiert werden. Allerdings ist das ineffizient. Was die "network install"-CD-Images betrifft, da empfehle ich Ihnen, wenn Sie einen Internet-Anschluss haben, sich diese trotzdem per "wget" direkt zu besorgen, denn so können Sie mit Sicherheit sehr viel Zeit sparen.

1. Schreiben der nötigen Shell-Skripte

Um einen vollständigen Debian-Mirror zu erhalten, benötigen wir zwei Befehle:

  • debmirror
  • rsync

Der Befehl "debmirror" erledigt zwar einen Großteil der Arbeit, aber bei isolierter Anwendung produziert er nur einen Mirror mit Lücken. Das, was fehlt, muss mit "rsync" nachgeladen werden.

Aufgrund der hohen Anforderungen wird das Ganze nun etwas komplizierter, so dass Shell-Skripte geschrieben werden müssen. Bereiten Sie das Mirror-Verzeichnis nun etwas vor:

cd 01_debian_squeeze_wheezy_sid

mkdir mirror
mkdir skripte

>1_run_debmirror.sh
>2_run_rsync.sh
chmod 755 1_run_debmirror.sh
chmod 755 2_run_rsync.sh

cd skripte
>1_run_debmirror
>2_run_rsync

Die Skripte zum Pflegen des Mirrors benötigen nun Inhalte. Tragen Sie sie ein und speichern Sie ab.

  • 1_run_debmirror.sh

    Dieses Skript öffnet ein xterm-Fenster, innerhalb dessen sich alles Weitere abspielen wird:

    #!/bin/bash
    
    xterm -sl 10000 -geometry 208x71+0+0 -sb -fg rgb:C0/FF/FF -bg rgb:50/60/40 \
    -e "\
    bash skripte/1_run_debmirror;\
    bash"&
    
  • 2_run_rsync.sh

    Dieses Skript öffnet ein xterm-Fenster, innerhalb dessen sich alles Weitere abspielen wird:

    #!/bin/bash
    
    xterm -sl 10000 -geometry 208x71+0+0 -sb -fg rgb:C0/FF/FF -bg rgb:50/60/40 \
    -e "\
    bash skripte/2_run_rsync;\
    bash"&
    
  • skripte/1_run_debmirror

    Dieses Skript räumt ein paar Verzeichnisse aus der Schusslinie, damit sie beim Aufräumen nicht automatisch gelöscht werden, aktualisiert dann den verbliebenen Teil des Debian-Mirrors und kopiert am Ende die gesicherten Verzeichnisse wieder zurück:

    #!/usr/bin/bash
    
    # Aufgabe dieses Skriptes:
    # offizielle Pakete für "stable", "testing" und "unstable" aktualisieren
    
    mv mirror/dists/squeeze/main/installer-* .
    mv mirror/debian-cd .
    
    debmirror\
     -v\
     -d squeeze,wheezy,sid\
     --ignore-release-gpg\
     --nosource\
     --arch=i386,amd64\
     mirror
    
    mv debian-cd mirror
    mv installer-* mirror/dists/squeeze/main
    
  • skripte/2_run_rsync

    Dieses Skript aktualisiert die Verzeichnisse, die der "debmirror"-Befehl im ersten Skript ignoriert, und die das erste Skript dementsprechend zur Seite räumt, damit "debmirror" sie während seiner Arbeit nicht kaputt macht:

    #!/usr/bin/bash
    
    # Aufgabe dieses Skriptes:
    # 1. Linux-Images für "stable" aktualisieren:
    # - installer-i386
    # - installer-amd64
    # 2. jigdo-Daten der Installationsmedien für "stable" aktualisieren
    # - i386/jigdo-cd
    # - amd64/jigdo-cd
    # - i386/jigdo-dvd
    # - amd64/jigdo-dvd
    # - i386/jigdo-bd
    # - amd64/jigdo-bd
    # - i386/jigdo-dlbd
    # - amd64/jigdo-dlbd
    
    rsync\
     -alvR --delete\
     rsync://ftp.de.debian.org/debian/dists/squeeze/main/installer-i386/\
     mirror/
    
    rsync\
     -alvR --delete\
     rsync://ftp.de.debian.org/debian/dists/squeeze/main/installer-amd64/\
     mirror/
    
    
    
    rsync\
     -alvR --delete --no-implied-dirs\
     rsync://cdimage.debian.org/debian-cd/current/i386/jigdo-cd/\
     mirror/debian-cd
    
    rsync\
     -alvR --delete --no-implied-dirs\
     rsync://cdimage.debian.org/debian-cd/current/amd64/jigdo-cd/\
     mirror/debian-cd
    
    rsync\
     -alvR --delete --no-implied-dirs\
     rsync://cdimage.debian.org/debian-cd/current/i386/jigdo-dvd/\
     mirror/debian-cd
    
    rsync\
     -alvR --delete --no-implied-dirs\
     rsync://cdimage.debian.org/debian-cd/current/amd64/jigdo-dvd/\
     mirror/debian-cd
    
    rsync\
     -alvR --delete --no-implied-dirs\
     rsync://cdimage.debian.org/debian-cd/current/i386/jigdo-bd/\
     mirror/debian-cd
    
    rsync\
     -alvR --delete --no-implied-dirs\
     rsync://cdimage.debian.org/debian-cd/current/amd64/jigdo-bd/\
     mirror/debian-cd
    
    rsync\
     -alvR --delete --no-implied-dirs\
     rsync://cdimage.debian.org/debian-cd/current/i386/jigdo-dlbd/\
     mirror/debian-cd
    
    rsync\
     -alvR --delete --no-implied-dirs\
     rsync://cdimage.debian.org/debian-cd/current/amd64/jigdo-dlbd/\
     mirror/debian-cd
    

2. Einen Debian-Mirror neu anlegen

Um einen noch nicht existierenden Debian-Mirror neu anzulegen, führen Sie zuerst das zweite Skript aus. Es legt die Verzeichnisse an, die das erste Skript dann zur Seite räumen wird, wenn es selbst aktiv wird.

Nach ein paar Stunden hat das zweite Skript die entsprechenden Inhalte auf Festplatte geladen.

Führen Sie nun das erste Skript aus. Ein paar Tage oder Wochen später wird es den Hauptteil des Debian-Mirrors aus die Festplatte geladen haben.

Sie können das erste Skript auch während der Arbeit abbrechen, wenn Sie zwischendurch den Rechner mal ausschalten wollen. Machen Sie das aber möglichst nicht während der ersten 20 Minuten, wenn es die Paketinformationen sammelt, sondern tun Sie das besser dann, wenn es die Pakete (also den Hauptteil der Daten) herunterlädt. Wenn Sie das erste Skript erneut starten, lädt es zunächst erneut die Paketinformationen herunter, um dann anschließend irgendwann dort mit dem Herunterladen der Pakete weiterzumachen, wo es beim letzten Mal von Ihnen unterbrochen wurde.

Auf Kommandozeilen-Ebene geben Sie beim Neu-Anlegen eines Debian-Mirrors (in dieser Reihenfolge) die folgenden Befehle ein:

./2_run_rsync.sh
./1_run_debmirror.sh

Da die Skripte eigene xterm-Fenster aufmachen, können Sie sie bequem vom Midnight-Commander aus starten. Die Skripte geben den Midnight-Commander frei, und Sie können den Midnight-Commander verwenden, um den Ergebnissen beim Wachsen zuzusehen.

3. Einen vorhandenen Debian-Mirror aktualisieren

Um einen vorhandenen Debian-Mirror zu aktualisieren, empfiehlt es sich, zuerst das erste Skript auszuführen, weil das in der Regel die meiste Zeit verbrauchen wird. Nach getaner Arbeit rufen Sie später das zweite Skript auf, das in der Regel schon nach einer Minute fertig sein wird, falls nicht gerade neue Debian-Releases zum Download bereitstehen.

Ihre Eingaben auf Kommandozeilen-Ebene:

./1_run_debmirror.sh
./2_run_rsync.sh