Beim Erstellen von Solaris-Paketen sind einige Vor- und Nachbereitungen nötig, die ich im Folgenden kurz aufführe.
Um später herausfinden zu können welche Dateien alles installiert wurden, braucht man zunächst einen Zeitstempel. Am Besten erstellt man vor dem Bauen mittels touch eine Datei mit aktuellem Zeitstempel. Anschließend sollte man auch noch alle Quelldateien aktualisieren. Der Aufruf kann wie folgt aussehen.
touch /tmp/newer
find <src> | while read n; do touch n; done
Danach kann das Paket mit dem klassischen Dreisatz erstellt werden.
configure
make
make install
Beim Aufruf von configure muss darauf geachtet werden, dass die Zielverzeichnisse entsprechend gesetzt werden. Nachdem das Paket erfolgreich gebaut und installiert wurde, kann das Paket erstellt werden.
Zum Erstellen des Paketes werden nun alle installierten Dateien gesucht und eine Package-Prototypdatei erstellt werden. Dies erfolgt am Besten mittels find in den entsprechenden Verzeichnissen und dem anschließenden Aufruf von pkgproto .
find /opt/SUNWost -newer /tmp/newer > /tmp/files
find /etc -newer /tmp/newer >> /tmp/files
cat /tmp/files | pkgproto > /tmp/prototype
Alle Pakete werden in das Verzeichnis /opt/SUNWost installiert und die Konfigurationsdateien unter /etc abgelegt. Beim Zusammenstellen der Dateien und Verzeichnisse eines Paketes kann die Suche mittels find hierdurch auf dies Verzeichnisse beschränkt werden. Sollten Pakete an einem anderen Ort installiert werden, muss man den Aufruf entsprechend anpassen.
In die Package-Prototypdatei müssen anschließend noch alle root-Pfad und die pkginfo Datei hinzugefügt werden. Hierzu ist die Datei /tmp/prototype zu öffnen und entsprechend anzupassen.
i pkginfo
d none /etc 0755 root root
d none /opt 0755 root root
d none /opt/SUNWost 0755 root root
Nach dem Anpassen der Package-Prototypdatei muss die Package-Beschreibung bearbeitet werden. Hierzu legt man die Datei pkginfo an. Der Name der Datei muss identisch zu dem Eintrag in der Package-Prototypdatei sein. Die Package-Beschreibung enthält alle Informationen, die später mittels pkginfo angezeigt werden. Das folgende Listing gibt ein Beispiel für das Package perl . Eine genaue Beschreibung der einzelnen Einträge kann der man-page von pkginfo entnommen werden.
PKG=perl
NAME="Perl 5.12.4"
ARCH=sparc
VERSION=5.12.4
CATEGORY=system
VENDOR="Larry Wall and others"
EMAIL="larry@wall-net.com"
BASEDIR=/
CLASSES=application none
PSTAMP="20120107 23:46"
Letztendlich kann nun das Package erstellt und zusammengepackt werden. Hierzu sind die folgenden Kommandos auszuführen. Zunächst werden mittels pkgmk die Dateien in die Package-Struktur zusammenkopiert. Sollte in der Package-Prototypdatei ein Fehler sein, so wird dieser bei diesem Schritt angezeigt. Anschließend wird mittels pkgtrans das Package zu einer Datei zusammengepackt und mittels gzip komprimiert. Letzterer Schritt ist nur bedingt notwendig, da vor dem Installieren das Package auch wieder dekomprimiert werden muss.
pkgmk -o -r / -d /tmp -f Prototype
pkgtrans -s `pwd` <pkgname>-<version>-sol10-sparc <pkgname>
gzip <pkgname>-<version>-sol10-sparc
|