GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So erstellen Sie einen Ubuntu-Repository-Server

Diese Anleitung zeigt, wie man einen lokalen Repository-Server basierend auf Ubuntu Bionic konfiguriert, aber er kann an eine frühere Version von Ubuntu oder sogar an jede Distribution angepasst werden, die Aptitude als Hauptpaketverwaltungssystem verwendet, wie Debian oder Mint. Normalerweise möchten Sie möglicherweise ein lokales Repository einrichten, um Internetbandbreite zu sparen.

In diesem Tutorial lernen Sie:

  • So installieren Sie die erforderliche Software auf dem Server
  • So wählen Sie aus, welche Repositories auf dem Server gespiegelt werden sollen
  • So spiegeln Sie ausgewählte Repositories lokal auf dem Server
  • So konfigurieren Sie den Linux-Client für die Verwendung des lokalen Repository-Servers

Wie oben erwähnt, ziehen wir für dieses Tutorial keinen öffentlichen oder Länder-Mirror in Betracht, aber wenn Sie es implementieren möchten, bedenken Sie Folgendes:

  • Ihre Netzwerkbandbreite wird sehr wichtig
  • Sie müssen das Repository in der Ubuntu-Spiegelliste registrieren
  • Du musst den Mirror mindestens viermal am Tag synchronisieren
  • Da Sie alle vorherigen Versionen spiegeln müssen, benötigen Sie möglicherweise 2 TB oder mehr Speicherplatz


Aktualisieren der Paketliste aus den lokalen Repos.

Softwareanforderungen und verwendete Konventionen

Softwareanforderungen und Linux-Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder verwendete Softwareversion
System Ubuntu 18.04.2 (Bionic Beaver) LTS
Software Apache http 2.x, apt-mirror
Andere Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl, Mindestens 200 GB Speicherplatz für das Repository
Konventionen # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl
$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden

Wie man Schritt für Schritt einen Ubuntu-Repository-Server erstellt

  1. Installieren der erforderlichen Software auf dem Server.

    Als ersten Schritt müssen wir den Apache HTTP Server installieren, der sich unter dem Paket namens apache2 befindet , mit dem Befehl:

    $ sudo apt install apache2

    Installieren von Apache HTTP

    Stellen Sie dann sicher, dass der Dienst beim Start ausgeführt wird:

    $ sudo systemctl enable apache2
    

    Wenn alles in Ordnung ist, wechseln wir in das Standard-DocumentRoot-Verzeichnis (das /var/www/html ist).
    Dort können wir dann das Unterverzeichnis /var/www/html/ubuntu und ordnen Sie sie dem entsprechenden Besitzer zu, in diesem Fall www-data (der Benutzer, unter dem Apache HTTP läuft).

    $ sudo mkdir -p /var/www/html/ubuntu
    $ sudo chown www-data:www-data /var/www/html/ubuntu
    

    Es wird dringend empfohlen, dass sich das DocumentRoot oder zumindest der Ubuntu-Unterordner auf einem Dateisystem befindet, das zu einem logischen Volume gehört; Auf diese Weise können wir es ohne Ausfallzeit online vergrößern.
    Zum Zeitpunkt meiner Tests sind 171,5 GiB das absolute Minimum an Speicherplatz, der benötigt wird, wenn auch die src-Pakete gespiegelt werden; Um für die Zukunft zu planen, wird daher empfohlen, mindestens 300 GiB Festplattenspeicher zu haben.

    Dies ist hauptsächlich eine Schätzung, wenn Sie sich für eine Version von Ubuntu entscheiden. Wenn Pakete für verschiedene Versionen gespiegelt werden müssen, erhöht sich der Platzbedarf erheblich.

  2. Das Hauptwerkzeug, mit dem wir ein lokales Repository erstellen können, ist apt-mirror , um es zu installieren, führen Sie Folgendes aus:

    $ sudo apt install apt-mirror
    

    Falls das Paket nicht gefunden wird, stellen Sie sicher, dass Sie zuerst die Paketliste aktualisieren mit:

    $ sudo apt update
    
  3. Auswählen, welche Repositories auf dem Server gespiegelt werden sollen.

    Sobald apt-mirror installiert ist, können wir eine Sicherungskopie seiner Konfigurationsdatei /etc/apt/mirror.list erstellen , danach vergewissern Sie sich, dass die Zeile mit der Option set base_path zeigt auf den richtigen Pfad für unser Repository (standardmäßig /var/spool/apt-mirror ).

    $ sudo cp /etc/apt/mirror.list /etc/apt/mirror.list.org
    

    Sie können also jetzt Ihren bevorzugten Editor (z. B. vi oder nano) verwenden, um die Option base_path in der Datei mirror.list in /var/www/html/ubuntu zu ändern; Sie müssen auch angeben, dass Sie die Repos der bionischen Distribution spiegeln (entsprechend ändern, wenn Sie eine andere Ubuntu-Version haben), immer in der Konfigurationsdatei mirror.list.

    Konfigurationsdatei mirror.list

    Falls Sie nicht viel Speicherplatz auf der Festplatte haben, können Sie src-Pakete nicht spiegeln; Sie werden also die entsprechenden Zeilen auskommentieren:

    Konfigurationsdatei mirror.list

    Als nächstes kopieren Sie ein wichtiges Skript nach /var/www/html/ubuntu/var/

    $ sudo mkdir -p /var/www/html/ubuntu/var 
    $ sudo cp /var/spool/apt-mirror/var/postmirror.sh /var/www/html/ubuntu/var/
    
  4. Spiegeln der ausgewählten Repositories lokal auf dem Server.

    Jetzt ist es an der Zeit, einen lokalen Spiegel zu erstellen, denken Sie daran, dass eine anfängliche Spiegelung (von archive.ubuntu.com nur für dieses Tutorial) kann viel Zeit in Anspruch nehmen und Ihre Verbindung verlangsamen, daher würde ich vorschlagen, dass Sie diesen Job nachts starten.
    Um mit der Spiegelung der Remote-Repos-Pakete auf den lokalen Server zu beginnen, führen Sie einfach den folgenden Befehl aus:

    $ sudo apt-mirror
    

    Bei Bedarf können Sie diesen Vorgang unterbrechen (mit der klassischen STRG+C-Kombination) und später neu starten; es wird dort fortgesetzt, wo es verlassen wurde.

    Irgendwann kommen wir an den Punkt, an dem die Skripte clean.sh und postmirror.sh ausgeführt werden, das ist ein Zeichen dafür, dass der Spiegelungsprozess abgeschlossen ist.

    Ende des Spiegelungsvorgangs.

  5. Konfigurieren des automatischen Synchronisierungsprozesses mithilfe des Cron-Schedulers.

    Nachdem unsere erste Synchronisierung abgeschlossen ist, müssen wir einen Cron-Job erstellen, um sicherzustellen, dass wir automatisch ein aktuelles lokales Repository haben. Zum Beispiel möchten wir, dass diese Aufgabe jede Nacht um 2:00 Uhr ausgeführt wird und daher:

    $ sudo crontab -e
    

    Dann bearbeiten wir die Crontab, um die folgende Zeile hinzuzufügen:

    00 	02 	*	 *	 *	/usr/bin/apt-mirror
    

    Und speichern und beenden (mit vi, nano oder dem eingestellten Editor).

