OpenBSD: Paketverwaltung und Software-Installation

OpenBSD: Paketverwaltung und Software-Installation

OpenBSD trennt Base-System und Packages strikt. pkg_add installiert Software aus signierten Repositories, pkg_delete entfernt Pakete sauber, pkg_info listet installierte Software.

OpenBSD trennt Base-System und Packages komplett. Das Base-System liegt in /usr/bin und /usr/sbin, installierte Packages unter /usr/local. Diese Trennung ist ein Kernprinzip von OpenBSDs Stabilitäts- und Sicherheitsmodell. Software wird über binäre Pakete installiert – kompiliert, signiert und geprüft durch das OpenBSD-Team. Jedes Paket trägt eine kryptografische Signatur via signify(1).

Systemkonfiguration erklärt die grundlegende Einrichtung nach der Installation. Dieser Artikel zeigt Software-Installation, Updates und Anpassungen. Die Paketverwaltung ist bewusst einfach gehalten – drei Tools für alle Aufgaben: pkg_add, pkg_delete, pkg_info.

Base-System und Packages

Die Trennung zwischen Base-System und Packages ist fundamental. Das Base-System enthält nur Kern-Komponenten – Kernel, Shell, grundlegende Tools, C-Compiler, X11. Keine Distribution-spezifischen Anpassungen oder optionale Software.

Software außerhalb des Base-Systems wird als Package installiert:

/usr/bin/vi             # Base-System Editor (enthalten)
/usr/local/bin/vim      # Package vim (nach Installation)
/usr/sbin/httpd         # Base-System HTTP-Server (enthalten)
/usr/local/sbin/nginx   # Package nginx (nach Installation)

Packages installieren sich ausschließlich nach /usr/local. Diese Trennung verhindert Konflikte zwischen System-Tools und installierter Software. Das Base-System bleibt unberührt von Package-Installationen.

Die Update-Strategie spiegelt diese Trennung:

  • sysupgrade aktualisiert das Base-System
  • pkg_add -u aktualisiert installierte Packages
  • Kein Vermischen beider Systeme
ℹ️ Info
Installation und erste Schritte zeigt die Installation mit Software-Sets. Die Sets base*.tgz, comp*.tgz, man*.tgz, game*.tgz bilden das Base-System. Packages installieren sich später via pkg_add.

pkg_add - Software installieren

Das Tool pkg_add installiert Software aus OpenBSD-Repositories. Die Installation lädt Pakete, prüft Signaturen und installiert Dependencies automatisch.

Einfache Installation

Ein Package installieren:

$ doas pkg_add nginx
quirks-7.147 signed on 2025-12-11T14:27:27Z
nginx-1.28.0p1:bzip2-1.0.8p0: ok
nginx-1.28.0p1:pcre2-10.44: ok
nginx-1.28.0p1: ok
The following new rcscripts were installed: /etc/rc.d/nginx
See rcctl(8) for details.

Die erste Zeile nennt das quirks-Package – enthält Metadaten zu Package-Abhängigkeiten und Kompatibilität. Wird automatisch aktualisiert bei jeder Installation. Dependencies wie bzip2 und pcre2 werden automatisch mitinstalliert. Die Meldung über rcscripts zeigt, dass nginx als Service verfügbar ist (Details im geplanten Artikel Dienste und Daemons).

Package mit Rückfragen:

$ doas pkg_add vim
quirks-7.147 signed on 2025-12-11T14:27:27Z
Ambiguous: choose package for vim
a	0: <None>
	1: vim-9.1.1706-gtk3
	2: vim-9.1.1706-gtk3-lua
	3: vim-9.1.1706-gtk3-perl-python3-ruby
	4: vim-9.1.1706-gtk3-python3
	5: vim-9.1.1706-no_x11-lua
	6: vim-9.1.1706-no_x11
	7: vim-9.1.1706-no_x11-perl-python3-ruby
	8: vim-9.1.1706-no_x11-python3
	9: vim-9.1.1706-no_x11-ruby
Your choice: 6
vim-9.1.1706-no_x11:libiconv-1.17: ok
vim-9.1.1706-no_x11:gettext-runtime-0.23.1: ok
vim-9.1.1706-no_x11:libsodium-1.0.20: ok
vim-9.1.1706-no_x11: ok

