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

So richten Sie den lokalen APT-Repository-Server unter Ubuntu 20.04 ein

Einer der Gründe, warum Sie die Einrichtung eines lokalen apt-Repository-Servers in Betracht ziehen könnten, ist die Minimierung der erforderlichen Bandbreite, wenn Sie mehrere Instanzen von Ubuntu aktualisieren müssen. Nehmen Sie zum Beispiel eine Situation, in der Sie etwa 20 Server haben, die alle zweimal pro Woche aktualisiert werden müssen. Sie könnten eine Menge Bandbreite sparen, da Sie lediglich alle Ihre Systeme über ein LAN von Ihrem lokalen Repository-Server aktualisieren müssen.

In dieser Anleitung erfahren Sie, wie Sie einen lokalen apt-Repository-Server unter Ubuntu 20.04 LTS einrichten.

Voraussetzungen

  • Ubuntu 20.04 LTS-System
  • Apache-Webserver
  • Mindestens 170 GB freier Speicherplatz auf dem Dateisystem /var/www/html
  • Stabile Internetverbindung

Schritt 1) ​​Erstellen Sie einen lokalen Apache-Webserver

Melden Sie sich zunächst bei Ihrem Ubuntu 20.04 an und richten Sie den Apache-Webserver wie gezeigt ein.

$ sudo apt install -y apache2

Aktivieren Sie den Apache2 - Dienst , damit er während des Neustarts bestehen bleibt . Führen Sie folgenden Befehl aus

$ sudo systemctl enable apache2

Das standardmäßige Dokumentenstammverzeichnis von Apache befindet sich im Pfad /var/www/html. Wir werden später ein Repository-Verzeichnis in diesem Pfad erstellen, das die benötigten Pakete enthält.

Schritt 2) Erstellen Sie ein Paket-Repository-Verzeichnis

Als nächstes erstellen wir ein lokales Repository-Verzeichnis namens ubuntu im Pfad /var/www/html.

$ sudo mkdir -p /var/www/html/ubuntu

Legen Sie die erforderlichen Berechtigungen für das oben erstellte Verzeichnis fest.

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

Schritt 3) apt-mirror installieren

Der nächste Schritt ist die Installation des apt-mirror-Pakets. Nach der Installation dieses Pakets erhalten wir den apt-mirror-Befehl oder das Tool, das die entfernten Debian-Pakete herunterlädt und mit dem lokalen Repository auf unserem Server synchronisiert. Um es also zu installieren, führen Sie Folgendes aus

$ sudo apt update
$ sudo apt install -y apt-mirror

Schritt 4) Repositories zum Spiegeln oder Synchronisieren konfigurieren

Sobald apt-mirror installiert ist, wird seine Konfiguration „/etc/apt/mirrror.list“ automatisch erstellt. Diese Datei enthält eine Liste von Repositorys, die heruntergeladen oder im lokalen Ordner unseres Ubuntu-Servers synchronisiert werden. In unserem Fall ist der lokale Ordner „/var/www/html/ubuntu/“. Bevor Sie Änderungen an dieser Datei vornehmen, erstellen wir zuerst eine Sicherungskopie.

$ sudo cp /etc/apt/mirror.list /etc/apt/mirror.list-bak

Bearbeiten Sie nun die Datei mit dem vi-Editor und aktualisieren Sie base_path und Repositories wie unten gezeigt.

$ sudo vi /etc/apt/mirror.list

############# config ###################
set base_path    /var/www/html/ubuntu
set nthreads     20
set _tilde 0
############# end config ##############
deb http://archive.ubuntu.com/ubuntu focal main restricted universe \
 multiverse
deb http://archive.ubuntu.com/ubuntu focal-security main restricted \
universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-updates main restricted \
universe multiverse
clean http://archive.ubuntu.com/ubuntu

Speichern und beenden Sie die Datei.

Falls Sie vielleicht bemerkt haben, dass ich Ubuntu 20.04 LTS-Paket-Repositorys verwendet und die src-Paket-Repositorys auskommentiert habe, da ich nicht genügend Speicherplatz auf meinem System habe. Wenn Sie auch src-Pakete herunterladen oder synchronisieren möchten, kommentieren Sie die Zeilen aus, die mit „deb-src“ beginnen.

Schritt 5) Starten Sie die Spiegelung der Remote-Repositories in den lokalen Ordner

Bevor Sie mit dem Spiegeln oder Synchronisieren beginnen, kopieren Sie zuerst das Skript postmirror.sh in den Ordner /var/www/html/ubuntu/var mit dem folgenden cp-Befehl.

$ sudo mkdir -p /var/www/html/ubuntu/var
$ sudo cp /var/spool/apt-mirror/var/postmirror.sh /var/www/html/ubuntu/var

Jetzt ist es an der Zeit, die Pakete aus Remote-Repositories in den lokalen Ordner unseres Systems zu spiegeln. Unten ausführen:

$ sudo apt-mirror

Der obige Befehl kann auch im Hintergrund mit dem folgenden nohup-Befehl gestartet werden,

$ nohup sudo apt-mirror &

Verwenden Sie unten, um den Fortschritt der Spiegelung zu überwachen,

$ tail nohup.out

In Ubuntu 20.04 LTS synchronisiert apt-mirror das CNF-Verzeichnis und seine Dateien, daher müssen wir den Ordner und seine Dateien manuell herunterladen und kopieren. Um also das manuelle Herunterladen des CNF-Verzeichnisses zu vermeiden, erstellen Sie ein Shell-Skript mit dem folgenden Inhalt,

