apt-mirror
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Das Programm apt-mirror 🇬🇧 lädt zu Beginn die gesamte Paketquelle herunter, egal welches Paket benötigt wird. Apt-mirror eignet sich für Situationen, in der eine Paketquelle komplett gespiegelt werden soll. Das ist oft nur in größeren Netzen praktisch, wenn man auf vielen Rechnern Ubuntu installiert wird, ohne genau zu wissen, was alles benötigt wird und evtl. zeitweise keine oder nur wenig Bandbreite zur Verfügung hat.
Man sollte beachten, dass man für die Einrichtung von apt-mirror je nach Größe der Paketquelle entsprechend Platz auf der Festplatte benötigt. Für die offiziellen Ubuntu-Paketquellen benötigt man, wenn man Pakete (ohne Quellcode-Pakete) für alle Plattformen (i386, AMD64) benötigt, etwa 80 GiB. Bei einer Plattform sind es etwa 60 GiB.
Ähnliche Programme unter: Lokale Paketquellen
Tabelle mit Größenangaben in GiB¶
Vor dem Herunterladen sollte man sich Gedanken machen, ob die Daten auf eine separate Partition auslagert werden sollten, um einem Engpass beim Plattenplatz zuvorzukommen bzw. den Fragmentierungsgrad gering zu halten. Die folgende Tabelle bezieht sich auf Ubuntu 12.10 ohne Quellcode-Pakete; Stand Januar 2013; Werte gerundet in GiB.
Archiv | i386 | AMD64 | i386+AMD64 |
http://archive.ubuntu.com/ubuntu quantal main restricted universe multiverse | 47 | 48 | 66 |
http://archive.ubuntu.com/ubuntu quantal-security main restricted universe multiverse | 2 | 2 | 3 |
http://archive.ubuntu.com/ubuntu quantal-updates main restricted universe multiverse | 6 | 6 | 9 |
http://archive.ubuntu.com/ubuntu quantal-proposed main restricted universe multiverse | < 1 | < 1 | 2 |
http://archive.ubuntu.com/ubuntu quantal-backports main restricted universe multiverse | < 1 | < 1 | < 1 |
Summiert | 56 | 57 | 82 |
Hinweis:
Da die verschiedenen Architekturen (i386, AMD64, armel, armhf...) sich die sogenannte "all-Paketarchitektur" teilen, müssen diese nicht extra für jede Architektur heruntergeladen werden. Das erklärt die Diskrepanz bei der Summierung der einzelnen Architekturen.
Installation¶
Folgendes Paket muss installiert [1] werden:
apt-mirror (universe [2] )
Befehl zum Installieren der Pakete:
sudo apt-get install apt-mirror
Oder mit apturl installieren, Link: apt://apt-mirror
Konfiguration¶
Bei der Installation wird automatisch die Datei mirror.list im Ordner /etc/apt/ mit folgendem Inhalt angelegt:
Grundeinstellungen¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # apt-mirror configuration file ############# config ################## # # 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 # set defaultarch <running host architecture> # set postmirror_script $var_path/postmirror.sh # set run_postmirror 0 set nthreads 20 set _tilde 0 # ############# end config ############## |
Zeilen, die mit #
beginnen, sind Kommentare. Hier spiegeln sie die Standart-Einstellungen wieder. Sollen die Pakete zum Beispiel nicht im Verzeichnis /var/spool/apt-mirror liegen, kann per Anpassung des base_path
auch ein anderes Verzeichnis gewählt werden. Damit diese gegenüber dem Standard veränderte Einstellung wirksam wird, muss die Zeile einkommentiert werden, indem das Zeichen #
am Zeilenanfang entfernt wird. Dasselbe muss dann auch für die folgenden anderen drei Zeilen mit den Unterverzeichnissen mirror, skel und var erfolgen, damit das Skript diese benötigten Unterverzeichnisse dort anlegen kann.
Paketquellen¶
1 2 3 4 5 6 7 8 9 10 11 12 | ####Sources deb http://archive.ubuntu.com/ubuntu quantal main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu quantal-security main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu quantal-updates main restricted universe multiverse #deb http://archive.ubuntu.com/ubuntu quantal-proposed main restricted universe multiverse #deb http://archive.ubuntu.com/ubuntu quantal-backports main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu quantal main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu quantal-security main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu quantal-updates main restricted universe multiverse #deb-src http://archive.ubuntu.com/ubuntu quantal-proposed main restricted universe multiverse #deb-src http://archive.ubuntu.com/ubuntu quantal-backports main restricted universe multiverse |
In diesem Beispiel sind nach der Installation bereits die aktuellen Paketquellen (12.10) eingetragen, folglich wird der Server später nur Quantal-Pakete bieten.
Architekturen¶
Will man mehrere Architekturen spiegeln, muss man die Paketquellen in der Datei /etc/apt/mirror.list etwas anpassen; aus
1 | deb http://de.archive.ubuntu.com/ubuntu/ quantal main restricted |
wird, wenn man z.B. amd64 und i386 spiegeln möchte:
1 2 | deb-i386 http://de.archive.ubuntu.com/ubuntu/ quantal main restricted deb-amd64 http://de.archive.ubuntu.com/ubuntu/ quantal main restricted |
Downloadgeschwindigkeit begrenzen¶
Möchte man nicht, dass apt-mirror die gesamte Downloadbandbreite des Internetanschlusses belegt, fügt man folgende Zeile in die Datei /etc/apt/mirror.list ein:
1 | set limit_rate 50K |
Zu beachten ist, dass der Parameter pro Downloadslot gilt; d.h.:
1 2 | set limit_rate 50K set nthreads 20 |
führt dazu, dass 20 Downloads zu 50K = 1000 KiB / Sekunde heruntergeladen werden.
Nachbehandlung¶
1 | clean http://de.archive.ubuntu.com/ubuntu/ |
Das Clean-Skript wird automatisch ausgeführt. Möchte man dieses unterbinden, muss die entsprechende Zeile in /etc/apt/mirror.list durch ein # auskommentiert werden.
Start von apt-mirror¶
Achtung!
Durch apt-mirror entsteht beim ersten Start ein enormes Datenvolumen! Ubuntu 12.10 belegt zur Zeit ca. 60 GiB / Architektur OHNE Quellcode-Pakete!
Der Start erfolgt in einem Terminal durch Eingabe von:
sudo apt-mirror
Downloading xyz index files using 20 threads... Begin time: Thu Jan 10 17:46:20 2013 [20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]... End time: Thu Jan 10 17:46:51 2013 Proceed indexes: [SSSPPP] xyz bytes will be downloaded into archive. Downloading xyz archive files using 20 threads... Begin time: Thu Jan 10 17:46:57 2013 [20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]... End time: Thu Jan 10 23:05:25 2013 yxz bytes inxyz files and xyz directories can be freed.
apt-mirror per Cron-Job¶
Durch die Installation wird automatisch auch ein Cron-Job unter /etc/cron.d namens apt-mirror angelegt. Dieser ist aber nicht automatisch aktiv, da die entsprechende Konfigurationszeile auskommentiert ist.
Nutzbarmachen¶
Um den Spiegelserver im Netzwerk verfügbar zu machen, muss dieser angeboten werden, dies erfolgt per Webserver (beispielsweise Apache). Normalerweise liegen dessen Dateien in /var/www/, also nicht dort, wo die gespiegelten Pakete liegen, die Verbindung wird per ln -s
hergestellt.
sudo ln -s /var/spool/apt-mirror/mirror/de.archive.ubuntu.com/ubuntu /var/www/html/ubuntu
Hinweis → falls die Daten von einem anderen Server gespiegelt wurden, dann muss statt de.archive.ubuntu.com
zum Beispiel archive.ubuntu.com
gewählt werden.
Dadurch ändert sich der Befehl wie folgt:
sudo ln -s /var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu /var/www/html/ubuntu
Benutzung¶
Auf den Clientsystemen muss jetzt nur noch der neue Server eingetragen werden [2].
1 | deb http://<IP des Servers>/ubuntu quantal main restricted |
Die Paketquellen jetzt neu einlesen und der Spiegelserver steht zur Verfügung.
Hinweis für die Benutzer eines Proxys¶
Wenn man einen Proxy (z.B. Squid) benutzt, so ist der Aufruf von apt-mirror folgendermaßen zu ergänzen (gilt auch analog für /etc/cron.d/apt-mirror):
1 | export http_proxy=http://[<Proxy-user>:<Proxy-Passwort>@]<IP-Adresse-Proxy>:<Proxy-Port>/ && apt-mirror |
Links¶
apt-mirror Projektseite
How To Create A Local Debian/Ubuntu Mirror With apt-mirror 🇬🇧
blog.root1024.ch - Eigenen Debian Spiegelserver (Mirror) einrichten 🇩🇪