Lokale Paketquelle einrichten

Eine lokale Paketquelle erstellen

Das Einrichten einer lokalen Paketquelle ist eigentlich sehr einfach.

Erstmal installieren wir das Paket dpkg-dev:

sudo apt-get install dpkg-dev

In eben diesem ist dpkg-scanpackages enthalten, welches die notwendigen Listen erstellen kann.

Auch brauchen wir ein lokales Verzeichnis, in welchem wir die debs lagern wollen. Ich habe einfach  /opt/debs gewählt:

sudo mkdir /opt/debs

Auch bietet es sich an, das Verzeichnis als normalen Nutzer Beschreibbar zu machen, um das spätere Aktualisieren der Paketquelle etwas bequemer zu gestalten :

sudo chown $USER:$USER /opt/debs

Dann muss man die lokale Paketquelle auch eintragen durch einen Eintrag in /etc/apt/sources.d/:

echo „deb file:/opt/debs ./“ | sudo tee /etc/apt/sources.list.d/local.list

Alles was man jetzt noch tun muss, ist die gewünschten DEB-Dateien in das angelegte Verzeichnis zu legen und danach den folgenden Befehl im  Paket-Verzeichnis auszuführen:

cd /opt/debs
dpkg-scanpackages ./ > Packages
gzip Packages

Danach reicht es die Paketquellen normal per Paketmanager zu aktualisieren (z.B. per “sudo apt-get update”) um die Pakete in die Datenbank aufzunehmen. Will man zusätzliche Pakete in die lokale Paketquelle aufnehmen oder will diese daraus entfernen, kopiert oder löscht man die DEB-Dateien ins bzw. aus dem Verzeichnis und ruft danach die obige Befehlsreihe nochmals auf um die lokale Paketdatei “Packages.gz” neu zu erstellen.

Automatisches aktualisieren der Paketquelle

Momentan muss man noch jedes Mal dpkg-scanpackages ausführen, nachdem man den Inhalt des eigenen Repositories geändert hat. Dafür habe ich mir ein Script geschrieben, welches den Ordner überwacht und bei Veränderungen die Packages.gz neu erstellt.

Dieses Script habe ich mir einfach in /opt/debs/bin gelegt und lasse es bei Systemstart mit ausführen. Aufbauen tut das Script auf inotify, welches ihr erst installieren müsst:

sudo aptitude install inotify-tools

Für den automatischen Systemstart habe ich das Script einfach in rc.local mit aufgerufen:

sudo nano /etc/rc.local

Folgende Zeile einfügen:

/opt/debs/bin/writepackages.sh &

Bis auf das Script gefunden bei glasen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.