Wir bauen ein Solaris Paket

Author:Frank
Datum:12.10.2004 letztes Update 17.12.2004
Zusammenfassung:Kurze Beschreibung wie man unter Solaris aus seiner Lieblingssoftware ein Paket macht.
Als Beispiel soll OpenSSl dienen. Das ist so toll das man das auf jeder Solaris Maschine haben möchte. Deshalb wollen wir daraus ein Paket basteln und dann können wir OpenSSl per pkgadd installieren.
Vorraussetzung ist eine lauffähge Version von OpenSSL.
OpenSSL liegt komplett im Verzeichniss /usr/local/ssl. Davon brauchen wir eine komplette Kopie die wir nach /var/tmp/mypkg kopieren.
cd /usr/local
tar cf ssl.tar ./ssl
mkdir -p /var/tmp/mypkg
mv ssl.tar  /var/tmp/mypkg
cd /var/tmp/mypkg
tar xf ssl.tar
mv ssl openssl-097d
Wichtig ist, dass sämtliche Benutzerechte mit kopiert werden! Zu jedem Paket gehört so eine Art Inhaltsverzeichniss, in dem jede Datei die zu dem Pakte gehört, incl. Benutzerrechte aufgelistet ist. Diese Datei nennt sich prototype und wird mit dem Kommando pkgproto erstellt.
cd openssl-097d
pkgproto . >prototype
Als nächtes benötigen wir eine zweite Datei namens pkginfo. Wie der Name bereits vermuten lässt, stehen dort die Informationen zu dem Paket. Diese Info´s werden beim Installieren und Löschen des Paketes angezeigt. Die pkginfo Datei wird von an angelegt. Am einfachsten ist es wenn sie im Wurzelverzeichniss des Paketes liegt (/var/tmp/mypkg/openssl-097d). Sie hat folgenden Inhalt:
PKG=DFRssl
NAME=OpenSSL 0.9.7d
ARCH=sparc
VERSION=0.9.7d-dfr0001
CATEGORY=application
VENDOR=D-FRUST
EMAIL=irgendwas@d-frust.de
BASEDIR=/usr/local/ssl
CLASSES="none"
Etwas weiter oben hatten wir bereits gesagt, dass in der Datei prototype sämtlich zum Paket gehörenden Datein aufgelistet sein sollten. Wir müssen also die Datei pkginfo noch von Hand nachtragen:
i pkginfo=./pkginfo
Nun haben wir schon alles zusammen um das Paket zu bauen. Dazu wird der Befehl pkgmk benutzt:
cd  /var/tmp/mypkg/openssl-097d
pkgmk -r /var/tmp/mypkg/openssl-097d
Das neue Paket wird im Verzeichnis /var/spool/pkg/DFRssl erstellt.
Es besteht allerdings noch aus mehreren Dateien. Viel handlicher ist es wenn das Paket aus nur einer Datei besteht. Mit dem Befehl pkgtrans kann man sein Paket entsprechend umwandeln.
# pkgtrans -s /var/spool/pkg /tmp/DFRssl-097d.pkg       

The following packages are available:
  1  DFRssl     OpenSSL 0.9.7d
                (sparc) 0.9.7d-dfr0001

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: 1
Transferring  package instance
Und schon haben wir ein fertiges Paket, was wir mit den SUN Paket Befehlen verwalten können.

Links