Das CD-Repository und das Software-Repository sind zwei unterschiedliche Komponenten (sie haben sogar separate Launchpad-Seiten: CD-Spiegel und Archiv-Spiegel ). Daher sind das Spiegeln zwei unterschiedliche Aufgaben. Während die verschiedenen Varianten unterschiedliche Ordner im CD-Repository haben, teilen sie sich ein Software-Repository. Sie können also die Bilder selektiv nach Geschmack spiegeln, nicht jedoch die Software. Für das Software-Repository können Sie selektiv spiegeln, basierend auf:
- Freisetzung (
trusty
, precise
, etc.)
- Architektur (
amd64
, i386
, etc.)
- Pakettyp (binär [
deb
] vs Quelle [ deb-src
])
- Kanäle (
trusty
, trusty-updates
, trusty-backports
, etc.)
- Abschnitte (
main
, multiverse
, etc.)
Verwenden Sie zum Spiegeln des Software-Repositorys apt-mirror
.
apt-mirror
wird konfiguriert mit /etc/apt/mirror.list
. Es hat ein sehr ähnliches Format sources.list
. Die vom Paket installierte Konfigurationsdatei enthält einige auskommentierte Optionen, in denen die Standardeinstellungen aufgeführt sind. Wenn Sie möchten, können Sie diese auskommentieren und ändern.
Um ein Repository zu spiegeln, müssen Sie eine Zeile hinzufügen, mirror.list
wie Sie es für Folgendes tun würden sources.list
:
deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
Standardmäßig wird nur die Architektur des Hosts amd64
gespiegelt. Wenn Sie also ein 64-Bit-Ubuntu verwenden, wird nur gespiegelt. Sie müssen eine weitere Zeile des Formulars hinzufügen:
deb-i386 http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
Und für Quellpakete:
deb-src http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
Wenn Sie nach einem einigermaßen vollständigen Spiegel suchen, sind diese Zeilen das Minimum (ich würde auch den -updates
Kanal empfehlen ):
deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
deb http://us.archive.ubuntu.com/ubuntu trusty-security main multiverse restricted universe
deb-i386 http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe
deb-i386 http://us.archive.ubuntu.com/ubuntu trusty-security main multiverse restricted universe
Schließlich müssen Sie eine clean
Zeile hinzufügen , damit Pakete, die nicht mehr im Repository verfügbar sind, zum Entfernen gefiltert werden:
clean http://us.archive.ubuntu.com/ubuntu
Angenommen, Ihre Variablen sind also (die Standardeinstellungen):
set base_path /var/spool/apt-mirror
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set cleanscript $var_path/clean.sh
Dann:
- Das Repository wird gespiegelt auf
$mirror_path/parent-hostname/directory
(so /var/spool/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu
)
- Das
clean.sh
(das ist eine Reihe von rm
Befehlen zum Löschen veralteter Pakete und Verzeichnisse) wird sein /var/spool/apt-mirror/var/clean.sh
.
- Die Protokolle gehen zu
/var/spool/apt-mirror/var
.
Das apt-mirror
Paket installiert einen Cron-Job ( /etc/cron.d/apt-mirror
), den Sie bearbeiten sollten, um ihn zu aktivieren (indem Sie die Zeile mit dem Kommentar auskommentieren /usr/bin/apt-mirror
). Sie sollten auch einen Cron-Job zum Ausführen hinzufügen clean.sh
(ich führe ihn wöchentlich aus).
Natürlich sollten Sie durch einen http://us.archive.ubuntu.com./ubuntu
beliebigen Spiegel ersetzen, den Sie bevorzugen.