So erstellen Sie Ihr eigenes Repository für Pakete unter Debian

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 die Bandbreitennutzung zu sparen, oder Sie haben möglicherweise einige geänderte 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 Repositorys von den APT-Dienstprogrammen verwaltet (apt, apt-get, apt-cache usw.). Das Paket dpkg-dev wird für die lokale Repository-Erstellung benötigt, die mit APT kompatibel ist.

Aktualisieren Sie zuerst die Systempakete mit dem folgenden Befehl:

$ sudo apt update && sudo apt upgrade

Als nächstes installieren Sie die dpkg-dev Paket, indem Sie Folgendes eingeben:

$ sudo apt-get install dpkg-dev

Wenn die Paketinstallation abgeschlossen ist, fahren Sie mit dem Erstellen 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 aufzubewahren. Dafür example, 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: Hinzufügen von Paketen zum lokalen Repository-Verzeichnis

Für dieses Tutorial laden wir die chrome-browser-Paket in unser lokales Repository, da es nicht im Standard-Ubuntu-Repository gefunden wird:

$ 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: Erstellen Sie das erforderliche Repository-Paket-Meta für APT

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 zu überspringen sudo.

$ sudo su

Zuerst erstellen wir eine Release-Datei, indem wir den folgenden Befehl ausführen:

# dpkg-scanpackages . /dev/null > Release

Sie sollten eine ähnliche Ausgabe erhalten, je nachdem, wie viele Pakete Sie dem lokalen Repository hinzugefügt haben:

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.

Als nächstes scannen Sie alle deb-Dateien im Verzeichnis und erstellen Sie eine geeignete 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. Du könntest auch ein einfaches erstellen bash Skript und führen Sie es aus, wenn Sie neue Pakete hinzufügen.

Führen Sie den Befehl ls aus, um die lokale Repository-Verzeichnisstruktur aufzulisten:

$ 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: Hinzufügen unseres lokalen Repositorys zu Sources.list

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 testen wir unser lokales Repository in Aktion.

Schritt 6: Verifizierung

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 für Sie aufgelöst und installiert, solange wie man sie treffen kann.

Wir können unsere installierten Pakete auf die gleiche Weise wie jedes installierte Paket auf unserem System einfach entfernen:

$ sudo apt-get remove google-chrome-stable

Fazit

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.