$ vi cnf.sh
#!/bin/bash
for p in "${1:-focal}"{,-{security,updates}}\
/{main,restricted,universe,multiverse};do >&2 echo "${p}"
wget -q -c -r -np -R "index.html*"\
 "http://archive.ubuntu.com/ubuntu/dists/${p}/cnf/Commands-amd64.xz"
wget -q -c -r -np -R "index.html*"\
 "http://archive.ubuntu.com/ubuntu/dists/${p}/cnf/Commands-i386.xz"
done

Speichern und schließen Sie das Skript.

Führen Sie das Skript aus, um das CNF-Verzeichnis und seine Dateien herunterzuladen.

$ chmod +x cnf.sh
$ bash  cnf.sh

Dieses Skript erstellt einen Ordner mit dem Namen „archive.ubuntu.com“ im aktuellen Arbeitsverzeichnis. Kopieren Sie diesen Ordner in den Spiegelordner,

$ sudo cp -av archive.ubuntu.com  /var/www/html/ubuntu/mirror/

Hinweis: Wenn wir das cnf-Verzeichnis nicht synchronisieren, erhalten wir auf Client-Rechnern folgende Fehler. Um diese Fehler zu beheben, müssen wir das obige Skript erstellen und ausführen.

E: Failed to fetch http://x.x.x.x/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/\
focal/restricted/cnf/Commands-amd64  404  Not Found [IP:169.144.104.219 80]
E: Failed to fetch http://x.x.x.x/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/\
focal-updates/main/cnf/Commands-amd64  404  Not Found [IP:169.144.104.219 80]
E: Failed to fetch http://x.x.x.x/ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/\
focal-security/main/cnf/Commands-amd64  404  Not Found [IP:169.144.104.219 80]
abzurufen

Automatische Repositories-Synchronisierung planen

Konfigurieren Sie einen Cron-Job, um unsere lokalen apt-Repositories automatisch zu aktualisieren. Es wird empfohlen, diesen Cronjob täglich nachts einzurichten.

Führen Sie „crontab -e“ aus und fügen Sie den folgenden Befehl hinzu, der täglich um 1:00 Uhr nachts ausgeführt werden soll.

$ sudo crontab -e

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

Speichern und schließen.

Hinweis:Falls die Firewall auf Ubuntu Server läuft, erlauben Sie Port 80 mit dem folgenden Befehl

$ sudo ufw allow 80

Schritt 6) Zugriff auf das lokale APT-Repository über einen Webbrowser

Um über einen Webbrowser auf unser lokal konfiguriertes apt-Repository zuzugreifen, geben Sie die folgende URL ein:

http:///ubuntu/mirror/archive.ubuntu.com/ubuntu/dists/

Schritt 7) Konfigurieren Sie den Ubuntu 20.04-Client für die Verwendung des lokalen apt-Repository-Servers

Um zu testen und zu überprüfen, ob unser apt-Repository-Server gut funktioniert oder nicht, habe ich ein anderes Ubuntu 20.04 lts-System, auf dem ich die Datei /etc/apt/sources.list aktualisiere, sodass der apt-Befehl auf lokale Repositorys statt auf Remote zeigt.

Melden Sie sich also beim System an und ändern Sie Folgendes in der sources.list

http://archive.ubuntu.com/ubuntu
to
http://169.144.104.219/ubuntu/mirror/archive.ubuntu.com/ubuntu

Hier ist „169.144.104.219“ die IP-Adresse meines apt-Repository-Servers, ersetzen Sie diese IP-Adresse, die zu Ihrer Umgebung passt.

Stellen Sie außerdem sicher, dass Sie alle anderen Repositories auskommentieren, die nicht auf unserem apt-Repository-Server gespiegelt sind. Nachdem Sie also die Änderungen in der Datei sources.list vorgenommen haben, würde sie wie folgt aussehen:

Führen Sie jetzt den Befehl „apt update“ aus, um zu überprüfen, ob der Clientcomputer Updates von unserem lokalen apt-Repository-Server erhält,

$ sudo apt update

Die perfekte, obige Ausgabe bestätigt, dass der Client-Computer erfolgreich eine Verbindung zu unserem Repository herstellen kann, um die Pakete und Updates abzurufen. Das ist alles aus diesem Artikel. Ich hoffe, diese Anleitung hilft Ihnen beim Einrichten eines lokalen apt-Repository-Servers auf einem Ubuntu 20.04-System.

Auch lesen :14 nützliche „ls“-Befehlsbeispiele in Linux


Ubuntu
  1. Einrichtung des WebDAV-Servers unter Ubuntu Linux

  2. So richten Sie den Rsyslog-Server unter Ubuntu 18.04 LTS ein

  3. 4 Schritte zum Einrichten eines lokalen Repositorys in Ubuntu mit APT-Mirror

  4. So richten Sie einen NTP-Server unter Ubuntu und LinuxMint ein

  5. Rsyslog-Server auf Ubuntu 20.04 einrichten - Wie geht das?

So richten Sie den Mosquitto-MQTT-Server unter Ubuntu 16.04 ein

So richten Sie den Minecraft-Multiplayer-Server unter Ubuntu 16.04 ein

So richten Sie OpenVPN auf Ubuntu Server ein

So richten Sie den Git-Server unter Ubuntu 20.04 ein

So richten Sie den Rsyslog-Server unter Ubuntu ein

So richten Sie einen DHCP-Server unter Ubuntu ein