Es gibt verschiedene Gründe, warum Sie Ihr eigenes lokales Repository erstellen möchten. Es ist eine großartige Möglichkeit, ein lokales Spiegel-Repository zum Zwischenspeichern häufig verwendeter Pakete zu erstellen, die von vielen Computern verwendet werden, um Bandbreitennutzung zu sparen, oder Sie haben möglicherweise ein paar modifizierte Pakete, die Sie dem Entwicklerteam intern zur Verfügung stellen möchten.
In diesem Tutorial zeigen wir Ihnen, wie Sie ganz einfach ein lokales Debian-Paket-Repository erstellen , kompatibel mit Debian- und Ubuntu-Versionen.
Schritt 1:Erforderliches Paket installieren
Auf Debian-basierten Systemen werden alle Repositories von den APT-Dienstprogrammen (apt, apt-get, apt-cache usw.) verwaltet. Das Paket dpkg-dev wird für die Erstellung eines lokalen Repositorys benötigt, das mit APT kompatibel ist.
Aktualisieren Sie zuerst die Systempakete mit dem folgenden Befehl:
$ sudo apt update && sudo apt upgrade
Als nächstes installieren Sie dpkg-dev Paket, indem Sie Folgendes eingeben:
$ sudo apt-get install dpkg-dev
Fahren Sie nach Abschluss der Paketinstallation mit der Erstellung eines Verzeichnisses für Ihre Paketdateien fort.
Schritt 2:Erstellen Sie ein Verzeichnis für das lokale Repository
Erstellen Sie ein Verzeichnis, um Binärpakete zu speichern. Für dieses Beispiel verwenden wir /opt/local/debs, aber Sie können jedes beliebige Verzeichnis verwenden.
$ sudo mkdir -p /opt/local/debs
Als nächstes wechseln Sie das Verzeichnis:
$ cd /opt/local/debs
Schritt 3:Pakete zum lokalen Repo-Verzeichnis hinzufügen
Für dieses Tutorial laden wir das Chrome-Browser-Paket in unser lokales Repository herunter, da es nicht im Standard-Ubuntu-Repository zu finden ist:
$ sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
Sie können in diesem Schritt beliebig viele Pakete kopieren oder herunterladen.
Schritt 4:Erforderliches Repository-Paket-Meta für APT erstellen
Dazu müssen wir mehrere dpkg-scanpackages-Befehle ausführen. Ich wechsle zum Root-Benutzerkonto, da ich das /opt/local-Verzeichnis verwende, um die Verwendung von sudo zu überspringen.
$ sudo su
Zuerst erstellen wir eine Release-Datei, indem wir den folgenden Befehl ausführen:
# dpkg-scanpackages . /dev/null > Release
Abhängig davon, wie viele Pakete Sie dem lokalen Repository hinzugefügt haben, sollten Sie eine ähnliche Ausgabe erhalten:
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning: google-chrome-stable
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.
Scannen Sie als Nächstes alle deb-Dateien im Verzeichnis und erstellen Sie eine entsprechende Packages.gz-Datei
# dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
Ausgabe:
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning: google-chrome-stable
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.
Beachten Sie, dass Sie diese Befehle jedes Mal ausführen müssen, wenn Sie Ihrem lokalen Repository-Verzeichnis neue Deb-Pakete hinzufügen. Sie könnten auch ein einfaches Bash-Skript erstellen und es ausführen, wenn Sie neue Pakete hinzufügen.
Um die lokale Repo-Verzeichnisstruktur aufzulisten, führen Sie den Befehl ls aus:
$ ls -l
Ausgabe:
-rw-r--r-- 1 root root 83325072 May 8 02:29 google-chrome-stable_current_amd64.deb
-rw-r--r-- 1 root root 761 May 17 20:44 Packages.gz
-rw-r--r-- 1 root root 1321 May 17 20:39 Release
Schritt 5:Unser lokales Repository zu Sources.list hinzufügen
Der letzte Schritt besteht darin, die Datei sources.list zu bearbeiten. Bearbeiten Sie die Datei mit dem Editor Ihrer Wahl:
$ sudo nano /etc/apt/sources.list
Fügen Sie Ihrer /etc/apt/sources.list die folgende Zeile hinzu:
deb [trusted=yes] file:/opt/local/debs ./
Jetzt werden wir unser lokales Repository in Aktion testen.
Schritt 6:Bestätigung
Wir können dies überprüfen, indem wir die Pakete aus dem lokalen Repository installieren oder entfernen.
Zuerst müssen wir die Pakete aktualisieren:
$ sudo apt-get update
Nun installieren wir unser Paket wie gewohnt mit apt-get:
$ sudo apt-get install google-chrome-stable
Jetzt können Ihre lokalen Pakete mit Synaptic, aptitude und den apt-Befehlen installiert, aktualisiert und entfernt werden:apt-get, apt-cache usw. Wenn Sie apt-get install ausführen, werden alle Abhängigkeiten aufgelöst und für Sie installiert, solange wie sie erfüllt werden können.
Wir können unsere installierten Pakete genauso einfach entfernen wie jedes andere installierte Paket auf unserem System:
$ sudo apt-get remove google-chrome-stable
Schlussfolgerung
In diesem Tutorial haben wir gelernt, wie wir unser eigenes lokales Debian-Repository erstellen und Pakete lokal hinzufügen/entfernen. Diese Schritte gelten für die meisten Debian-basierten Distributionen.