Mehrere Varianten existieren – mit verschiedenen Feature-Sets (GTK3-GUI, Lua, Python3, Ruby) oder ohne X11 für Server. Die Auswahl erfolgt interaktiv oder via explizitem Package-Namen:

$ doas pkg_add vim-9.1.1706-no_x11

Paket-Suche

Verfügbare Packages durchsuchen:

$ pkg_info -Q python
python-3.12.11
python-tests-3.12.11
python-idle-3.12.11
python-tkinter-3.12.11
python-gdbm-3.12.11

Der Parameter -Q durchsucht Package-Namen. Teilstring-Suche funktioniert – py, python, python3 finden entsprechende Pakete.

Detaillierte Paket-Informationen:

$ pkg_info -Q nginx
nginx-1.28.0p1 (installed)
nginx-cache_purge-1.28.0p1
nginx-headers-more-1.28.0p1
nginx-stream-1.28.0p1
[... weitere Module-Varianten ...]

Der Zusatz “(installed)” kennzeichnet bereits installierte Packages. Detaillierte Informationen zu einem Package:

$ pkg_info nginx-1.28.0p1
Information for inst:nginx-1.28.0p1

Comment:
robust and small HTTP server and mail proxy server

Description:
This is the stable branch of nginx, as distributed by nginx.org.
nginx provides FastCGI and reverse HTTP proxying, with or without caching,
including simple load balancing and fault tolerance.

Maintainer: Robert Nagy <robert@openbsd.org>
WWW: https://nginx.org/

Die Ausgabe nennt Zweck, Features und Maintainer. Nützlich bei unbekannten Paketen oder mehreren ähnlichen Tools.

Dependencies automatisch installieren

Package-Manager löst Abhängigkeiten automatisch:

$ doas pkg_add mariadb-server
quirks-7.147 signed on 2025-12-11T14:27:27Z
mariadb-server-11.4.9v1:lzo2-2.10p2: ok
mariadb-server-11.4.9v1:snappy-1.1.10p2: ok
mariadb-server-11.4.9v1:mariadb-client-11.4.9v1: ok
mariadb-server-11.4.9v1:p5-DBI-1.644: ok
mariadb-server-11.4.9v1:p5-DBD-MariaDB-1.23: ok
mariadb-server-11.4.9v1:curl-8.16.0: ok
mariadb-server-11.4.9v1:coreutils-9.7: ok
[... weitere Dependencies ...]
mariadb-server-11.4.9v1: ok
Running tags: ok
The following new rcscripts were installed: /etc/rc.d/mysqld
See rcctl(8) for details.

Client-Package, Kompressions-Bibliotheken (lzo2, snappy), Perl-Module (DBI, DBD-MariaDB) und weitere Tools (curl, coreutils) werden automatisch installiert. Die Dependencies sind notwendig für Server-Betrieb.

Installierte Dependencies lassen sich später nicht einzeln entfernen ohne das Haupt-Package zu deinstallieren. pkg_delete prüft Abhängigkeiten vor der Entfernung.

Mehrere Packages gleichzeitig

Liste installieren:

$ doas pkg_add git htop rsync curl
quirks-7.147 signed on 2025-12-11T14:27:27Z
git-2.51.0:p5-Error-0.17029: ok
git-2.51.0:p5-Mail-Tools-2.21p0: ok
[... weitere Dependencies ...]
git-2.51.0: ok
htop-3.4.1:libffi-3.5.2: ok
htop-3.4.1:python-3.12.11: ok
[... weitere Dependencies ...]
htop-3.4.1: ok
Ambiguous: choose package for rsync
a	0: <None>
	1: rsync-3.4.1
	2: rsync-3.4.1-minimal
Your choice: 2
rsync-3.4.1-minimal: ok

Bereits installierte Pakete (hier curl von mariadb-server) werden übersprungen. Bei Paketen mit mehreren Varianten erfolgt interaktive Auswahl. Bei Fehlern (fehlende Pakete, Netzwerkprobleme) wird die Installation abgebrochen.