Konfigurieren des Linux-Clients zur Verwendung des lokalen Repository-Servers

  1. Konfigurieren der lokalen Repository-Liste.

    In jedem Client, der unser lokales Repository verwenden soll, müssen wir die Konfigurationsdatei /etc/apt/sources.list bearbeiten Angeben unseres lokalen Repos und Deaktivieren eines entfernten Repos.

    In unserem Fall wurden die folgenden Repositories heruntergeladen:

    Lokale Repositories des Servers

    HINWEIS

    Es wird empfohlen, jede Zeile in der /etc/apt/sources.list zu kommentieren Datei, die auf Repositories verweist, die nicht auf unserem Server gespiegelt sind, zum Beispiel in diesem Fall jede Zeile, die mit deb-src beginnt und enthält bionic-backports wurden kommentiert.

    Wenn Sie dies nicht tun, erhalten Sie möglicherweise die Fehlermeldung
    Release file has not found beim Ausführen des Befehls apt update auf dem Client.

    Als erstes ersetzen wir jeden String archive.ubuntu.com durch unsere lokale Spiegel-IP, in diesem Fall 10.0.0.42. Natürlich kann Ihre lokale IP-Adresse anders sein.

    $ sudo  sed -i.bak0 "s/archive\.ubuntu\.com/10\.0\.0\.\42/g" /etc/apt/sources.list
    

    Dieser Befehl erstellt die Sicherungsdatei /etc/apt/sources.list.bak0 und ersetzen Sie alle archive.ubuntu.com Zeichenfolge mit 10.0.0.42 .

    Eine weitere Anpassung läuft wieder sed auf diese Weise ab:

    $ sudo  sed -i.bak1 "s/ubuntu/ubuntu\/mirror\/archive\.ubuntu\.com\/ubuntu/g" \ /etc/apt/sources.list
    

    Dies ist notwendig, da apt-mirror den Pfad mirror/archive.ubuntu.com/ubuntu anhängt zu unserem Basisweg. Hier wird eine weitere Sicherungsdatei erstellt

    /etc/apt/sources.list.bak1.
    

    Für die Zwecke dieses Tutorials spiegeln wir nur Pakete oder Repositories von archive.ubuntu.com; Natürlich können Sie andere inoffizielle Repositories in der Datei mirror.list auf dem Server hinzufügen, aber dann müssen Sie apt-mirror dort erneut ausführen und auf jedem Client die Datei sources.list entsprechend bearbeiten.

  2. Lokalen Repository-Index aktualisieren.
    Jetzt müssen Sie sicherstellen, dass der Port 80 nicht von der Client-Firewall blockiert wird, und dann können Sie Folgendes ausführen:

    $ sudo apt update
    

    Und schon kann es losgehen.

    Aktualisieren der Paketliste aus den lokalen Repos.

Schlussfolgerung

Das Einrichten eines lokalen Repositorys in Ubuntu ist nicht schwierig, wie es scheinen mag, und es kann sich als nützlich erweisen, vorausgesetzt, Sie verfügen über ausreichende lokale Netzwerk- und Festplattenressourcen.


Ubuntu
  1. So installieren Sie PostgreSQL unter Ubuntu 18.04

  2. So erstellen Sie einen Sudo-Benutzer unter Ubuntu

  3. So installieren Sie MySQL unter Ubuntu 18.04

  4. So erstellen Sie eine Sicherung

  5. So installieren Sie Zimbra 8.6 auf einem Ubuntu 14.04-Server

So konfigurieren Sie den Bacula-Server unter Ubuntu 16.04

So installieren Sie den OpenSIPS-Server unter Ubuntu 15.04

So erstellen Sie einen umfassenden Mailserver unter Ubuntu

So finden Sie den besten Ubuntu APT-Repository-Spiegel

So installieren Sie Plex Media Server auf Ubuntu 16.04 Server/Desktop

So erstellen Sie einen Minecraft-Server unter Ubuntu 20.04