Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Neben der Nutzung der offiziellen Paketquellen oder von anderen Quellen wie z.B. ein PPA und weiteren Fremdquellen gibt es auch die Möglichkeit, eine eigene Paketquelle lokal anzulegen. Dies kann zum Beispiel dann sinnvoll sein, wenn man regelmäßig Pakete bzw. Paketzusammenstellungen braucht, die in dieser Form in keiner anderen Quelle vorhanden sind oder die man selbst als Paket erstellt hat.
Weitere Programme mit ähnlichen Funktionen sind im Artikel Lokale Paketquellen zu finden.
Das Erstellen einer eigenen Paketquelle setzt die Installation [1] des folgenden Paketes voraus:
dpkg-dev
mit apturl
Paketliste zum Kopieren:
sudo apt-get install dpkg-dev
sudo aptitude install dpkg-dev
Um die Paketquelle zu erstellen, legt man zunächst beispielsweise im Homeverzeichnis einen neuen Ordner ~/Software an, in den man die gewünschten Pakete schiebt. Von der Paketverwaltung heruntergeladene Pakete befinden sich unter /var/cache/apt/archives.
Nun muss ein Index aller Pakete der eigenen Paketquelle erstellt werden. Dazu wechselt man im Terminal [2] in das Verzeichnis mit den Paketen und gibt anschließend den folgenden Befehl ein:
sudo dpkg-scanpackages ./ /dev/null | gzip > Packages.gz
Wenn dpkg beim Erstellen des Index ein wenig "meckert", ist das in der Regel belanglos.
Besonders bei mit checkinstall selber erzeugten Paketen wird eine leere Depends-Zeile in die Paketbeschreibung eingefügt, was zu Problemen mit APT führt. Abhilfe schafft, die leere Depends-Zeile zu entfernen. Das funktioniert am besten mit
sudo dpkg-scanpackages -m ./ /dev/null | sed '/^Depends:[[:space:]]*$/d' | gzip > Packages.gz
Um die selbst zusammengestellte Paketquelle in das System einzubinden, wird in der Paketverwaltung folgende Angabe (angenommen, die Pakete befinden sich in ~/Software) gemacht, wobei der Ausdruck <benutzer>
durch den Namen des Benutzers zu ersetzen ist [3]:
deb file:/home/<benutzer>/Software ./
Bitte die Schreibweise der Quelle genau beachten - nur ein einfacher Slash nach dem file:
, alles andere schlägt fehl (s.a. das Debian-Anwenderhandbuch ).
Zusätzliche Fremdquellen können das System gefährden.
Anmerkung: Da es sich auch bei einer lokalen Paketquelle nicht um eine offizielle Ubuntu-Quelle handelt, muss sie wie alle anderen Fremdquellen behandelt werden. Die Risiken für das System und die Paketverwaltung bestehen weiterhin, auch wenn man möglicherweise einzelne Aspekte ausschließen kann.
Natürlich ist es ebenfalls möglich, eine Paketquelle in einem durch einen Webserver (z.B. Apache) freigegebenen Verzeichnis zu erstellen, um die selbst erstellten bzw. zusammengesuchten Pakete im Netzwerk/Internet verfügbar zu machen. Diese Paketquelle wird dann mit "deb http:/<Server-IP>
" auf den Clients eingebunden und nicht mit "deb file:/
".
Nach dem Hinzufügen müssen die gesamten Paketquellen grundsätzlich neu eingelesen werden. Die Paketverwaltung liest die Quelle nur ein, wenn sie auch richtig angegeben wurde. Andernfalls kann es passieren, dass das System bei Leseversuchen auf eine falsch angegebene Quelle einfriert und nur noch sporadisch reagiert. Falls die Quellenangabe in Synaptic vorgenommen wurde, wird sie im Falle, dass sie falsch war, automatisch gelöscht und das System läuft ohne Probleme weiter. Demzufolge ist die Angabe einer lokalen Paketquellen in Synaptic einer manuellen Bearbeitung der sources.list vorzuziehen.
Selbstverständlich ist es auch möglich, die Paketquelle auf CD/DVD zu brennen und dann in das System einzubinden. Dazu muss im einfachsten Fall der Inhalt des Software-Ordners direkt in der obersten Verzeichnisebene der CD liegen - ohne Unterverzeichnisse!
Um nicht bei jedem neu hinzugefügten Paket den ganzen, schwer zu merkenden Befehl von Hand eingeben zu müssen, kann man diesen Vorgang durch ein Skript vereinfachen. Dazu erstellt man mit einem Texteditor [4] eine Datei mit dem folgenden Inhalt:
1 2 3 | #!/bin/sh cd /home/<benutzer>/Software sudo dpkg-scanpackages ./ /dev/null | gzip > Packages.gz |
Nach dem Speichern unter einem beliebigen Namen muss diese Datei noch als für ihren Besitzer ausführbar markiert werden [5].
Lokale Paketquellen Übersichtsartikel
reprepro - Werkzeug für eigene Paketquellen
Apt-Repositorium erstellen:
Diese Revision wurde am 25. Februar 2014 21:45 von Justin-Time erstellt.