Paketverwaltung
Eine Paketverwaltung (auch: Paketmanager) wird für die Installation von Softwarepaketen auf einem Betriebssystem verwendet. Mit ihrer Hilfe lassen sich die installierten Pakete und das Installationsdatum feststellen sowie die installierten Dateien aufrufen. Besonders beim Upgrade eines Pakets kennt die Paketverwaltung die Konfigurationsdateien der installierten Programme und schützt sie vor dem Überschreiben.
Die am häufigsten eingesetzten Paketverwaltungen sind apt-get und dpkg (Debian, Ubuntu) sowie rpm (Fedora, Red Hat, SUSE).
- Die Installation einer Distribution errfolgt gewöhnlich unter unter "/". Davon getrennt sollten alle zusätzlich installierten Programme unter "/opt" bzw. "/usr/local" abgelegt werden.
Paketformate
Paketformat | Distribution | Shell-Befehl | Bemerkungen |
---|---|---|---|
System V | AIX, HP-UX, Solaris | pkgadd, pkginfo, pkgrm | Pakete mit binaries |
RPM | Mandriva, Red Hat, SUSE Linux | rpm | source rpms enthalten die Quellen (woraus optimierte binaries gebaut werden können). binaries. RPM prüft Abhängigkeiten. |
Freebsd | Freebsd | "/usr/ports" zeigt eine Verzeichnisstruktur, aus der heraus installiert werden kann (dabei werden auch Pakete installiert). | |
DEB | Debian, Ubuntu | apt-get, aptitude, dpkg |
alien kann Debian- und Slackware-Pakete in unter SUSE Linux installierbare Pakete umwandeln.
Paketinstallation
Beim Kompilieren werden üblicherweise folgende drei Befehle verwendet:
- configure überprüft, ob alle zum Kompilieren notwendigen Programme und Bibliotheken vorhanden sind und gibt entsprechende Hinweise aus.
- make ruft den Compiler auf und sorgt dafür, dass er den Quelltext in ein ausführbares Programm verwandelt (kompiliert).
- make install kopiert die Programmdateien in die durch den Befehl "configure" festgelegten Zielverzeichnisse.
1. Vor der Installation von Paketen sollte das Verzeichnis "/usr/local/pkg" immer leer sein.
2. Herunterladen der Quelldateien (z. B. "xyz-1.47.tar.gz")
3. Installation der Quelldateien
$ cd /usr/src $ gunzip xyz-1.47.tar.gz $ tar xvf xyz-1.47.tar $ cd xyz-147
4. Lesen der Dateien "INSTALL" bzw. "README", worin auch allfällige Abhängigkeiten beschrieben sind.
5. Konfigurieren mit configure
$ ./configure
6. Kompilieren
$ make
7. Installation (zwingend als Benutzer "root").
# make install
8. Testen der Anwendung
Steuerdateien
1. ...
$ cd /usr/local/pkg
2. Erzeugen der Prototype-Datei
$ find . -print | pkgproto > prototype
3. Einfügen folgender Zeilen am Anfang der Prototype-Datei.
i pkginfo=./pkginfo d none bin 0755 root root ... f none bin/program 0755 root root ...
4. Erstellen der Datei "pkginfo".
$ vi pkginfo PKG=<Paketname>, z. B. GNUsudo NAME=<Name>, z. B. sudo ARCH=<Prozessortyp>, z. B. i386/sparc CERSION=<Version>, z. B. 1.2.7 CATEGORY=<Kategorie>, z. B. application VENDOR=<Hersteller>, z. B. GNU EMAIL=<E-Mail-Adresse>, z. B. xyz@gnu.org PSTAMP=<zuständige Person>, z. B. Markus Gnu BASEDIR=<>, z. B. "/usr/local" (der Ort, wohin das Paket installiert werden soll) CLASSES=<>, z. B. none
5. Erzeugen der Datei bzw. Verzeichnisstruktur "/var/spool/pkg/GNUsudo", wobei "GNUsudo" der Paketname ist.
$ pkgmk -r ${PWD}
6. Mit "pkgtrans" wird eine einzelne Datei namens "sudo-1.0" erzeugt.
$ cd /var/spool/pkg $ pkgtrans -s ${PWD} /tmp/sudo-1.0 $ gzip sudo-1.0
7. Test des Pakets (Installation). Das Paket sollte danach unter "/usr/local" stehen.
$ cd /tmp $ pkgadd -d sudo-1.0