BSD-Wiki

Mitschrift einer FreeBSD-Installation

Benutzer-Werkzeuge

Webseiten-Werkzeuge


eigenes_pkg-repository

Allgemein

Spätestens seit FreeBSD 9.1 steht mit pkg ein neues und deutlich verbessertes Paketmanagement-Werkzeug zur Verfügung. Da es jedoch leider noch immer kein offizielles Repository dafür gibt kann man sich relativ einfach ein eigenes erzeugen. Hierzu wird das Werkzeug ports-mgmt/poudriere verwendet.

Über poudriere

Poudriere ist ursprünglich ein Werkzeug um die Erzeugung von Pakete für FreeBSD zu testen. Hier wird es jedoch dafür verwendet um ein eigenes Paketrepository zu erzeugen. Poudriere nutzt dabei die Möglichkeiten die ein modernes FreeBSD ihm bietet (z.B. ZFS, Jails,..). Seit Version 3.0 ist es möglich poudriere auch ohne ZFS zu verwenden. Die Konfiguration ohne ZFS wird im weiteren betrachtet (um ZFS zu verwenden sind lediglich wenige selbsterklärende Änderungen an der Konfiguration notwendig).

Da poudriere selbst jails erzeugt und verwaltet ist die Installation und der Betrieb von poudriere selbst innerhalb einer Jail nicht ohne weiteres möglich. (Wer es doch versuchen möchte kann der Anleitung auf dieser fremden Seite folgen: poudriere in a jail - Keine Garantie für den Inhalt der Seite!).

poudriere installieren

Zunächst muss ports-mgmt/poudriere installiert werden.

poudriere konfigurieren

Konfigurationsdatei anlegen

Poudriere liefert direkt eine Konfigurationsvorlage mit welche kopiert werden muss.

# cp /usr/local/etc/poudriere.conf.sample /usr/local/etc/poudriere.conf

Konfiguration anpassen

Anschließend kann die Datei /usr/local/etc/poudriere.conf bearbeitet werden. Im Folgenden wird pourdiere für ein System ohne ZFS konfiguriert. Seine Daten legt poudriere unter /poudriere ab (was z.B. eine eigene Partition sein kann um das System davor zu schützen, dass / voll läuft).

NO_ZFS=yes
FREEBSD_HOST=ftp://ftp.freebsd.org
RESOLV_CONF=/etc/resolv.conf
BASEFS=/poudriere
USE_PORTLINT=no
USE_TMPFS=yes
DISTFILES_CACHE=/usr/ports/distfiles

Port-Tree installieren

Poudriere benötigt einen Port-Tree um die Pakete zu bauen. Es verwaltet dabei seinen eigenen Port-Tree (um genau zu sein kann es verschiedene verwalten). Dieser wird wie folgt geladen (und befindet sich dann unter /poudriere/ports/default).

# poudriere ports -c

Jail erstellen

# poudriere jail -c -j 92amd64 -v 9.2-RELEASE -a amd64

Pakete für das neue PKG bauen

echo "WITH_PKGNG=yes" > /usr/local/etc/poudriere.d/92amd64-make.conf

Paketliste anlegen unter /usr/local/etc/poudriere.list

editors/vim-lite

Bau anstossen

# poudriere bulk -f /usr/local/etc/poudriere.list -j 92amd64

Der fertige Paketbaum liegt dann unter /poudriere/data/packages/92amd64-default und kann über einen Webserver als Repository freigegeben werden.

Weitere Arbeit mit Poudriere

Mit dem fertig eingerichteten Poudriere kann nun beliebig weiter gearbeitet werden. Es folgen nun ein paar typische Beispiele.

Pakete hinzufügen oder entfernen

Um neue Pakete hinzuzufügen oder nicht mehr benötigte nicht erneut bauen zu lassen wird die Datei /usr/local/etc/poudriere.list entsprechend angepasst (es ist auch möglich Zeilen durch vorranstellen eines # auszukommentieren, dann werden diese nicht ausgewertet). Anschließend muss der Paketbaum neu gebaut werden.

Ports-Tree aktualisieren

Um aktuelle Pakete zu bauen muss logischerweise zunächst der Ports-Tree aktuallisiert werden. Dies geschieht mit folgendem Aufruf:

# poudriere ports -u

Anschließend kann der Paketbaum neu gebaut werden.

Paketbaum neu bauen

Um den Paketbaum einer Jail neu zu bauen wird einfach wieder der entsprechende Befehl abgesetzt. Die Jail mit dem Namen '92amd64' wird z.B. mit folgendem Aufruf neu gebaut:

# poudriere bulk -f /usr/local/etc/poudriere.list -j 92amd64
eigenes_pkg-repository.txt · Zuletzt geändert: 2017/10/02 13:40 (Externe Bearbeitung)

Impressum