18.2 Paket Dienstprogramme
Es gibt vier Hauptdienstprogramme für das Paketmanagement. Sie gestatten das Installieren, Entfernen und Aktualisieren von Paketen.
18.2.1 pkgtool
pkgtool(8) ist ein menügeführtes Programm zum Installieren und Entfernen von Paketen. Das Hauptmenü ist in Abb. 18-1 zu sehen.
Abb. 18-1. Pkgtool's Hauptmenü

Die Auswahl gestattet die Installation aus dem aktuellen oder einem anderen Verzeichnis oder von Diskette. Nach der Auswahl der Installationsmethode, sucht pkgtool den Speicherort gültiger Pakete für die Installation.
Genauso kann man sich eine Liste der installierten Pakete, wie in Abb. 18-2 gezeigt, anzeigen lassen.
Abb. 18-2. Pkgtool Anzeigemodus

Wenn ein Paket entfernt werden soll, wählt man dazu die remove Option aus. Es wird dann ein Auswahlliste aller installierten Pakete vorgegeben. Nach Markieren der zu löschenden Pakete und Betätigung von OK löscht pkgtool diese.
Einige Anwender ziehen dieses Dienstprogramm den Kommandozeilenprogrammen vor. Jedoch muss angemerkt werden, dass die Kommandozeilenprogramme deutlich mehr Möglichkeiten bieten. Insbesondere die Aktualisierung von Paketen ist nur mit den Kommandozeilenprogrammen möglich.
18.2.2 installpkg
installpkg(8) installiert neue Pakete im System. Die Syntax ist wie folgt:
# installpkg option package_name
Drei Optionen sind für installpkg verfügbar. Nur eine Option kann je Aufruf benutzt werden.
Tabelle 18-1. installpkg Optionen
| Option | Wirkung |
| -m | Führt ein makepkg Operation im aktuellen Verzeichnis aus. |
| -warn | Zeigt was passieren würde, wenn man das angegebene Paket installieren würde. Nüztlich für Produktionssysteme, da man genau sehen kann was passiert bevor man etwas installiert. |
| -r | Rekursive Installation aller Pakete im aktuellen Verzeichnis und allen Unterverzeichnissen. Der Paketname kann Platzhalter enthalten und kann damit als Suchmaske während rekursiven Installation dienen. |
Wenn man die ROOT Umgebungsvariable for dem Aufruf von installpkg setzt, so wird dieser Pfad als root Verzeichnis benutzt. Das ist nützlich für das Einrichten neuer Laufwerke als root Verzeichnis. Diese werden typischerweise nach /mnt oder in ein anderes Verzeichnis als / gemounted.
Der Eintrag in die Paketdatenbank wird unter /var/log/packages abgelegt. Der Eintrag ist tatsächlich nur eine einfache Textdatei, je eine für jedes Paket. Wenn das Paket über ein postinstall Script verfügte, so wird dieses unter /var/log/scripts abgelegt.
Man kann mehrere Pakete oder Platzhalter anstelle des Paketnamens angeben. Es sei darauf hingewiesen, dass installpkg nicht davor warnt ein bereits installiertes Paket zu überschreiben. Es installiert einfach über das vorhergehende. Wenn man absichern will, das vorhandene Dateien von vorhergehenden Paketen sicher entfernt werden, muß man upgradepkg benutzen.
18.2.3 removepkg
removepkg(8) entfernt installierte Pakete aus dem System. Die Syntax ist wie folgt:
# removepkg option package_name
Vier Optionen sind für removepkg verfügbar. Nur eine Option kann je Aufruf benutzt werden.
Tabelle 18-2. removepkg Optionen
| Option | Wirkung |
| -copy | Das Paket wird in das Paketsicherungsverzeichnis kopiert. Dort wird der Baum des Originalpaketes erzeugt, ohne es zu entfernen. |
| -keep | Sichert die während der Installation erzeugten temporären Dateien. Wirklich nützlich nur für Debugging Zwecke. |
| -preserve | Das Paket wird entfernt, aber gleichzeitig in das Paketsicherungsverzeichnis kopiert. |
| -warn | Zeigt, was passieren würde, wenn man das Paket entfernt. |
Wenn man die ROOT Umgebungsvariable for dem Aufruf von removepkg setzt, so wird dieser Pfad als root Verzeichnis benutzt. Das ist nützlich für das Einrichten neuer Laufwerke als root Verzeichnis. Diese werden typischerweise nach /mnt oder ein in anderes Verzeichnis als / gemounted.
removepkg prüft die anderen installierten Pakete und entfernt nur Dateien, die allein zu dem angegebenen Paket gehören. Es durchsucht auch das Postinstallationsscript des angegebenen Pakets und entfernt gegebenefalls durch das Paket erzeugte symbolische Links.
Während des Entferenes wird ein Statusbericht angezeigt. Nach dem Entfernen wird der Paketdatenbankeintrag nach /var/log/removed_packages und das Postinstallationsscript nach /var/log/removed_scripts verschoben.
Wie für installpkg kann man für mehrere Pakete auch wieder Platzhalter für den Paketnamen benutzen.
18.2.4 upgradepkg
upgradepkg(8) aktualisiert ein installiertes Slackwarepaket. Die Syntax ist wie folgt:
# upgradepkg package_name
oder
# upgradepkg old_package_name%new_package_name
upgradepkg geht dabei so vor, dass zuerst das neue Paket installiert und dann das alte entfernt wird, so dass die alten Dateien nicht mehr länger im System herumliegen. Wenn der Name des aktulisierten Pakets sich geändert hat, kann man die Prozentzeichensyntax benutzen um den alten Paketnamen (jenes welches installiert war) und den neuen Paketnamen (jenes auf welches aktualisiert wird) anzugeben.
Wenn man die ROOT Umgebungsvariable for dem Aufruf von upgradepkg setzt, so wird dieser Pfad als root Verzeichnis benutzt. Das ist nützlich für das Einrichten neuer Laufwerke als root Verzeichnis. Diese werden typischerweise nach /mnt oder ein in anderes Verzeichnis als / gemounted.
upgradepkg ist nicht unfehlbar, daher sollte man seine Konfigurationsdateien immer sichern. Wenn diese gelöscht oder überschreiben werden, benötigt man eine Kopie für eventuelle Reparaturarbeiten.
Wie für installpkg und removepkg kann man für mehrere Pakete auch wieder Platzhalter für den Paketnamen benutzen.
18.2.5 rpm2tgz/rpm2targz
Der Red Hat Packager Manager ist heutzutage ein weitverbreitetes Paketmanagementsystem. Viele Softwaredistributoren bieten ihre Produkte im RPM Format an. Da es nicht unser natives Format ist, empfehlen wir nicht darauf zu bauen. Ein Teil der Software (sogar die Quellen) ist jeoch nur als RPM verfügbar.
Wir stellen ein Programm zur Verfügung, welches RPM Pakete in unser natives .tgz Format konvertiert. Dies erlaubt das Entpacken des Paketes (z.B. mit explodepkg) in ein temporäres Verzeichnis und die Untersuchung seines Inhalts.
Das rmp2tgz Programm erzeugt Slackware Pakete mit einer .tgz Endung, während rpm2targz Archive mit einer .tar.gz Endung erzeugt.