⚠️ Wichtig
Package-Installation benötigt Root-Rechte. Systemkonfiguration erklärt doas für Rechteverwaltung. Reguläre Benutzer können Pakete nur installieren mit entsprechender doas.conf-Regel.

Repository-Struktur

OpenBSD nutzt offizielle Mirrors für Package-Distribution. Die Mirror-URL wird automatisch aus /etc/installurl gelesen:

$ cat /etc/installurl
https://cdn.openbsd.org/pub/OpenBSD

Diese Datei wird bei der Installation erstellt – basierend auf geografischer Nähe. Manuelle Anpassung ist möglich falls ein schnellerer Mirror bekannt ist.

Mirror-Liste

Offizielle Mirrors sind auf der OpenBSD-Website dokumentiert: https://www.openbsd.org/ftp.html ↗

Deutsche Mirrors (Auswahl):

https://ftp.spline.de/pub/OpenBSD/              # Berlin
https://mirror.hs-esslingen.de/pub/OpenBSD/     # Esslingen
https://ftp.halifax.rwth-aachen.de/pub/OpenBSD/ # Aachen
https://artfiles.org/openbsd/                   # Hamburg
https://ftp.hostserver.de/pub/OpenBSD/          # Frankfurt
https://ftp.fau.de/pub/OpenBSD/                 # Erlangen
https://mirror.junda.nl/pub/OpenBSD/            # Falkenstein

Mirror ändern:

$ echo "https://ftp.hostserver.de/pub/OpenBSD" | doas tee /etc/installurl

Die Pipe mit tee schreibt die URL mit Root-Rechten in die Datei. Die nächste Package-Installation nutzt den neuen Mirror. Kein Cache-Clear oder System-Neustart notwendig.

Package-Struktur im Repository

Packages liegen unter snapshots oder Release-Versionsnummer:

https://cdn.openbsd.org/pub/OpenBSD/7.8/packages/amd64/

Die URL-Komponenten:

  • 7.8 - OpenBSD-Version (Current Release)
  • packages - Binäre Packages (vs. Sets)
  • amd64 - Architektur (Intel/AMD 64-Bit)

Snapshots nutzen aktuellere Packages:

https://cdn.openbsd.org/pub/OpenBSD/snapshots/packages/amd64/

Snapshot-Packages funktionieren nur mit Snapshot-Base-System. Versionen müssen übereinstimmen.

Signaturverifikation

Jedes Package trägt eine digitale Signatur. Das Tool signify(1) prüft Authentizität und Integrität automatisch bei Installation.

Automatische Prüfung

Die Signatur-Prüfung erfolgt transparent:

$ doas pkg_add nginx
quirks-7.107 signed on 2025-10-15T12:34:56Z
nginx-1.24.0: ok

Die Zeile “signed on…” bestätigt erfolgreiche Signatur-Prüfung. Bei fehlerhafter Signatur bricht Installation sofort ab:

nginx-1.24.0: signature check failed
Installation aborted

Manipulierte oder beschädigte Packages werden kategorisch abgelehnt. Kein Bypass möglich – Signatur-Prüfung ist nicht optional.

Öffentliche Schlüssel

Signatur-Prüfung nutzt öffentliche Schlüssel aus /etc/signify:

$ ls /etc/signify
openbsd-76-base.pub       openbsd-77-base.pub       openbsd-78-base.pub
openbsd-76-fw.pub         openbsd-77-fw.pub         openbsd-78-fw.pub
openbsd-76-pkg.pub        openbsd-77-pkg.pub        openbsd-78-pkg.pub
openbsd-76-syspatch.pub   openbsd-77-syspatch.pub   openbsd-78-syspatch.pub
[... ältere Release-Versionen ...]

Die Schlüssel sind Release-spezifisch:

  • base.pub - Base-System-Updates
  • pkg.pub - Package-Signaturen
  • fw.pub - Firmware-Updates
  • syspatch.pub - Security-Patches

Das System speichert Keys mehrerer Releases – ermöglicht Upgrades und Downgrades. Bei System-Upgrade werden neue Schlüssel automatisch installiert.

Vertrauenskette

Die Schlüssel selbst sind Teil des Base-Systems. Sie werden via Installer-ISO installiert – die ISO trägt wiederum eine Signatur die vor Download geprüft wird.

Vertrauenskette:

  1. ISO-Signatur wird mit signify(1) geprüft (öffentlicher Release-Key)
  2. Installation kopiert Signatur-Keys nach /etc/signify
  3. Packages werden mit diesen Keys geprüft

Die Keys rotieren mit jedem Release. Alte Keys bleiben gültig für ältere Releases – ermöglicht Downgrades oder parallele Versionen.

pkg_info - Installierte Software auflisten

Das Tool pkg_info zeigt installierte Packages, Details und Abhängigkeiten.

Alle installierten Packages

Liste aller installierten Packages:

$ pkg_info
bzip2-1.0.8p0       block-sorting file compressor, unencumbered
curl-8.16.0         transfer files with FTP, HTTP, HTTPS, etc.
git-2.51.0          distributed version control system
htop-3.4.1          interactive process viewer
mariadb-server-11.4.9v1 multithreaded SQL database (server)
nginx-1.28.0p1      robust and small HTTP server and mail proxy server
python-3.12.11      interpreted object-oriented programming language
vim-9.1.1706-no_x11 vi clone with many additional features
[... weitere installierte Packages ...]

Die Ausgabe nennt Package-Namen, Version und Kurzbeschreibung. Dependencies (wie libiconv, p5-* Module) erscheinen ebenfalls.

Paket-Details

Detaillierte Informationen zu einem Package:

$ pkg_info nginx
Information for inst:nginx-1.28.0p1

Comment:
robust and small HTTP server and mail proxy server

Description:
This is the stable branch of nginx, as distributed by nginx.org.
nginx provides FastCGI and reverse HTTP proxying, with or without caching,
including simple load balancing and fault tolerance.

Maintainer: Robert Nagy <robert@openbsd.org>
WWW: https://nginx.org/

Die Ausgabe enthält:

  • Maintainer - Verantwortlicher Port-Maintainer
  • WWW - Upstream-Projekt-URL

Package-Größe

Speicherplatz-Verbrauch eines installierten Packages:

$ pkg_info -s nginx
Information for inst:nginx-1.28.0p1
Size: 1344794

Die Größe wird in Bytes angegeben (hier ca. 1.3 MB).

Package-Signatur

Package-Signatur und Dependencies anzeigen:

$ pkg_info -S nginx
Information for inst:nginx-1.28.0p1
Signature: nginx-1.28.0p1,14,@pcre2-10.44,c.102.0,crypto.57.1,ssl.60.1,z.7.1

Die Signatur listet Bibliotheks-Dependencies mit Versionsnummern (@ kennzeichnet direkten Port, Rest sind System-Bibliotheken).

Abhängigkeiten auflisten

Dependencies eines installierten Packages:

$ pkg_info -f postgresql-server | grep @depend
@depend databases/postgresql,-main:postgresql-client-=17.7:postgresql-client-17.7
@depend textproc/icu4c,-main:icu4c-*:icu4c-77.1v0
@depend textproc/libxml,-main:libxml-*:libxml-2.14.6

Das Package benötigt postgresql-client in exakter Version (=17.7), icu4c und libxml in beliebiger aktueller Version (-*).

Welche Packages benötigen ein bestimmtes Package:

$ pkg_info -R mariadb-client
Information for inst:mariadb-client-11.4.9v1
Required by:
mariadb-server-11.4.9v1
p5-DBD-MariaDB-1.23

Die Ausgabe listet alle Packages die mariadb-client als Dependency haben. Hilfreich vor Deinstallation – zeigt betroffene Packages.

Dateien eines Packages

Liste aller Dateien eines Packages:

$ pkg_info -L nginx
Information for inst:nginx-1.28.0p1
Files:
/etc/rc.d/nginx
/usr/local/sbin/nginx
/usr/local/man/man8/nginx.8
/usr/local/share/nginx/nginx.conf
/usr/local/share/nginx/html/index.html
/usr/local/share/doc/pkg-readmes/nginx
[... weitere Dateien ...]

Zeigt alle installierten Dateien, Konfigurationen und Dokumentation. Nützlich um zu prüfen wo ein Package Dateien ablegt.

Datei zu Package zuordnen

Herausfinden welches Package eine Datei installiert hat:

$ pkg_info -E /usr/local/bin/vim
/usr/local/bin/vim: vim-9.1.1706-no_x11
vim-9.1.1706-no_x11 vi clone with many additional features

Die Option -E sucht nach exaktem Pfad. Funktioniert nur für bereits installierte Dateien. Die Ausgabe zeigt Package-Namen und Beschreibung. Nützlich bei unbekannten Binaries oder Konfigurationsdateien.

pkg_delete - Software entfernen

Das Tool pkg_delete entfernt installierte Packages inklusive aller Dateien. Konfigurationsdateien bleiben optional erhalten.

Einzelnes Paket entfernen

Package deinstallieren:

$ doas pkg_delete nginx
nginx-1.28.0p1: ok
Read shared items: ok

Alle Dateien des Package werden komplett entfernt – auch modifizierte Konfigurationsdateien. Vor Deinstallation sollten wichtige Configs gesichert werden. “Read shared items” prüft ob andere Packages gemeinsame Dateien nutzen.

Abhängigkeits-Prüfung

Package mit Dependencies deinstallieren:i

$ doas pkg_delete mariadb-client
can't delete mariadb-client-11.4.9v1 without deleting mariadb-server-11.4.9v1 p5-DBD-MariaDB-1.23
Delete them as well ? [y/N/a] a
mariadb-server-11.4.9v1: ok
p5-DBD-MariaDB-1.23: ok
mariadb-client-11.4.9v1: ok
Read shared items: ok
--- -mariadb-server-11.4.9v1 -------------------
You should also run /usr/sbin/userdel _mysql
You should also run /usr/sbin/groupdel _mysql

Die Meldung zeigt abhängige Packages und fragt ob diese ebenfalls entfernt werden sollen:

  • y - Ja, diese Packages löschen (bei weiteren Konflikten wird erneut gefragt)
  • N - Nein, Abbruch ohne Änderungen (Standard)
  • a - All, diese und alle weiteren Konflikte automatisch mit “yes” beantworten

Packages löschen keine System-Benutzer oder -Gruppen automatisch. Die Nachricht am Ende zeigt manuelle Cleanup-Schritte.

Verwaiste Dependencies aufräumen

Nach Deinstallationen bleiben automatisch installierte Dependencies zurück. Diese löschen:

$ doas pkg_delete -a

Löscht alle Packages die:

  • Nur als Dependency installiert wurden (ohne @option manual-installation)
  • Nicht mehr von anderen Packages benötigt werden

Manuell installierte Packages bleiben erhalten.

Package mit automatischem Dependency-Cleanup

Package inklusive nicht mehr benötigter Dependencies entfernen:

$ doas pkg_delete -a htop

Löscht htop und räumt dessen automatisch installierte Dependencies auf - aber nur solche die nicht mehr von anderen Packages benötigt werden.

Updates und System-Wartung

OpenBSD unterscheidet zwischen Base-System-Updates und Package-Updates. Beide erfolgen getrennt über verschiedene Tools.

Package-Updates

Alle installierten Packages aktualisieren:

$ doas pkg_add -u
quirks-7.147 signed on 2025-12-14T12:31:29Z

Der Befehl prüft quirks, dann alle installierten Packages. Wenn keine Updates verfügbar sind, endet er ohne weitere Ausgabe.

Bei verfügbaren Updates erfolgt automatische Installation:

$ doas pkg_add -u
quirks-7.147 signed on 2025-12-14T12:31:29Z
nginx-1.26.3->1.28.0p1: ok
vim-9.1.1650->9.1.1706-no_x11: ok

Einzelnes Package aktualisieren:

$ doas pkg_add -u vim

Nur das spezifizierte Package wird geprüft und aktualisiert. Dependencies werden mitgezogen falls erforderlich.

Base-System-Updates

Security-Patches für Base-System:

$ doas syspatch
Get/Verify syspatch78-006_libunwind.tgz 100% |*********|  1669 KB    00:03
Installing patch 006_libunwind
Get/Verify syspatch78-007_drm.tgz 100% |**************|   264 KB    00:00
Installing patch 007_drm
Get/Verify syspatch78-010_unbound.tgz 100% |***********|  2953 KB    00:07
Installing patch 010_unbound
Get/Verify syspatch78-011_nd6.tgz 100% |**************| 77300       00:00
Installing patch 011_nd6
Relinking to create unique kernel... done; reboot to load the new kernel
Errata can be reviewed under /var/syspatch

