Wenn FreeBSD 15.0 in einigen Monaten erscheint, wird es das Basisystem als Pakete ausliefern.
PKGBASE bedeutet die wohl größte Umstellung in der täglichen Arbeit mit FreeBSD seit vielen Jahren. Vor allem hebt es die bisher klare Trennung
zwischen Basissystem und Ports auf. In Zukunft sind alles Pakete. Darüber gab es in den letzten Monaten, nachdem klar wurde, das PKGBASE kommen wird, einige emotionale Diskussionen auf den Maillingslisten.
In Vorbereitung auf FreeBSD 15.0 und die damit verbundene, notwendige Anpassung unseres internen Toolings auf PKGBASE habe ich viel damit
beschäftigt. Ich möchte in diesem Beitrag meine Erfahrungen teilen und die nach dem Release von 15.0 kommenden Fragen etwas vorwegzunehmen. Und auch um zu sensibilisieren, dass 15.0 für viele Anwender nicht einfach ein weiteres Updates wird, sondern Vorbereitung braucht.
Ich möchte nicht auf das Für und Wider von PKGBASE eingehen. Das ist an anderen Stellen schon endlos diskutiert worden. Es kommt und mehr muss man an grundsätzlichen Dingen dazu nicht mehr sagen. Nur so viel: Zwar ist PKGBASE am Anfang ungewohnt, weil sich FreeBSD damit viel mehr wie ein modernes Linux verhält. Man merkt aber schnell, dass es viele Dinge einfacher macht und zumindest für mich den anfänglichen Schmerz wert ist.
Mit 15.0 kann bzw. wird:
Vorhandene Systeme können mit einem Script
Was passiert denn nun genau? Ab 15.0 gibt es drei Repos für
Dazu hat
Außerdem verschwinden
Nach der Installation sieht es so aus:
Es sind so viele Pakete, da man erreichen möchte, dass nicht mehr jeder Nutzer zwingend das komplette Basisystem installieren muss. Für normale Systeme ist das eher uninteressant, aber so lassen sich z.B. schlanke Jails erstellen.
Weil niemand mit so vielen Paketen arbeiten will und es einen Weg geben muss, in der Zukunft hinzukommende Pakete automatisch zu installieren
bzw. weggefallene Pakete zu deinstallieren, gibt es eine Metapakete. Sie werden als Sets bezeichnet. In meinem Beispiel is nur eines
installiert:
Die anderen Sets sind:
Sets sind als vital markiert, sodass das vollständige Basisystem (die Sets selber und alle anderen Komponenten als deren Abhängigkeiten) aufkeinen Fall deinstalliert werden.
Updates innerhalbs eines Releases sind dann:
Ein Update auf ein neues FreeBSD-Release ist dann:
Wenn man nicht reinstallieren, sondern konvertieren möchte, sollte man zuerst mit
aktualisieren. Danach ein ein Backup machen! Wirklich. Macht ein Backup! Kein Backup, kein Mitleid. Anschließend pkgbasify wie unter
https://github.com/FreeBSDFoundation/pkgbasify beschrieben ausführen. Sprich es einmal laufen lassen, bei Abbrüchen die Ursache beheben und einen neuen Versuch starten. Bis man am Ende angekommen ist. Danach wie oben beschrieben mit
Ich merge Configs so:
Ich finde es tatsächlich schöner als
freebsd-update und co. werden verschwinden. Sprich das lange erwartete PKGBASE ist endlich da.PKGBASE bedeutet die wohl größte Umstellung in der täglichen Arbeit mit FreeBSD seit vielen Jahren. Vor allem hebt es die bisher klare Trennung
zwischen Basissystem und Ports auf. In Zukunft sind alles Pakete. Darüber gab es in den letzten Monaten, nachdem klar wurde, das PKGBASE kommen wird, einige emotionale Diskussionen auf den Maillingslisten.
In Vorbereitung auf FreeBSD 15.0 und die damit verbundene, notwendige Anpassung unseres internen Toolings auf PKGBASE habe ich viel damit
beschäftigt. Ich möchte in diesem Beitrag meine Erfahrungen teilen und die nach dem Release von 15.0 kommenden Fragen etwas vorwegzunehmen. Und auch um zu sensibilisieren, dass 15.0 für viele Anwender nicht einfach ein weiteres Updates wird, sondern Vorbereitung braucht.
Ich möchte nicht auf das Für und Wider von PKGBASE eingehen. Das ist an anderen Stellen schon endlos diskutiert worden. Es kommt und mehr muss man an grundsätzlichen Dingen dazu nicht mehr sagen. Nur so viel: Zwar ist PKGBASE am Anfang ungewohnt, weil sich FreeBSD damit viel mehr wie ein modernes Linux verhält. Man merkt aber schnell, dass es viele Dinge einfacher macht und zumindest für mich den anfänglichen Schmerz wert ist.
Mit 15.0 kann bzw. wird:
- Das Basissystem kann weiterhin wie gehabt mit
make buildworldgebaut werden. Wird es mitmake installworldinstalliert, verhält es sich wie bisher. Es ist nicht in Pakete zerlegt und wird nicht mitpkgverwaltet. - Stattdessen können mit
make packagesPakete erstellt werden, die anschließend lokal oder über einen HTTP-Server auf anderen Systemen mitpkginstalliert und verwaltet werden können. freebsd-updatewird verschwinden und durch ein offizielles Repo für PKGBASE ersetzt werden. tatsächlich gibt es dieses offizielle Repo schon seit einigen Jahren seit ich glaube 13.0. Es wurde bisher nur wenig genutzt.- Eventuell wird
freebsd-updatedurch einen Wrapper ersetzt werden, sodass der Workflow zumindest teilweise gleich bleiben kann. Ich würde aber davon abraten den zu nutzen, sondern die Workflows anpassen. Denn nur so kann man die Vorteile von PKGBASE wirklich nutzen.
Vorhandene Systeme können mit einem Script
pkgbasify vom klassischen Weg auf PKGBASE konvertiert werden. Generell würde ich meiner Erfahrung nach:- Wenn möglich reinstallieren. Das ist oft schneller und robuster. Vor allem, wenn das jeweilige System eh unter Configmanagement ist (und
das wird es bei Servern im Jahr 2025 hoffentlich sein) und man nach der Reinstallation nur einmal neu deployen muss. - Nur dann konvertieren, wenn eine Reinstallation aufwändig ist.
Was passiert denn nun genau? Ab 15.0 gibt es drei Repos für
pkg:-
FreeBSD-portssind die ganz normalen, seit Jahren bekannten Pakete. Bisher hieß dieses Repo nurFreeBSD. Ich erwähne das, weil es unten wichtig wird. - Schon mit FreeBSD 14.3 kam
FreeBSD-kmodhinzu, was aus den Ports gebaute Kernelmodule beinhaltet. - Neu ist
FreeBSD-base, was das Basissystem beihnaltet.
Dazu hat
pkg in den letzten Monaten bis Jahren nach und nach einige neue Optionen bekomen, um die Arbeit mit dem Basissystem zu erleichtern. Wichtig sind vor allem zwei:- Bei vielen Operationen kann man mit
--repositorydas Repo, dessen Pakete aktualisiert oder installiert werden auswählen. So lässt sich das Basisystem weiterhin getrennt von den Ports behandeln. - Einzelen Pakete können als vital markiert werden.
pkgwird diese Pakete und ihre Abhängigkeiten niemals deinstallieren. Das verhindert, dass das Basisystem als Ganzes oder wesentliche Teile davon entfernt und das System damit zerstört wird.
Außerdem verschwinden
etcupdate und das nie wirklich gestorbenemergemaster. Geänderte Configdateien werden durch pkg wie schon jetzt bei Ports automatisch gemerged. Ist ein Merge nicht möglich, wird die neue Version mit der Endung .pkgsave daneben gelegt und muss anschließend manuell gemerged werden. Linuxnutzer kennen das bereits.Nach der Installation sieht es so aus:
Code:
% pkg info | grep FreeBSD
FreeBSD-acct-15.0.a2.20250919040617 System Accounting Utilities
FreeBSD-acpi-15.0.a2.20250919040617 ACPI Utilities
FreeBSD-apm-15.0.a2.20250919040617 APM Utilities
FreeBSD-at-15.0.a2.20250919040617 AT Utilities
FreeBSD-atf-15.0.a2.20250919040617 Automated Testing Framework
FreeBSD-atf-dev-15.0.a2.20250919040617 Automated Testing Framework (development files)
FreeBSD-atf-lib-15.0.a2.20250919040617 Automated Testing Framework (libraries)
FreeBSD-audit-15.0.a2.20250919040617 OpenBSM auditing utilities
FreeBSD-audit-dev-15.0.a2.20250912171634 OpenBSM auditing utilities (development files)
FreeBSD-autofs-15.0.a2.20250919040617 Autofs Utilities
FreeBSD-bhyve-15.0.a2.20250919040617 Bhyve Utilities
FreeBSD-blocklist-15.0.a2.20250919040617 Blocklist Utilities
FreeBSD-blocklist-dev-15.0.a2.20250912171634 Blocklist Utilities (development files)
FreeBSD-bluetooth-15.0.a2.20250919040617 Bluetooth Utilities
FreeBSD-bluetooth-dev-15.0.a2.20250912171634 Bluetooth Utilities (development files)
FreeBSD-bmake-15.0.a2.20250919040617 Program maintenance utility
FreeBSD-bootloader-15.0.a2.20250919040617 Bootloader
FreeBSD-bootloader-dev-15.0.a2.20250912171634 Bootloader (development files)
FreeBSD-bsdconfig-15.0.a2.20250919040617 System configuration utility
FreeBSD-bsdinstall-15.0.a2.20250919040617 BSDInstall Utilities
FreeBSD-bsnmp-15.0.a2.20250919040617 BSNMP Utilities
FreeBSD-bsnmp-dev-15.0.a2.20250912171634 BSNMP Utilities (development files)
FreeBSD-caroot-15.0.a2.20250912171634 SSL Certificates
FreeBSD-ccdconfig-15.0.a2.20250919040617 Concatenated disk driver (ccd) configuration utility
FreeBSD-certctl-15.0.a2.20250919040617 SSL Certificate Utility
FreeBSD-clang-15.0.a2.20250919040617 Clang Utilities
FreeBSD-clang-dev-15.0.a2.20250912171634 Clang Utilities (development files)
FreeBSD-clibs-15.0.a2.20250919040617 Core C Libraries
FreeBSD-clibs-dev-15.0.a2.20250919101318 Core C Libraries (development files)
FreeBSD-clibs-lib32-15.0.a2.20250919040617 Core C Libraries (32-bit libraries)
FreeBSD-console-tools-15.0.a2.20250919040617 Console Utilities
FreeBSD-cron-15.0.a2.20250919040617 cron(8) and crontab(1)
FreeBSD-csh-15.0.a2.20250919040617 C Shell
FreeBSD-ctf-tools-15.0.a2.20250919040617 CTF Utilities
FreeBSD-ctl-15.0.a2.20250919040617 CAM Target Layer
FreeBSD-cxgbe-tools-15.0.a2.20250919040617 Chelsio cxbge Utilities
FreeBSD-devd-15.0.a2.20250919040617 Devd Utility and scripts
FreeBSD-devmatch-15.0.a2.20250919040617 Automatically load kernel drivers for attached hardware
FreeBSD-devmatch-dev-15.0.a2.20250912171634 Devmatch Utility (development files)
FreeBSD-dhclient-15.0.a2.20250919040617 DHCP Client
FreeBSD-dma-15.0.a2.20250919040617 DragonFly Mail Agent
FreeBSD-dtrace-15.0.a2.20250919040617 Dtrace Utilities
FreeBSD-dtrace-dev-15.0.a2.20250914025216 Dtrace Utilities (development files)
FreeBSD-dwatch-15.0.a2.20250919040617 Dwatch Utilities
FreeBSD-ee-15.0.a2.20250919040617 Easy Editor Utilities
FreeBSD-efi-tools-15.0.a2.20250919040617 UEFI Utilities
FreeBSD-efi-tools-dev-15.0.a2.20250912171634 UEFI Utilities (development files)
FreeBSD-examples-15.0.a2.20250912171634 Examples in /usr/share/examples
FreeBSD-fd-15.0.a2.20250919040617 Floppy disk support
FreeBSD-fetch-15.0.a2.20250919040617 Retrieve a file from a remote URL
FreeBSD-fetch-dev-15.0.a2.20250912171634 Fetch Utility (development files)
FreeBSD-firmware-iwm-15.0.a2.20250912171634 iwm(4) firmwares
FreeBSD-ftp-15.0.a2.20250919040617 FTP Utilities
FreeBSD-ftpd-15.0.a2.20250919040617 FTP Daemon
FreeBSD-fwget-15.0.a2.20250919040617 Install firmware packages for the running system
FreeBSD-games-15.0.a2.20250919040617 Games
FreeBSD-geom-15.0.a2.20250919040617 GEOM configuration utilities
FreeBSD-ggate-15.0.a2.20250919040617 GEOM Gate Utilities
FreeBSD-gssd-15.0.a2.20250919040617 gssd(8) daemon for kernel GSS-API
FreeBSD-hast-15.0.a2.20250919040617 Highly Available Storage daemon
FreeBSD-hostapd-15.0.a2.20250919040617 802.11 Access Point Daemon an Utilities
FreeBSD-hyperv-tools-15.0.a2.20250919040617 Microsoft Hyper-V utilities
FreeBSD-inetd-15.0.a2.20250919040617 Internet super-server
FreeBSD-ipf-15.0.a2.20250919040617 IP Filter (ipf) packet filter management tools
FreeBSD-ipfw-15.0.a2.20250919040617 ipfw (IP firewall) management utilities
FreeBSD-iscsi-15.0.a2.20250919040617 iSCSI target, initiator, and management tools
FreeBSD-jail-15.0.a2.20250919040617 Jail Utilities
FreeBSD-kerberos-15.0.a2.20250919040617 Kerberos utilities
FreeBSD-kerberos-dev-15.0.a2.20250912171634 Kerberos utilities (development files)
FreeBSD-kerberos-kdc-15.0.a2.20250919040617 Kerberos key distribution center
FreeBSD-kerberos-lib-15.0.a2.20250912171634 Kerberos utilities (libraries)
FreeBSD-kernel-generic-15.0.a2.20250919101318 FreeBSD GENERIC Kernel
FreeBSD-kernel-man-15.0.a2.20250918141646 Kernel manual pages
FreeBSD-kyua-15.0.a2.20250919040617 Testing framework for infrastructure software
FreeBSD-lib9p-15.0.a2.20250915044833 9P network protocol library
FreeBSD-lib9p-dev-15.0.a2.20250915044833 9P network protocol library (development files)
FreeBSD-libarchive-15.0.a2.20250919040617 Archive handling library
FreeBSD-libarchive-dev-15.0.a2.20250912171634 Archive handling library (development files)
FreeBSD-libbegemot-15.0.a2.20250919040617 rpoll(3) interface for event-driven I/O
FreeBSD-libbegemot-dev-15.0.a2.20250912171634 rpoll(3) interface for event-driven I/O (development files)
FreeBSD-libblocksruntime-15.0.a2.20250912171634 LLVM BlocksRuntime library
FreeBSD-libblocksruntime-dev-15.0.a2.20250912171634 LLVM BlocksRuntime library (development files)
FreeBSD-libbsdstat-15.0.a2.20250912171634 Periodic statistics library
FreeBSD-libbsdstat-dev-15.0.a2.20250912171634 Periodic statistics library (development files)
FreeBSD-libbsm-15.0.a2.20250919040617 Basic Security Module (BSM) audit library
FreeBSD-libbsm-dev-15.0.a2.20250912171634 Basic Security Module (BSM) audit library (development files)
FreeBSD-libbz2-15.0.a2.20250912171634 bzip2 compression library
FreeBSD-libbz2-dev-15.0.a2.20250912171634 bzip2 compression library (development files)
FreeBSD-libcasper-15.0.a2.20250919040617 Casper library
FreeBSD-libcasper-dev-15.0.a2.20250912171634 Casper library (development files)
FreeBSD-libcompat-15.0.a2.20250919040617 Compatibility library
FreeBSD-libcompat-dev-15.0.a2.20250912171634 Compatibility library (development files)
FreeBSD-libcompiler_rt-dev-15.0.a2.20250912171634 LLVM compiler_rt library (development files)
FreeBSD-libcuse-15.0.a2.20250919040617 Userland character device library
FreeBSD-libcuse-dev-15.0.a2.20250912171634 Userland character device library (development files)
FreeBSD-libdwarf-15.0.a2.20250919040617 DWARF access library
FreeBSD-libdwarf-dev-15.0.a2.20250912171634 DWARF access library (development files)
FreeBSD-libevent1-15.0.a2.20250915044833 Private libevent1 library
FreeBSD-libevent1-dev-15.0.a2.20250915044833 Private libevent1 library (development files)
FreeBSD-libexecinfo-15.0.a2.20250919040617 NetBSD stack backtrace library
FreeBSD-libexecinfo-dev-15.0.a2.20250912171634 NetBSD stack backtrace library (development files)
FreeBSD-libipt-15.0.a2.20250912171634 Intel(R) Processor Trace decoder library
FreeBSD-libipt-dev-15.0.a2.20250912171634 Intel(R) Processor Trace decoder library (development files)
FreeBSD-libldns-15.0.a2.20250912171634 NLnet Labs LDNS library
FreeBSD-libldns-dev-15.0.a2.20250912171634 NLnet Labs LDNS library (development files)
FreeBSD-liblzma-15.0.a2.20250912171634 XZ LZMA library
FreeBSD-liblzma-dev-15.0.a2.20250912171634 XZ LZMA library (development files)
FreeBSD-libmagic-15.0.a2.20250919040617 Magic number recognition library
FreeBSD-libmagic-dev-15.0.a2.20250912171634 Magic number recognition library (development files)
FreeBSD-libmilter-15.0.a2.20250912171634 sendmail Mail Filter API library
FreeBSD-libmilter-dev-15.0.a2.20250912171634 sendmail Mail Filter API library (development files)
FreeBSD-libpathconv-15.0.a2.20250919040617 Library for handling relative and absolute pathnames
FreeBSD-libpathconv-dev-15.0.a2.20250912171634 Library for handling relative and absolute pathnames (development files)
FreeBSD-librpcsec_gss-15.0.a2.20250919040617 RPC GSS-API authentication library
FreeBSD-librpcsec_gss-dev-15.0.a2.20250912171634 RPC GSS-API authentication library (development files)
FreeBSD-librss-15.0.a2.20250912171634 Receive-side scaling library
FreeBSD-librss-dev-15.0.a2.20250912171634 Receive-side scaling library (development files)
FreeBSD-libsdp-15.0.a2.20250919040617 Bluetooth Service Discovery Protocol library
FreeBSD-libsdp-dev-15.0.a2.20250918110710 Bluetooth Service Discovery Protocol library (development files)
FreeBSD-libsqlite3-15.0.a2.20250912171634 Private SQLite library
FreeBSD-libsqlite3-dev-15.0.a2.20250912171634 Private SQLite library (development files)
FreeBSD-libstdbuf-15.0.a2.20250919040617 Preloaded library to change standard streams initial buffering
FreeBSD-libstdbuf-dev-15.0.a2.20250912171634 Preloaded library to change standard streams initial buffering (development files)
FreeBSD-libstdthreads-15.0.a2.20250919040617 C11 threading library
FreeBSD-libstdthreads-dev-15.0.a2.20250912171634 C11 threading library (development files)
FreeBSD-libthread_db-15.0.a2.20250912171634 Library for interacting with threaded processes
FreeBSD-libthread_db-dev-15.0.a2.20250912171634 Library for interacting with threaded processes (development files)
FreeBSD-libucl-15.0.a2.20250919040617 Private Universal Configuration Library (UCL) library
FreeBSD-libucl-dev-15.0.a2.20250912171634 Private Universal Configuration Library (UCL) library (development files)
FreeBSD-libvgl-15.0.a2.20250919040617 Video Graphics Library
FreeBSD-libvgl-dev-15.0.a2.20250912171634 Video Graphics Library (development files)
FreeBSD-libvmmapi-15.0.a2.20250912171634 Front-end to vmm(4) virtualization driver
FreeBSD-libvmmapi-dev-15.0.a2.20250912171634 Front-end to vmm(4) virtualization driver (development files)
FreeBSD-liby-dev-15.0.a2.20250912171634 YACC library (development files)
FreeBSD-libyaml-15.0.a2.20250912171634 Private YAML library
FreeBSD-libyaml-dev-15.0.a2.20250912171634 Private YAML library (development files)
FreeBSD-lld-15.0.a2.20250919040617 ELF linker from the LLVM project
FreeBSD-lldb-15.0.a2.20250919040617 LLVM debugger
FreeBSD-lldb-dev-15.0.a2.20250912171634 LLVM debugger (development files)
FreeBSD-locales-15.0.a2.20250912171634 Locale definitions
FreeBSD-lp-15.0.a2.20250919040617 Printer subsystem
FreeBSD-mandoc-15.0.a2.20250919040617 Online manual page reader
FreeBSD-mlx-tools-15.0.a2.20250919040617 Mellanox Utilities
FreeBSD-mtree-15.0.a2.20250919172630 MTREE Files
FreeBSD-natd-15.0.a2.20250919040617 Network Address Translation (NAT) daemon for ipfw
FreeBSD-natd-dev-15.0.a2.20250912171634 Network Address Translation (NAT) daemon for ipfw (development files)
FreeBSD-netmap-15.0.a2.20250919040617 Netmap Library and Utilities
FreeBSD-netmap-dev-15.0.a2.20250912171634 Netmap Library and Utilities (development files)
FreeBSD-newsyslog-15.0.a2.20250919040617 Create and rotate system log files
FreeBSD-nfs-15.0.a2.20250919040617 NFS Utilities
FreeBSD-ntp-15.0.a2.20250919040617 Network Time Protocol server and client
FreeBSD-nuageinit-15.0.a2.20250919040617 CloudInit support scripts
FreeBSD-nvme-tools-15.0.a2.20250919040617 NVME Utilities
FreeBSD-openssl-15.0.a2.20250919040617 OpenSSL Utility
FreeBSD-openssl-dev-15.0.a2.20250912171634 OpenSSL Utility (development files)
FreeBSD-openssl-lib-15.0.a2.20250912171634 OpenSSL Utility (libraries)
FreeBSD-periodic-15.0.a2.20250919040617 Run periodic system functions
FreeBSD-pf-15.0.a2.20250919040617 OpenBSD packet filter
FreeBSD-pf-dev-15.0.a2.20250912171634 OpenBSD packet filter (development files)
FreeBSD-pkg-bootstrap-15.0.a2.20250919040617 pkg(7) bootstrap utility
FreeBSD-ppp-15.0.a2.20250919040617 Userland PPP implementation
FreeBSD-quotacheck-15.0.a2.20250919040617 Filesystem quota consistency checker
FreeBSD-rc-15.0.a2.20250919040617 rc(8) subsystem
FreeBSD-rcmds-15.0.a2.20250919040617 BSD/SunOS remote status commands
FreeBSD-rdma-15.0.a2.20250919040617 RDMA Utilities
FreeBSD-rescue-15.0.a2.20250918162547 Rescue Utilities
FreeBSD-resolvconf-15.0.a2.20250919040617 A framework for managing multiple DNS configurations
FreeBSD-rip-15.0.a2.20250919040617 RIP routing protocol
FreeBSD-runtime-15.0.a2.20250919040617 Core system
FreeBSD-runtime-dev-15.0.a2.20250918085708 FreeBSD Base System (development files)
FreeBSD-sendmail-15.0.a2.20250919040617 sendmail mail transport agent
FreeBSD-set-base-15.0.a2.20250919040617 Base system (metapackage)
FreeBSD-set-devel-15.0.a2.20250919040617 Development tools (metapackage)
FreeBSD-set-minimal-15.0.a2.20250919040617 Basic multi-user system (metapackage)
FreeBSD-smbutils-15.0.a2.20250919040617 SMB Utilities
FreeBSD-smbutils-dev-15.0.a2.20250912171634 SMB Utilities (development files)
FreeBSD-ssh-15.0.a2.20250919040617 Secure Shell Utilities
FreeBSD-ssh-dev-15.0.a2.20250912171634 Secure Shell Utilities (development files)
FreeBSD-syscons-data-15.0.a2.20250912171634 syscons(4) fonts and keymaps
FreeBSD-syslogd-15.0.a2.20250919040617 System logging daemon
FreeBSD-tcpd-15.0.a2.20250919040617 TCP Wrapper utilities
FreeBSD-tcpd-dev-15.0.a2.20250912171634 TCP Wrapper utilities (development files)
FreeBSD-telnet-15.0.a2.20250919040617 Telnet client
FreeBSD-toolchain-15.0.a2.20250919040617 Utilities for program development
FreeBSD-toolchain-dev-15.0.a2.20250912171634 Utilities for program development (development files)
FreeBSD-ufs-15.0.a2.20250919040617 UFS Libraries and Utilities
FreeBSD-ufs-dev-15.0.a2.20250919040617 UFS Libraries and Utilities (development files)
FreeBSD-ufs-lib-15.0.a2.20250919040617 UFS Libraries and Utilities (libraries)
FreeBSD-unbound-15.0.a2.20250919040617 Unbound DNS Resolver
FreeBSD-unbound-dev-15.0.a2.20250916142656 Unbound DNS Resolver (development files)
FreeBSD-utilities-15.0.a2.20250919195855 Non-vital programs and libraries
FreeBSD-utilities-dev-15.0.a2.20250915044833 Non-vital programs and libraries (development files)
FreeBSD-vi-15.0.a2.20250919040617 Text editor
FreeBSD-vt-data-15.0.a2.20250912171634 vt(4) fonts and keymaps
FreeBSD-wpa-15.0.a2.20250919040617 802.11 Supplicant
FreeBSD-yp-15.0.a2.20250919040617 Yellow Pages (YP) / Network Information Service (NIS)
FreeBSD-zfs-15.0.a2.20250919040617 ZFS Libraries and Utilities
FreeBSD-zfs-dev-15.0.a2.20250919040617 ZFS Libraries and Utilities (development files)
FreeBSD-zfs-lib-15.0.a2.20250919040617 ZFS Libraries and Utilities (libraries)
FreeBSD-zoneinfo-15.0.a2.20250912171634 Timezone database
Es sind so viele Pakete, da man erreichen möchte, dass nicht mehr jeder Nutzer zwingend das komplette Basisystem installieren muss. Für normale Systeme ist das eher uninteressant, aber so lassen sich z.B. schlanke Jails erstellen.
Weil niemand mit so vielen Paketen arbeiten will und es einen Weg geben muss, in der Zukunft hinzukommende Pakete automatisch zu installieren
bzw. weggefallene Pakete zu deinstallieren, gibt es eine Metapakete. Sie werden als Sets bezeichnet. In meinem Beispiel is nur eines
installiert:
- FreeBSD-set-base: Das vollständige Basisystem. Beinhaltet Abhängigkeiten auf die meisten anderen Sets.
Die anderen Sets sind:
- FreeBSD-set-base-dbg: Debugsymbole für das Basisystem
- FreeBSD-set-devel: Entwicklertools
- FreeBSD-set-devel-dbg: Debugsymbole für ENtwicklertools
- FreeBSD-set-kernels: GENERIC und alternativer Kernel wie MINIMAL
- FreeBSD-set-kernels-dbg: Debugsymbole für Kernel
- FreeBSD-set-lib32: 32 Bit Kompatibilität
- FreeBSD-set-lib32-dbg: Debugsymbole für 32 Bit Kompatibilität
- FreeBSD-set-minimal: Minimal lauffähiges Basissystem
- FreeBSD-set-minimal-dbg: Debugsymbole für das minimale Basisystem
- FreeBSD-set-minimal-jail: Minimal lauffähiges Basissystem für Jails
- FreeBSD-set-minimal-jail-dbg: Debugsymbole für minimale Jails
- FreeBSD-set-src: /usr/src
- FreeBSD-set-tests: /usr/lib/tests
Sets sind als vital markiert, sodass das vollständige Basisystem (die Sets selber und alle anderen Komponenten als deren Abhängigkeiten) aufkeinen Fall deinstalliert werden.
Updates innerhalbs eines Releases sind dann:
pkg update ; pkg upgradeaktualisiert alle Ports und das Basisystem.pkg --repository FreeBSD-base update ; pkg --repository FreeBSD-base upgradeaktualisiert nur das Basisystem.-
pkg --repository FreeBSD-ports update ; pkg --repository FreeBSD-ports upgradeaktualisiert nur nur die Ports.
Ein Update auf ein neues FreeBSD-Release ist dann:
- Passe die Versionsnummer in /etc/pkg/FreeBSD.conf an.
-
pkg --repository FreeBSD-base update - Zuerst den Kernel:
pkg upgrade FreeBSD-kernel-generic -
shutdown -r now - Dann das Basissystem:
pkg-static --repository FreeBSD-base upgrade - Und zum Schluss den Rest:
pkg-static upgrade -
shutdown -r now
Wenn man nicht reinstallieren, sondern konvertieren möchte, sollte man zuerst mit
freebsd-upgrade auf FreeBSD 14.3 mit allen Updatesaktualisieren. Danach ein ein Backup machen! Wirklich. Macht ein Backup! Kein Backup, kein Mitleid. Anschließend pkgbasify wie unter
https://github.com/FreeBSDFoundation/pkgbasify beschrieben ausführen. Sprich es einmal laufen lassen, bei Abbrüchen die Ursache beheben und einen neuen Versuch starten. Bis man am Ende angekommen ist. Danach wie oben beschrieben mit
pkg von 14.3 auf 15.0 aktualisieren.Ich merge Configs so:
-
find / -name "*pkgsave" - Alle Funde mit
vimdiffbehandeln. -
find / -name "*pkgsave" -delete
Ich finde es tatsächlich schöner als
etcupdate und co. da vimdiffein um Welten besseres Mergetool ist.
Zuletzt bearbeitet:
