1.98. Paketsysteme
1.98.1. Grundsätzliches
Auf den meisten unixoiden Betriebsystemen gibt es Paketsysteme. Sie regeln Installation, Upgrades etc. und lösen Abhängigkeiten auf. Bei den BSDs gibt es drei:
die FreeBSD-Ports
die OpenBSD-Ports
PkgSrc (wird von NetBSD und DragonFlyBSD verwendet)
Die OpenBSD-Ports und PkgSrc sind ursprünglich Forks der FreeBSD-Ports, deswegen ist die Bedienung in vielen Fällen ähnlich.
Dieser Artikel soll eine Einführung in die grundlegende Bedienung der Paketsysteme mit den in dem jeweiligen BSD standardmäßig vorhandenen Programmen erläutern. Man kann mit den Paketsystemen noch wesentlich mehr machen als hier beschrieben wird, aber dafür gibt es dann spezielle Artikel.
Grundsätzlich unterscheiden sich die BSD-Paketsysteme von anderen bekannten (wie z.B. apt-get/dpkg oder RPM), dadurch dass sie sowohl Installation durch Binärpakete, als auch durchs Kompilieren der Quellen erlauben. Welches von beiden man nutzt oder ob man beides mischen kann/soll/darf ist Geschmacksache und löst oft Diskussionen aus. Muss im Endeffekt jeder selber wissen!
Im Gegensatz zu den meisten GNU/Linux-Distributionen, wird unter *BSD nicht das komplette System vom Paketsystem verwaltet. Der Kernteil des Betriebsystems, die sog. Basis, zu der Kernel und Unixstandardprogramme gehören (in OpenBSD gehört der X-Server auch dazu), werden über andere Mechanismen auf dem neusten Stand gehalten. Unter FreeBSD siehe dazu Make World.
Noch was: wenn im folgenden von dem Befehl make gesprochen wird, so müssen DragonFlyBSD-Nutzer und andere Nicht-NetBSD-Nutzer von PkgSrc stattdessen bmake nehmen!
1.98.2. Terminologie
Die Terminologie ist nicht sehr eindeutig oder konsistent, aber grundsätzlich kann man folgende Dinge festhalten:
bereits installierte „Software“ und „Software“ die vorkompiliert(binär) vorliegt wird als Paket bezeichnet.
Anweisungen zum Kompilieren und Installieren von „Software“ durch Quellcode, bezeichnet man unter Free- und OpenBSD als Port, unter Net- und DragonFlyBSD als „PackageSource“ bzw. Paketquelle.
1.98.3. Installieren eines Programms über die Ports/PkgSrc
Möchte man ein noch nicht installiertes Programm aus den Quellen installieren, so geht man nach $BAUM/$ORIGIN und gibt make install clean ein. Also z.B.: <xterm> # cd /usr/ports/net-im/pidgin # make install clean </xterm> Wenn man die ORIGIN nicht kennt kann man durch ein whereis name oder durch <xterm> # cd /usr/ports # make quicksearch key=pidgin Port: finch-2.0.0 Path: /usr/ports/net-im/finch Info: Finch multi-protocol messaging client (Console UI)
Port: gaim-hotkeys-0.2.2_2 Path: /usr/ports/net-im/gaim-hotkeys Info: A gaim plugin that allows user to assign global hotkeys
Port: libpurple-2.0.0 Path: /usr/ports/net-im/libpurple Info: Backend library for the Pidgin multi-protocol messaging client
Port: pidgin-2.0.0 Path: /usr/ports/net-im/pidgin Info: Pidgin multi-protocol messaging client (GTK+ UI)
</xterm> danach suchen.
Durch <xterm> # cd net-im/pidgin # make install clean </xterm> wechselt man in das entsprechende Verzeichnis. Danach werden dann die Quellen für das Programm und alle seine Abhängigkeiten heruntergeladen, wenn nötig gepatcht, kompiliert und installiert. Zum Schluß werden die nicht mehr benötigten Sourcen und Objektdateien wieder gelöscht.
1.98.4. Installieren eines Programms über die Pakete
Die BSDs bieten für viele (nicht alle) der Ports vorkompilierte Pakete an. Diese sind nicht immer aktuell oder vollständig (auch abhängig von Rechnerarchitektur), aber wenn es für einen Port ein Paket gibt, dann sollte es auch für alle Abhängigkeiten Pakete geben. Zum Hinzufügen eines noch nicht installierten Pakets und seinen Abhängigkeiten nutzt man den Befehl pkg_add, bzw. bei FreeBSD pkg. Also für unser Beispiel Links: (OpenBSD-Ports und PkgSrc) <xterm> # pkg_add links </xterm> bzw. unter FreeBSD-Ports <xterm> # pkg install links </xterm> Standardmäßig sollten (automatisch) unter allen BSDs die, für die verwandte Betriebsystemsversion passenden Pakete verwendet werden. Besonders bei FreeBSD kann es aber schlauer sein auch auf einem Release die Pakete von -STABLE zu verwenden, siehe dazu FreeBSD-Zweige.
1.98.5. Löschen eines installierten Pakets
Man löscht die Pakete, die es benötigen gleich mit. Bei FreeBSD-Ports und PkgSrc: pkg_delete -r, OpenBSD-Port: pkg_delete -F dependencies; oder
man erzwingt das Löschen mit der -f-Option (FreeBSD-Ports und PkgSrc) bzw. -F (ohne Parameter) (OpenBSD-Ports). Dies sollte nur gemacht werden wenn das Programm danach neuinstalliert wird (z.B. beim Upgrade, siehe unten)!
1.98.6. Upgrade eines installierten Pakets
1.98.7. Aktualisieren der Ports / PkgSrc
1.98.8. Grafische Oberflächen zur Paketverwaltung
bpm [4] - Ein GTK+ basiertes Ports-Frontend (Nur FreeBSD-Ports)
desktopbsd-tools - Eine KDE Programmsammlung für DesktopBSD, die auch ein Ports-Frontend enthält.(Nur FreeBSD-Ports)
kports [5] - Ein umfangreiches, KDE basiertes Frontend für die Ports. (Nur FreeBSD-Ports, in Zukunft auch PkgSrc und OpenBSD-Ports)
portbrowser [6] - Ein auf Gtk2-basiertes Frontend. (Nur FreeBSD-Ports)
1.98.9. Verweise
FreeBSD Man-Seiten: ports(7), pkg_info(1), pkg_add(1), pkg_delete(1)
FreeBSD-Hanbuch: Kapitel 4
OpenBSD Man-Seiten: ports(7), packages(7), pkg_info(1), pkg_add(1), pkg_delete(1)
OpenBSD FAQ: Kapitel 15
NetBSD Man-Seiten: packages(7), pkg_info(1), pkg_add(1), pkg_delete(1)
Der PkgSrc-Guide
Zuletzt geändert: 2023-07-22