Die Patches werden heruntergeladen, signaturgeprüft und installiert. Bei Kernel-Patches erscheint “reboot to load the new kernel” - Neustart ist notwendig. Userland-Patches aktivieren sich sofort.

System-Upgrade zwischen Major-Releases

OpenBSD bietet mehrere Methoden für Major-Release-Upgrades (7.7 → 7.8). Die Wahl hängt von den Anforderungen an Kontrolle und Automatisierung ab.

Automatisches Upgrade mit sysupgrade

Die einfachste Methode für System-Upgrades:

$ doas sysupgrade

sysupgrade lädt die neue Release-Version, verifiziert Signaturen und installiert automatisch. Der Prozess läuft unbeaufsichtigt mit mehreren Neustarts.

⚠️ Wichtig

Wichtig: sysupgrade installiert automatisch ALLE Installations-Sets, unabhängig von der ursprünglichen Installation. Ein minimal installierter Server erhält auch X11-Sets (~74 MB) und Games (~2.7 MB).

Für minimale Server-Installationen ist der Interactive Upgrade die bessere Wahl.

Interactive Upgrade mit Set-Auswahl

Der Interactive Upgrade ermöglicht die gezielte Auswahl einzelner Sets und eignet sich für minimale Server-Installationen ohne X11 und zusätzliche Komponenten.

Vorbereitung

1. Release-Informationen und Key-Fingerprint von openbsd.org holen:

Die offizielle OpenBSD-Website listet für jede Release die Signatur-Keys mit Fingerprints. Für OpenBSD 7.8:

https://www.openbsd.org/78.html ↗

Unter “signify(1) pubkeys for this release” findet sich:

openbsd-78-base.pub: RWS3/nvFmk4SWSmt/5QIk9yB4+uoAGoiYvFhVlDQBG3rWENeeIys0LWB

Dieser Fingerprint wird später zur Verifikation benötigt.

2. Installer-Kernel und Signatur-Datei downloaden:

Die Dateien liegen auf den OpenBSD-Mirrors. Für amd64-Systeme:

$ cd /tmp
$ ftp https://cdn.openbsd.org/pub/OpenBSD/7.8/amd64/bsd.rd
$ ftp https://cdn.openbsd.org/pub/OpenBSD/7.8/amd64/SHA256.sig

Für andere Architekturen die passende Plattform wählen (arm64, i386, etc.). Die vollständige Liste der verfügbaren Architekturen findet sich auf:

https://cdn.openbsd.org/pub/OpenBSD/7.8/ ↗

3. Öffentlichen Schlüssel der Ziel-Version downloaden:

Die Signatur-Keys liegen eine Verzeichnis-Ebene höher als die architektur-spezifischen Dateien:

$ ftp https://cdn.openbsd.org/pub/OpenBSD/7.8/openbsd-78-base.pub

Wichtig: Die URL endet mit /7.8/, nicht mit /7.8/amd64/. Die Keys gelten für alle Architekturen.

4. Key-Fingerprint verifizieren:

Der heruntergeladene Key muss gegen den Fingerprint von openbsd.org geprüft werden:

$ cat /tmp/openbsd-78-base.pub
untrusted comment: openbsd 7.8 base public key
RWS3/nvFmk4SWSmt/5QIk9yB4+uoAGoiYvFhVlDQBG3rWENeeIys0LWB

Die zweite Zeile muss exakt mit dem Fingerprint von openbsd.org/78.html übereinstimmen. Bei Abweichung ist der Key nicht vertrauenswürdig – Download wiederholen oder anderen Mirror verwenden.

5. Installer-Kernel verifizieren:

Mit dem verifizierten Key kann bsd.rd geprüft werden:

$ signify -C -p /tmp/openbsd-78-base.pub -x /tmp/SHA256.sig /tmp/bsd.rd
Signature Verified
bsd.rd: OK

Nur bei erfolgreicher Verifikation weitermachen. Fehlgeschlagene Verifikation deutet auf manipulierte oder korrupte Dateien hin.

6. Installer-Kernel ins Root-Dateisystem kopieren:

$ doas cp /tmp/bsd.rd /bsd.rd

Upgrade durchführen

System neu starten und beim Boot-Prompt den Installer-Kernel laden:

boot> boot /bsd.rd

Der OpenBSD-Installer startet und fragt nach der gewünschten Aktion. (U)pgrade wählen für System-Upgrade.

Set-Auswahl

Der Installer zeigt alle verfügbaren Sets mit ihrem aktuellen Status:

Select sets by entering a set name, a file name pattern or 'all'.
De-select sets by prepending a '-', e.g.: '-game*'. Selected sets are
labelled '[X]'.

Set name(s)? (or 'abort' or 'done') [done]
[X] bsd          [X] base78.tgz   [ ] game78.tgz   [ ] xfont78.tgz
[X] bsd.mp       [X] comp78.tgz   [ ] xbase78.tgz  [ ] xserv78.tgz
[X] bsd.rd       [X] man78.tgz    [ ] xshare78.tgz

[X] markiert Sets die installiert werden, [ ] übersprungene Sets.

Für minimale Server-Installationen X11 und Games abwählen:

Set name(s)? -game78.tgz -xbase78.tgz -xfont78.tgz -xserv78.tgz -xshare78.tgz

Die Sets wechseln von [X] zu [ ]. Mit done bestätigen und das Upgrade startet.

Der Installer lädt nur die ausgewählten Sets, verifiziert Signaturen und installiert sie. Dies spart ~115 MB Festplattenplatz und reduziert die Angriffsfläche auf Server-Systemen.

Nach dem Upgrade

Das System bootet automatisch mit der neuen Version. Nach dem ersten Login:

1. Konfigurationsdateien zusammenführen:

$ doas sysmerge

sysmerge vergleicht System-Konfigurationen mit neuen Defaults und bietet Merge-Optionen für geänderte Dateien an.

2. Binary-Patches installieren:

$ doas syspatch

Installiert verfügbare Security-Patches für die neue Release-Version.

3. Third-Party-Packages aktualisieren:

$ doas pkg_add -u

Base-System und Packages sind versionsgebunden – nach einem Major-Release müssen alle Packages auf die neue Version aktualisiert werden.

Manual Upgrade

Für maximale Kontrolle und komplexe Szenarien bietet OpenBSD die manuelle Upgrade-Methode. Diese erlaubt Set-Auswahl ohne bsd.rd-Boot und eignet sich für Remote-Systeme oder spezielle Anforderungen.

Die vollständige Anleitung findet sich im separaten Artikel Manual System-Upgrade (geplant).

💡 Tipp

Methodenvergleich:

  • sysupgrade: Einfachste Methode, installiert alle Sets
  • Interactive Upgrade: Set-Auswahl, ideal für minimale Server
  • Manual Upgrade: Maximale Kontrolle, komplex (siehe separater Artikel)

Für produktive Server ohne X11 ist der Interactive Upgrade die empfohlene Methode.

Alte Package-Versionen entfernen

Nach Updates bleiben alte Package-Dateien unter /usr/local:

$ doas pkg_delete -a

Entfernt verwaiste Dependencies und alte Versionen. Spart Festplattenplatz und reduziert Verwirrung bei manuellen Eingriffen.


Verwendete Informationen

Diese Anleitung bezieht sich auf:

  • OpenBSD: 7.7, 7.8
  • Architektur: amd64 (primär), allgemeine Konzepte gelten für alle Plattformen
  • Kontext: Server- und Desktop-Installation
  • Stand: November 2025

Die Paketverwaltung ermöglicht flexible Software-Installation auf OpenBSD-Systemen. Der nächste Artikel behandelt die Sicherheitsarchitektur – pledge, unveil und die fundamentalen Security-Features des Systems.

michael von den Drachen

40 Jahre mit Systemen - von Großprojekten bis eigene Projekte. Baut, betreibt, hinterfragt. Teilt Erfahrungen zwischen Technik und Philosophie.
Mehr über michael →
OpenBSD: Paketverwaltung und Software-Installation
Vorheriger Artikel → OpenBSD: Systemkonfiguration nach der Installation