Let me put this into first sentence to make things clear – I like PKGBASE and I think it is improvement over freebsd-update(8) and base.txz and kernel.txz – what we currently have in FreeBSD. All the issues will be resolved in time and if You want to play safe you can still use the classic way of FreeBSD life over entire 15.x FreeBSD line.

The Table of Contents for the article.
- Divided
- Discussions
- Problem to Solve
- Warning
- Install
- Documentation
- New PKGBASE Distribution Sets
- Minimal RAM Requirements
- Base Install
- Repositories
- Updating
- Vital
- PKGBASE Jails
- Additional Independent Rescue
- In the Works …
All of the information here is based on the FreeBSD 15.0-BETA2 version but I will update the info as new things are introduced.

Also … as now the base.txz is spread over about 200 or so pkg(8) packages – you will be able to either install everything – like with base.txz or install and maintain only parts that you really need. Do not need compilers? Remove them. Do not want to have documentation/man pages/examples? Uninstall.
Its just important to remember that after you switch any of your FreeBSD systems to PKGBASE – to also switch mentally – to not do several things that you have done in the past in the old ‘classic’ world.
Now …
Divided
I do not remember last time when entire FreeBSD community was more divided in one single concept.

The PKGBASE concept.
FreeBSD concept with which everything is handled by one pkg(8) command – for both Base System and third party packages.
Similar to dnf(8) or apt(8) from the Linux world.
Some time ago I even made a poll on both X/Twitter and Bluesky platforms.
The question was:
– one pkg(8) command for FreeBSD Base System and third party packages.
– separate pkgbase(8) command for FreeBSD Base System and pkg(8) for third party packages.
Results are below.

More or less 50% for each option.

Discussions
I also do not remember when single topic covered most of the Mailing Lists discussions with such coverage.
Below are screenshots or freebsd-pkgbase and freebsd-stable lists.

While I like the PKGBASE concept because now the freebsd-update(8) process is very long over large upgrades and also very interactive – besides other things PKGBASE also solves these two … but it comes at a price.
Problem to Solve
Some may ask what problem PKGBASE tries to resolve … there are few.
First – the delta based design of freebsd-update(8) was PITA for maintenance. The binary diffs where difficult to generate and maintain because FreeBSD Release Engineering team need to store every old version of binaries – then generating binary diffs for each possible upgrade path and later testing that every delta sequence applies correctly. Besides being error prone it was also time consuming. This ‘way’ of things was also sensitive to local modifications and/or corruption. The freebsd-update(8) requires that every local file exactly matches the expected original. If user compiled custom kernel/world or modified/replaced any file manually then the delta patches cannot be applied.
Second – the freebsd-update(8) process was ALWAYS interactive which was quite OK if you have two FreeBSD machines – but it You are responsible for keeping hundreds of FreeBSD machines and need to patch them quickly then it was PITA. Some people coped with that by overwriting the PAGER variable … but that often caused trouble.
FreeBSD # env PAGER=cat freebsd-update fetch install
Third – no file ownership within Base System. If file is not known to pkg(8) then it probably originated in FreeBSD Base System … but you can never be sure. Because freebsd-update(8) only patches files in place it can not track what component owns which file and thus cleanly remove obsolete files.
Forth – with PKGBASE its possible to remove and/or manage optional components cleanly – by removing their pkg(8) packages. Without PKGBASE you can only mange Base System as a whole and patch it with freebsd-update(8) … you can of course build your tailored FreeBSD version with lots of components/subsystems disabled in /etc/src.conf file … but then freebsd-update(8) will not work with them.

Fifth – without PKGBASE – the only way you can update/upgrade a STABLE or CURRENT system is by compiling everything from source. With PKGBASE there will be pkg(8) repos with weekly/monthly updates – so You do not have to waste time and electricity just to update your STABLE/CURRENT system – just update the PKGBASE packages with pkg(8) command.
Warning
I need to warn you about a thing or two in the new PKGBASE world.

[ WARNING: BEGIN ]
Many FreeBSD seasoned sysadmins – including me – knew that from time to time – when its needed – one can just safely wipe all third party packages with pkg delete -fay command. Then one could rm -rf /usr/local /boot/modules to make sure everything was cleaned – and start again with fresh FreeBSD Base System.
With FreeBSD installed in a PKGBASE way the pkg delete -fay command will destroy your FreeBSD system. Literally. So think twice before executing it on a FreeBSD PKGBASE system.
The ZFS Boot Environments feature will NOT protect you from executing pkg delete -fay command on the running system – even if you have created a backup ZFS Boot Environment – you will NOT be able to reach the loader(8) for the boot menu selection.
OK ls boot
boot
d zfs
d efi
loader.conf
entropy
d firmware
Because there is not kernel or loader(8) anymore … and its the same in both BIOS and UEFI mode.
Another warning – if you use FreeBSD in PKGBASE mode – do not touch freebsd-update(8) command – it will break the system.
Also – do not update/upgrade PKGBASE system with make installworld or make installkernel commands – it will also do harm.
Alternatively use make buildworld buildkernel update-packages command which will create package repository with packages you can use to update/upgrade the FreeBSD system with pkg(8) command.
This is the default FreeBSD ZFS pool layout.
root@pkgbase:~ # zfs list
NAME USED AVAIL REFER MOUNTPOINT
zroot 1.25G 17.7G 96K /zroot
zroot/ROOT 1.25G 17.7G 96K none
zroot/ROOT/default 1.24G 17.7G 854M /
zroot/home 224K 17.7G 96K /home
zroot/home/vermaden 128K 17.7G 128K /home/vermaden
zroot/tmp 112K 17.7G 112K /tmp
zroot/usr 288K 17.7G 96K /usr
zroot/usr/ports 96K 17.7G 96K /usr/ports
zroot/usr/src 96K 17.7G 96K /usr/src
zroot/var 684K 17.7G 96K /var
zroot/var/audit 96K 17.7G 96K /var/audit
zroot/var/crash 96K 17.7G 96K /var/crash
zroot/var/log 196K 17.7G 196K /var/log
zroot/var/mail 104K 17.7G 104K /var/mail
zroot/var/tmp 96K 17.7G 96K /var/tmp
Its a good template to start – I very rarely modify it – but …
If you use multiple independent ZFS Boot Environments keep in mind that /usr/src is not part of ZFS BE and will be overwritten by FreeBSD-src and FreeBSD-src-sys packages from each ZFS BE. To overcome move /usr/src into each ZFS BE so that FreeBSD source tree (and packages) will be consistent and independent from each other for each ZFS Boot Environment you use. Its the same even without PKGBASE – its just a reminder that PKGBASE does not change anything here.
[ WARNING: END ]
Install
Right now bsdinstall from FreeBSD 15.x will ask you important question at the start – in which world you want to live?

I have also read on Mailing Lists that Experimental label will be changed to Tech Preview one.
There is also one important switch on what is available on the installation media. From 15.x series the PKGBASE package sets are on the installation media and older ones like base.txz or kernel.tzx have to be downloaded from the Internet … at least for smallest disc1 media.

Classic Distributions Sets like base.txz and kernel.txz maintained and updated by freebsd-update(8) command or PKGBASE with everything being managed and upgraded by pkg(8) command.
You can even later convert older Distributions Sets install with pkgbasify(8) tool. From what I have seen on the FreeBSD Mailing Lists there is even depkgbasify(8) planned – to convert PKGBASE system back to classic Distributions Sets setup.
Documentation
After VNET Jails were introduced to FreeBSD the official FreeBSD Handbook did not had any documentation about them for more then a decade.

Fortunately the PKGBASE concept is already covered FreeBSD Handbook PKGBASE section.

… and its not some short memo/mention like with fwget(8) tool that was just mentioned once in the FreeBSD 14.0-RELEASE Release Notes and forgotten.

There is also new freebsd-base(7) man page covering PKGBASE concept.

Which is also nice.
There is also some relevant info in the FreeBSD Wiki https://wiki.freebsd.org/pkgbase page.
New PKGBASE Distribution Sets
Say goodbye to traditional base.txz and kernel.tzx sets and welcome newly crafted sets for PKGBASE:
– kernel-dbg – Debug symbols for the kernel.
– devel – C/C++ compilers and related utilities.
– optional – Optional software (excluding compilers).
– optional-jail – Optional software (excluding compilers)
– base – The complete base system (includes devel and optional)
– base-jail – The complete base system (includes devel and optional)
– src – System source tree
– tests – Test suite.
– lib32 – 32-bit compatibility libraries.
– debug – Debug symbols for the selected components.
From the good news – you can now select to install a lot smaller Base System that is a lot better suited for FreeBSD Jails – and there are no bad news here – just more options and flexibility π
Minimal RAM Requirements
I am not sure that there are any specific requirements set right now – but the minimum amount of RAM that I was able to install FreeBSD with PKGBASE is 300 MB RAM – and that is with Auto (ZFS) option. I already described it in the Mailing Lists but I will happily repeat that here.
First Select [Live System] option – then execute these:
root@:~ # kldload zfs
ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
root@:~ # sysctl vfs.zfs.arc.min=33554432
vfs.zfs.arc.min: 0 -> 33554432
root@:~ # sysctl vfs.zfs.arc.max=67108864
vfs.zfs.arc.max: 0 -> 67108864
root@:~ # sysctl vm.pageout_oom_seq=1200
vm.pageout_oom_seq: 12 -> 1200
root@:~ # env TERM=xterm bsdinstall
Now you can proceed to the install process. I selected PKGBASE type and offline installation – and then Auto (ZFS). I made the test with only base set chosen – but it probably can also survive more sets selected. I also switched from (BIOS) to (BIOS+UEFI) but that should not make any difference for you.
Some stats after installation (before reboot):
root@:/ # dmesg | grep -i memory
real memory = 314572800 (300 MB)
avail memory = 263303168 (251 MB)
root@:/ # top -b -o res
last pid: 2544; load averages: 1.31, 0.80, 0.34 up 0+00:02:20 18:02:03
10 processes: 1 running, 9 sleeping
CPU: 7.8% user, 0.0% nice, 16.7% system, 12.1% interrupt, 63.4% idle
Mem: 3588K Active, 11M Inact, 6376K Laundry, 148M Wired, 5800K Buf, 89M Free
ARC: 47M Total, 2667K MFU, 38M MRU, 128K Anon, 294K Header, 6515K Other
29M Compressed, 65M Uncompressed, 2.24:1 Ratio
I tried the same with 256 MB RAM but it fails.
Base Install
After selecting base only I got 208 packages installed – including pkg(8) one.
root@pkgbase:~ # pkg info | wc -l
208
root@pkgbase:~ # pkg info | while read PKG DESC; do printf "%52s %s\n" ${PKG} ${DESC}; done
FreeBSD-acct-15.0.b1.20251011075131 System resource accounting
FreeBSD-acpi-15.0.b1.20251011075131 Advanced Configuration and Power Interface (ACPI) utilities
FreeBSD-apm-15.0.b1.20251011075131 Intel / Microsoft APM BIOS utility
FreeBSD-at-15.0.b1.20251011075131 Scheduled and batch command utilities
FreeBSD-atf-15.0.b1.20251011075131 Automated Testing Framework
FreeBSD-atf-dev-15.0.b1.20251011075131 Automated Testing Framework (development files)
FreeBSD-atf-lib-15.0.b1.20251011075131 Automated Testing Framework (libraries)
FreeBSD-audit-15.0.b1.20251011075131 OpenBSM auditing utilities
FreeBSD-audit-dev-15.0.b1.20251011075131 OpenBSM auditing utilities (development files)
FreeBSD-audit-lib-15.0.b1.20251011075131 OpenBSM auditing utilities (libraries)
FreeBSD-autofs-15.0.b1.20251011075131 File system automounter
FreeBSD-bhyve-15.0.b1.20251011075131 bhyve virtual machine hypervisor
FreeBSD-blocklist-15.0.b1.20251011075131 Network blocklist daemon
FreeBSD-blocklist-dev-15.0.b1.20251011075131 Network blocklist daemon (development files)
FreeBSD-bluetooth-15.0.b1.20251011075131 Bluetooth support
FreeBSD-bluetooth-dev-15.0.b1.20251011075131 Bluetooth support (development files)
FreeBSD-bluetooth-lib-15.0.b1.20251011075131 Bluetooth support (libraries)
FreeBSD-bmake-15.0.b1.20251011075131 Program maintenance utility
FreeBSD-bootloader-15.0.b1.20251011075131 System boot loader
FreeBSD-bootloader-dev-15.0.b1.20251011075131 System boot loader (development files)
FreeBSD-bsdconfig-15.0.b1.20251011075131 System configuration utility
FreeBSD-bsdinstall-15.0.b1.20251011075131 System installer
FreeBSD-bsnmp-15.0.b1.20251011075131 Simple and extensible SNMP daemon
FreeBSD-bsnmp-dev-15.0.b1.20251011075131 Simple and extensible SNMP daemon (development files)
FreeBSD-bzip2-15.0.b1.20251011075131 A block-sorting data compressor
FreeBSD-bzip2-dev-15.0.b1.20251011075131 A block-sorting data compressor (development files)
FreeBSD-bzip2-lib-15.0.b1.20251011075131 A block-sorting data compressor (libraries)
FreeBSD-caroot-15.0.b1.20251011075131 Mozilla Root Store trusted TLS certificates
FreeBSD-ccdconfig-15.0.b1.20251011075131 Concatenated disk driver (ccd) configuration utility
FreeBSD-certctl-15.0.b1.20251011075131 Tool for managing trusted and untrusted TLS certificates
FreeBSD-clang-15.0.b1.20251011075131 The Clang C, C++, and Objective-C compiler
FreeBSD-clang-dev-15.0.b1.20251011075131 The Clang C, C++, and Objective-C compiler (development files)
FreeBSD-clibs-15.0.b1.20251011075131 Core runtime libraries
FreeBSD-clibs-dev-15.0.b1.20251011075131 Core runtime libraries (development files)
FreeBSD-console-tools-15.0.b1.20251011075131 Video console utilities
FreeBSD-cron-15.0.b1.20251011075131 Command scheduling facility
FreeBSD-csh-15.0.b1.20251011075131 C shell with file name completion and command line editing
FreeBSD-ctf-15.0.b1.20251011075131 Compact C Type Format (CTF)
FreeBSD-ctf-dev-15.0.b1.20251011075131 Compact C Type Format (CTF) (development files)
FreeBSD-ctf-lib-15.0.b1.20251011075131 Compact C Type Format (CTF) (libraries)
FreeBSD-ctl-15.0.b1.20251011075131 CAM Target Layer / iSCSI target daemon
FreeBSD-cxgbe-tools-15.0.b1.20251011075131 Configuration utility for Chelsio cxbge(4) network interfaces
FreeBSD-devd-15.0.b1.20251011075131 Kernel event handling daemon
FreeBSD-devmatch-15.0.b1.20251011075131 Automatically load kernel drivers for attached hardware
FreeBSD-devmatch-dev-15.0.b1.20251011075131 Automatically load kernel drivers for attached hardware (development files)
FreeBSD-dhclient-15.0.b1.20251011075131 Dynamic Host Configuration Protocol (DHCP) client
FreeBSD-diff3-15.0.b1.20251011075131 GNU 3-way file comparison and merge utility
FreeBSD-dma-15.0.b1.20251011075131 DragonFly Mail Agent
FreeBSD-dtrace-15.0.b1.20251011075131 DTrace dynamic tracing framework
FreeBSD-dtrace-dev-15.0.b1.20251011075131 DTrace dynamic tracing framework (development files)
FreeBSD-dwatch-15.0.b1.20251011075131 Watch processes as they trigger a particular DTrace probe
FreeBSD-ee-15.0.b1.20251011075131 Easy Editor
FreeBSD-efi-tools-15.0.b1.20251011075131 Utilities for the Unified Extensible Firmware Interface (UEFI)
FreeBSD-efi-tools-dev-15.0.b1.20251011075131 Utilities for the Unified Extensible Firmware Interface (UEFI) (development files)
FreeBSD-examples-15.0.b1.20251011075131 System interface examples
FreeBSD-fd-15.0.b1.20251011075131 Floppy disk utilities
FreeBSD-fetch-15.0.b1.20251011075131 Retrieve a file from a remote URL
FreeBSD-fetch-dev-15.0.b1.20251011075131 Retrieve a file from a remote URL (development files)
FreeBSD-firmware-iwm-15.0.b1.20251011075131 Firmware for iwm(4) Intel 802.11ac network interfaces
FreeBSD-ftp-15.0.b1.20251011075131 File Transfer Protocol (FTP) client
FreeBSD-fwget-15.0.b1.20251011075131 Install firmware packages for the running system
FreeBSD-games-15.0.b1.20251011075131 Games
FreeBSD-geom-15.0.b1.20251011075131 GEOM configuration utilities
FreeBSD-ggate-15.0.b1.20251011075131 GEOM Gate client and server
FreeBSD-gssd-15.0.b1.20251011075131 gssd(8) daemon for kernel GSS-API
FreeBSD-hast-15.0.b1.20251011075131 Highly Available Storage daemon
FreeBSD-hostapd-15.0.b1.20251011075131 IEEE Std 802.11 Access Point authentication daemon
FreeBSD-hyperv-tools-15.0.b1.20251011075131 Microsoft Hyper-V utilities
FreeBSD-inetd-15.0.b1.20251011075131 Internet super-server
FreeBSD-ipf-15.0.b1.20251011075131 IP Filter (ipf) packet filter management tools
FreeBSD-ipfw-15.0.b1.20251011075131 ipfw (IP firewall) management utilities
FreeBSD-iscsi-15.0.b1.20251011075131 iSCSI initiator
FreeBSD-jail-15.0.b1.20251011075131 Jail management tools
FreeBSD-kerberos-15.0.b1.20251011075131 Kerberos client
FreeBSD-kerberos-dev-15.0.b1.20251011075131 Kerberos client (development files)
FreeBSD-kerberos-kdc-15.0.b1.20251011075131 Kerberos key distribution center
FreeBSD-kerberos-lib-15.0.b1.20251011075131 Kerberos client (libraries)
FreeBSD-kernel-generic-15.0.b1.20251011075131 FreeBSD GENERIC Kernel
FreeBSD-kernel-man-15.0.b1.20251011075131 Kernel manual pages
FreeBSD-kyua-15.0.b1.20251011075131 Testing framework for infrastructure software
FreeBSD-lib9p-15.0.b1.20251011075131 9P network protocol library
FreeBSD-lib9p-dev-15.0.b1.20251011075131 9P network protocol library (development files)
FreeBSD-libarchive-15.0.b1.20251011075131 Library for reading and writing streaming archives
FreeBSD-libarchive-dev-15.0.b1.20251011075131 Library for reading and writing streaming archives (development files)
FreeBSD-libbegemot-15.0.b1.20251011075131 rpoll(3) interface for event-driven I/O
FreeBSD-libbegemot-dev-15.0.b1.20251011075131 rpoll(3) interface for event-driven I/O (development files)
FreeBSD-libblocksruntime-15.0.b1.20251011075131 LLVM BlocksRuntime library
FreeBSD-libblocksruntime-dev-15.0.b1.20251011075131 LLVM BlocksRuntime library (development files)
FreeBSD-libbsdstat-15.0.b1.20251011075131 Periodic statistics library
FreeBSD-libbsdstat-dev-15.0.b1.20251011075131 Periodic statistics library (development files)
FreeBSD-libcasper-15.0.b1.20251011075131 Casper library
FreeBSD-libcasper-dev-15.0.b1.20251011075131 Casper library (development files)
FreeBSD-libcompat-15.0.b1.20251011075131 Compatibility library
FreeBSD-libcompat-dev-15.0.b1.20251011075131 Compatibility library (development files)
FreeBSD-libcompiler_rt-dev-15.0.b1.20251011075131 LLVM compiler_rt library (development files)
FreeBSD-libcuse-15.0.b1.20251011075131 Userland character device library
FreeBSD-libcuse-dev-15.0.b1.20251011075131 Userland character device library (development files)
FreeBSD-libdwarf-15.0.b1.20251011075131 DWARF access library
FreeBSD-libdwarf-dev-15.0.b1.20251011075131 DWARF access library (development files)
FreeBSD-libevent1-15.0.b1.20251011075131 Private libevent1 library
FreeBSD-libevent1-dev-15.0.b1.20251011075131 Private libevent1 library (development files)
FreeBSD-libexecinfo-15.0.b1.20251011075131 NetBSD stack backtrace library
FreeBSD-libexecinfo-dev-15.0.b1.20251011075131 NetBSD stack backtrace library (development files)
FreeBSD-libipt-15.0.b1.20251011075131 Intel(R) Processor Trace decoder library
FreeBSD-libipt-dev-15.0.b1.20251011075131 Intel(R) Processor Trace decoder library (development files)
FreeBSD-libldns-15.0.b1.20251011075131 Private LDNS library
FreeBSD-libldns-dev-15.0.b1.20251011075131 Private LDNS library (development files)
FreeBSD-libmagic-15.0.b1.20251011075131 Magic number recognition library
FreeBSD-libmagic-dev-15.0.b1.20251011075131 Magic number recognition library (development files)
FreeBSD-libmilter-15.0.b1.20251011075131 sendmail Mail Filter API library
FreeBSD-libmilter-dev-15.0.b1.20251011075131 sendmail Mail Filter API library (development files)
FreeBSD-libpathconv-15.0.b1.20251011075131 Library for handling relative and absolute pathnames
FreeBSD-libpathconv-dev-15.0.b1.20251011075131 Library for handling relative and absolute pathnames (development files)
FreeBSD-librpcsec_gss-15.0.b1.20251011075131 RPCSEC_GSS library
FreeBSD-librpcsec_gss-dev-15.0.b1.20251011075131 RPCSEC_GSS library (development files)
FreeBSD-librss-15.0.b1.20251011075131 Receive-side scaling library
FreeBSD-librss-dev-15.0.b1.20251011075131 Receive-side scaling library (development files)
FreeBSD-libsqlite3-15.0.b1.20251011075131 Private SQLite library
FreeBSD-libsqlite3-dev-15.0.b1.20251011075131 Private SQLite library (development files)
FreeBSD-libthread_db-15.0.b1.20251011075131 Library for interacting with threaded processes
FreeBSD-libthread_db-dev-15.0.b1.20251011075131 Library for interacting with threaded processes (development files)
FreeBSD-libucl-15.0.b1.20251011075131 Private Universal Configuration Library (UCL) library
FreeBSD-libucl-dev-15.0.b1.20251011075131 Private Universal Configuration Library (UCL) library (development files)
FreeBSD-libvgl-15.0.b1.20251011075131 Video Graphics Library
FreeBSD-libvgl-dev-15.0.b1.20251011075131 Video Graphics Library (development files)
FreeBSD-libvmmapi-15.0.b1.20251011075131 Front-end library for the vmm(4) virtualization driver
FreeBSD-libvmmapi-dev-15.0.b1.20251011075131 Front-end library for the vmm(4) virtualization driver (development files)
FreeBSD-libyaml-15.0.b1.20251011075131 Private YAML library
FreeBSD-libyaml-dev-15.0.b1.20251011075131 Private YAML library (development files)
FreeBSD-lld-15.0.b1.20251011075131 LLVM ELF link loader
FreeBSD-lldb-15.0.b1.20251011075131 LLVM debugger
FreeBSD-lldb-dev-15.0.b1.20251011075131 LLVM debugger (development files)
FreeBSD-locales-15.0.b1.20251011075131 Locale definitions
FreeBSD-lp-15.0.b1.20251011075131 Print spooler
FreeBSD-mandoc-15.0.b1.20251011075131 Online manual page reader
FreeBSD-mlx-tools-15.0.b1.20251011075131 Utility for managing Connect-X 4/5/6 Mellanox network adapters
FreeBSD-mtree-15.0.b1.20251011075131 Filesystem hierarchy management tool
FreeBSD-natd-15.0.b1.20251011075131 Userland Network Address Translation (NAT) for ipfw
FreeBSD-natd-dev-15.0.b1.20251011075131 Userland Network Address Translation (NAT) for ipfw (development files)
FreeBSD-ncurses-15.0.b1.20251011075131 ncurses terminal control library
FreeBSD-ncurses-dev-15.0.b1.20251011075131 ncurses terminal control library (development files)
FreeBSD-netmap-15.0.b1.20251011075131 Userland netmap support
FreeBSD-netmap-dev-15.0.b1.20251011075131 Userland netmap support (development files)
FreeBSD-newsyslog-15.0.b1.20251011075131 Create and rotate system log files
FreeBSD-nfs-15.0.b1.20251011075131 NFS client and server utilities
FreeBSD-ntp-15.0.b1.20251011075131 Network Time Protocol (NTP) daemon
FreeBSD-nuageinit-15.0.b1.20251011075131 cloud-init configuration support
FreeBSD-nvme-tools-15.0.b1.20251011075131 NVMe utilities
FreeBSD-openssl-15.0.b1.20251011075131 OpenSSL Transport Layer Security (TLS) library
FreeBSD-openssl-dev-15.0.b1.20251011075131 OpenSSL Transport Layer Security (TLS) library (development files)
FreeBSD-openssl-lib-15.0.b1.20251011075131 OpenSSL Transport Layer Security (TLS) library (libraries)
FreeBSD-periodic-15.0.b1.20251011075131 Run periodic system functions
FreeBSD-pf-15.0.b1.20251011075131 OpenBSD packet filter
FreeBSD-pf-dev-15.0.b1.20251011075131 OpenBSD packet filter (development files)
FreeBSD-pkg-bootstrap-15.0.b1.20251011075131 pkg(7) bootstrap utility
FreeBSD-pmc-15.0.b1.20251011075131 Support for hardware performance counters
FreeBSD-pmc-dev-15.0.b1.20251011075131 Support for hardware performance counters (development files)
FreeBSD-powerd-15.0.b1.20251011075131 System power control utility
FreeBSD-ppp-15.0.b1.20251011075131 Point-to-Point Protocol (PPP) utilities
FreeBSD-quotacheck-15.0.b1.20251011075131 Filesystem quota consistency checker
FreeBSD-rc-15.0.b1.20251011075131 rc(8) subsystem
FreeBSD-rcmds-15.0.b1.20251011075131 BSD/SunOS remote status commands
FreeBSD-rdma-15.0.b1.20251011075131 Remote Direct Memory Access (RDMA) and InfiniBand utilities
FreeBSD-rescue-15.0.b1.20251011075131 Rescue system
FreeBSD-resolvconf-15.0.b1.20251011075131 A framework for managing multiple DNS configurations
FreeBSD-rip-15.0.b1.20251011075131 RIP routing protocol
FreeBSD-runtime-15.0.b1.20251011075131 Core system
FreeBSD-runtime-dev-15.0.b1.20251011075131 Core system (development files)
FreeBSD-sendmail-15.0.b1.20251011075131 sendmail mail transport agent
FreeBSD-set-base-15.0.b1.20251011075131 Base system (metapackage)
FreeBSD-set-devel-15.0.b1.20251011075131 Development tools (metapackage)
FreeBSD-set-minimal-15.0.b1.20251011075131 Basic multi-user system (metapackage)
FreeBSD-set-optional-15.0.b1.20251011075131 Optional base system software (metapackage)
FreeBSD-set-src-15.0.b1.20251011075131 System source code
FreeBSD-smbutils-15.0.b1.20251011075131 SMB network filesystem utilities
FreeBSD-smbutils-dev-15.0.b1.20251011075131 SMB network filesystem utilities (development files)
FreeBSD-sound-15.0.b1.20251011075131 Audio utilities
FreeBSD-sound-dev-15.0.b1.20251011075131 Audio utilities (development files)
FreeBSD-src-15.0.b1.20251011075131 System userland source code
FreeBSD-src-sys-15.0.b1.20251011075131 System kernel source code
FreeBSD-ssh-15.0.b1.20251011075131 OpenSSH Secure Shell client and server
FreeBSD-ssh-dev-15.0.b1.20251011075131 OpenSSH Secure Shell client and server (development files)
FreeBSD-syscons-data-15.0.b1.20251011075131 syscons(4) fonts and keymaps
FreeBSD-syslogd-15.0.b1.20251011075131 System logging daemon
FreeBSD-tcpd-15.0.b1.20251011075131 TCP Wrappers access control facility
FreeBSD-tcpd-dev-15.0.b1.20251011075131 TCP Wrappers access control facility (development files)
FreeBSD-telnet-15.0.b1.20251011075131 TELNET client
FreeBSD-toolchain-15.0.b1.20251011075131 Utilities for program development
FreeBSD-toolchain-dev-15.0.b1.20251011075131 Utilities for program development (development files)
FreeBSD-ufs-15.0.b1.20251011075131 UFS filesystem support
FreeBSD-ufs-dev-15.0.b1.20251011075131 UFS filesystem support (development files)
FreeBSD-ufs-lib-15.0.b1.20251011075131 UFS filesystem support (libraries)
FreeBSD-unbound-15.0.b1.20251011075131 NLnet Labs Unbound DNS resolver
FreeBSD-unbound-dev-15.0.b1.20251011075131 NLnet Labs Unbound DNS resolver (development files)
FreeBSD-utilities-15.0.b1.20251011075131 Non-vital programs and libraries
FreeBSD-utilities-dev-15.0.b1.20251011075131 Non-vital programs and libraries (development files)
FreeBSD-vi-15.0.b1.20251011075131 Text editor
FreeBSD-vt-data-15.0.b1.20251011075131 vt(4) fonts and keymaps
FreeBSD-wpa-15.0.b1.20251011075131 IEEE Std 802.11 WPA Supplicant
FreeBSD-xz-15.0.b1.20251011075131 LZMA2 data compression
FreeBSD-xz-dev-15.0.b1.20251011075131 LZMA2 data compression (development files)
FreeBSD-xz-lib-15.0.b1.20251011075131 LZMA2 data compression (libraries)
FreeBSD-yp-15.0.b1.20251011075131 Yellow Pages (YP) / Network Information Service (NIS)
FreeBSD-zfs-15.0.b1.20251011075131 ZFS filesystem support
FreeBSD-zfs-dev-15.0.b1.20251011075131 ZFS filesystem support (development files)
FreeBSD-zfs-lib-15.0.b1.20251011075131 ZFS filesystem support (libraries)
FreeBSD-zoneinfo-15.0.b1.20251011075131 Timezone database
pkg-2.3.1 Package manager
root@pkgbase:~ # pkg info -qoa
base/FreeBSD-acct
base/FreeBSD-acpi
base/FreeBSD-apm
base/FreeBSD-at
base/FreeBSD-atf
base/FreeBSD-atf-dev
base/FreeBSD-atf-lib
base/FreeBSD-audit
base/FreeBSD-audit-dev
base/FreeBSD-audit-lib
base/FreeBSD-autofs
base/FreeBSD-bhyve
base/FreeBSD-blocklist
base/FreeBSD-blocklist-dev
base/FreeBSD-bluetooth
base/FreeBSD-bluetooth-dev
base/FreeBSD-bluetooth-lib
base/FreeBSD-bmake
base/FreeBSD-bootloader
base/FreeBSD-bootloader-dev
base/FreeBSD-bsdconfig
base/FreeBSD-bsdinstall
base/FreeBSD-bsnmp
base/FreeBSD-bsnmp-dev
base/FreeBSD-bzip2
base/FreeBSD-bzip2-dev
base/FreeBSD-bzip2-lib
base/FreeBSD-caroot
base/FreeBSD-ccdconfig
base/FreeBSD-certctl
base/FreeBSD-clang
base/FreeBSD-clang-dev
base/FreeBSD-clibs
base/FreeBSD-clibs-dev
base/FreeBSD-console-tools
base/FreeBSD-cron
base/FreeBSD-csh
base/FreeBSD-ctf
base/FreeBSD-ctf-dev
base/FreeBSD-ctf-lib
base/FreeBSD-ctl
base/FreeBSD-cxgbe-tools
base/FreeBSD-devd
base/FreeBSD-devmatch
base/FreeBSD-devmatch-dev
base/FreeBSD-dhclient
base/FreeBSD-diff3
base/FreeBSD-dma
base/FreeBSD-dtrace
base/FreeBSD-dtrace-dev
base/FreeBSD-dwatch
base/FreeBSD-ee
base/FreeBSD-efi-tools
base/FreeBSD-efi-tools-dev
base/FreeBSD-examples
base/FreeBSD-fd
base/FreeBSD-fetch
base/FreeBSD-fetch-dev
base/FreeBSD-firmware-iwm
base/FreeBSD-ftp
base/FreeBSD-fwget
base/FreeBSD-games
base/FreeBSD-geom
base/FreeBSD-ggate
base/FreeBSD-gssd
base/FreeBSD-hast
base/FreeBSD-hostapd
base/FreeBSD-hyperv-tools
base/FreeBSD-inetd
base/FreeBSD-ipf
base/FreeBSD-ipfw
base/FreeBSD-iscsi
base/FreeBSD-jail
base/FreeBSD-kerberos
base/FreeBSD-kerberos-dev
base/FreeBSD-kerberos-kdc
base/FreeBSD-kerberos-lib
base/FreeBSD-kernel-generic
base/FreeBSD-kernel-man
base/FreeBSD-kyua
base/FreeBSD-lib9p
base/FreeBSD-lib9p-dev
base/FreeBSD-libarchive
base/FreeBSD-libarchive-dev
base/FreeBSD-libbegemot
base/FreeBSD-libbegemot-dev
base/FreeBSD-libblocksruntime
base/FreeBSD-libblocksruntime-dev
base/FreeBSD-libbsdstat
base/FreeBSD-libbsdstat-dev
base/FreeBSD-libcasper
base/FreeBSD-libcasper-dev
base/FreeBSD-libcompat
base/FreeBSD-libcompat-dev
base/FreeBSD-libcompiler_rt-dev
base/FreeBSD-libcuse
base/FreeBSD-libcuse-dev
base/FreeBSD-libdwarf
base/FreeBSD-libdwarf-dev
base/FreeBSD-libevent1
base/FreeBSD-libevent1-dev
base/FreeBSD-libexecinfo
base/FreeBSD-libexecinfo-dev
base/FreeBSD-libipt
base/FreeBSD-libipt-dev
base/FreeBSD-libldns
base/FreeBSD-libldns-dev
base/FreeBSD-libmagic
base/FreeBSD-libmagic-dev
base/FreeBSD-libmilter
base/FreeBSD-libmilter-dev
base/FreeBSD-libpathconv
base/FreeBSD-libpathconv-dev
base/FreeBSD-librpcsec_gss
base/FreeBSD-librpcsec_gss-dev
base/FreeBSD-librss
base/FreeBSD-librss-dev
base/FreeBSD-libsqlite3
base/FreeBSD-libsqlite3-dev
base/FreeBSD-libthread_db
base/FreeBSD-libthread_db-dev
base/FreeBSD-libucl
base/FreeBSD-libucl-dev
base/FreeBSD-libvgl
base/FreeBSD-libvgl-dev
base/FreeBSD-libvmmapi
base/FreeBSD-libvmmapi-dev
base/FreeBSD-libyaml
base/FreeBSD-libyaml-dev
base/FreeBSD-lld
base/FreeBSD-lldb
base/FreeBSD-lldb-dev
base/FreeBSD-locales
base/FreeBSD-lp
base/FreeBSD-mandoc
base/FreeBSD-mlx-tools
base/FreeBSD-mtree
base/FreeBSD-natd
base/FreeBSD-natd-dev
base/FreeBSD-ncurses
base/FreeBSD-ncurses-dev
base/FreeBSD-netmap
base/FreeBSD-netmap-dev
base/FreeBSD-newsyslog
base/FreeBSD-nfs
base/FreeBSD-ntp
base/FreeBSD-nuageinit
base/FreeBSD-nvme-tools
base/FreeBSD-openssl
base/FreeBSD-openssl-dev
base/FreeBSD-openssl-lib
base/FreeBSD-periodic
base/FreeBSD-pf
base/FreeBSD-pf-dev
base/FreeBSD-pkg-bootstrap
base/FreeBSD-pmc
base/FreeBSD-pmc-dev
base/FreeBSD-powerd
base/FreeBSD-ppp
base/FreeBSD-quotacheck
base/FreeBSD-rc
base/FreeBSD-rcmds
base/FreeBSD-rdma
base/FreeBSD-rescue
base/FreeBSD-resolvconf
base/FreeBSD-rip
base/FreeBSD-runtime
base/FreeBSD-runtime-dev
base/FreeBSD-sendmail
base/FreeBSD-set-base
base/FreeBSD-set-devel
base/FreeBSD-set-minimal
base/FreeBSD-set-optional
base/FreeBSD-set-src
base/FreeBSD-smbutils
base/FreeBSD-smbutils-dev
base/FreeBSD-sound
base/FreeBSD-sound-dev
base/FreeBSD-src
base/FreeBSD-src-sys
base/FreeBSD-ssh
base/FreeBSD-ssh-dev
base/FreeBSD-syscons-data
base/FreeBSD-syslogd
base/FreeBSD-tcpd
base/FreeBSD-tcpd-dev
base/FreeBSD-telnet
base/FreeBSD-toolchain
base/FreeBSD-toolchain-dev
base/FreeBSD-ufs
base/FreeBSD-ufs-dev
base/FreeBSD-ufs-lib
base/FreeBSD-unbound
base/FreeBSD-unbound-dev
base/FreeBSD-utilities
base/FreeBSD-utilities-dev
base/FreeBSD-vi
base/FreeBSD-vt-data
base/FreeBSD-wpa
base/FreeBSD-xz
base/FreeBSD-xz-dev
base/FreeBSD-xz-lib
base/FreeBSD-yp
base/FreeBSD-zfs
base/FreeBSD-zfs-dev
base/FreeBSD-zfs-lib
base/FreeBSD-zoneinfo
ports-mgmt/pkg
You can even display pkg(8) distribution sets.
root@pkgbase:~ # pkg info -d -C -x '^FreeBSD-set-' | head
FreeBSD-set-base-15.0.b1.20251011075131:
FreeBSD-set-optional-15.0.b1.20251011075131
FreeBSD-set-minimal-15.0.b1.20251011075131
FreeBSD-set-devel-15.0.b1.20251011075131
FreeBSD-set-devel-15.0.b1.20251011075131:
FreeBSD-zfs-dev-15.0.b1.20251011075131
FreeBSD-xz-dev-15.0.b1.20251011075131
FreeBSD-utilities-dev-15.0.b1.20251011075131
FreeBSD-unbound-dev-15.0.b1.20251011075131
FreeBSD-ufs-dev-15.0.b1.20251011075131
root@pkgbase:~ # pkg sets | grep '^FreeBSD'
FreeBSD-set-base-15.0.b1.20251011075131:
FreeBSD-set-devel-15.0.b1.20251011075131:
FreeBSD-set-minimal-15.0.b1.20251011075131:
FreeBSD-set-optional-15.0.b1.20251011075131:
FreeBSD-set-src-15.0.b1.20251011075131:
You can even put it as an ALIAS into the /usr/local/etc/pkg.conf file.
root@pkgbase:~ # grep -e '^ALIAS' -e sets -e '^}' /usr/local/etc/pkg.conf
ALIAS {
sets = "info -d -C -x '^FreeBSD-set-'";
}
root@pkgbase:~ # pkg sets | head
FreeBSD-set-base-15.0.b1.20251011075131:
FreeBSD-set-optional-15.0.b1.20251011075131
FreeBSD-set-minimal-15.0.b1.20251011075131
FreeBSD-set-devel-15.0.b1.20251011075131
FreeBSD-set-devel-15.0.b1.20251011075131:
FreeBSD-zfs-dev-15.0.b1.20251011075131
FreeBSD-xz-dev-15.0.b1.20251011075131
FreeBSD-utilities-dev-15.0.b1.20251011075131
FreeBSD-unbound-dev-15.0.b1.20251011075131
FreeBSD-ufs-dev-15.0.b1.20251011075131
Repositories
For naming clarity the FreeBSD and FreeBSD-kmods repos that you knew from 14.x line were renamed into FreeBSD-ports and FreeBSD-ports-kmods respectively. The new PKGBASE repo is called FreeBSD-base.
root@pkgbase:~ # pkg repos -l
FreeBSD-ports
FreeBSD-ports-kmods
FreeBSD-base
root@pkgbase:~ # pkg repos
FreeBSD-ports: {
url : "pkg+https://pkg.FreeBSD.org/FreeBSD:15:amd64/quarterly",
enabled : yes,
priority : 0,
mirror_type : "SRV",
signature_type : "FINGERPRINTS",
fingerprints : "/usr/share/keys/pkg"
}
FreeBSD-ports-kmods: {
url : "pkg+https://pkg.FreeBSD.org/FreeBSD:15:amd64/kmods_quarterly_0",
enabled : yes,
priority : 0,
mirror_type : "SRV",
signature_type : "FINGERPRINTS",
fingerprints : "/usr/share/keys/pkg"
}
FreeBSD-base: {
url : "pkg+https://pkg.FreeBSD.org/FreeBSD:15:amd64/base_latest",
enabled : yes,
priority : 0,
mirror_type : "SRV",
signature_type : "FINGERPRINTS",
fingerprints : "/usr/share/keys/pkg"
}
For now the ‘third party’ packages pkg(8) repos config is in the Base System /etc/pkg/FreeBSD.conf file.
root@pkgbase:~ # grep '^[^#]' /etc/pkg/FreeBSD.conf
FreeBSD-ports: {
url: "pkg+https://pkg.FreeBSD.org/${ABI}/quarterly",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
enabled: yes
}
FreeBSD-ports-kmods: {
url: "pkg+https://pkg.FreeBSD.org/${ABI}/kmods_quarterly_${VERSION_MINOR}",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
enabled: yes
}
While the Base System packages pkg(8) repos config is in the ‘third party’ /usr/local/etc/pkg/FreeBSD.conf file.
root@pkgbase:~ # grep '^[^#]' /usr/local/etc/pkg/repos/FreeBSD-base.conf
FreeBSD-base: {
url: "pkg+https://pkg.FreeBSD.org/${ABI}/base_latest",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
enabled: yes
}
Which is not logical … but Colin Percival already wrote that this is just temporary and that all of these FreeBSD repos will be in the /etc/pkg/FreeBSD.conf file.
You can update all of them at once or by repo if needed.
root@pkgbase:~ # pkg update
Updating FreeBSD-ports repository catalogue...
Fetching meta.conf: 100% 179 B 0.2kB/s 00:01
Fetching data.pkg: 100% 10 MiB 552.2kB/s 00:19
Processing entries: 100%
FreeBSD-ports repository update completed. 36441 packages processed.
Updating FreeBSD-ports-kmods repository catalogue...
Fetching meta.conf: 100% 179 B 0.2kB/s 00:01
Fetching data.pkg: 100% 28 KiB 29.1kB/s 00:01
Processing entries: 100%
FreeBSD-ports-kmods repository update completed. 199 packages processed.
Updating FreeBSD-base repository catalogue...
pkg: Repository FreeBSD-base has a wrong packagesite, need to re-create database
Fetching meta.conf: 100% 179 B 0.2kB/s 00:01
Fetching data.pkg: 100% 76 KiB 77.7kB/s 00:01
Processing entries: 0%
Newer FreeBSD version for package FreeBSD-zoneinfo:
To ignore this error set IGNORE_OSVERSION=yes
- package: 1500500
- running userland: 1500067
Ignore the mismatch and continue? [y/N]: y
Processing entries: 100%
FreeBSD-base repository update completed. 490 packages processed.
All repositories are up to date.
Updating
To update only the FreeBSD PKGBASE Base System specify the repo in the pkg(8) command.
root@pkgbase:~ # pkg upgrade -r FreeBSD-base
Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
FreeBSD-base is up to date.
Checking for upgrades (205 candidates): 100%
Processing candidates (205 candidates): 100%
Checking integrity... done (0 conflicting)
Your packages are up to date.
No updates … strange considering BETA2 is now already available.
After I searched for an answer I got info that You need to modify the URL – to look like that one below.
root@pkgbase:~ # cat /usr/local/etc/pkg/repos/FreeBSD-base.conf
FreeBSD-base: {
# url: "pkg+https://pkg.FreeBSD.org/${ABI}/base_latest",
url: "pkg+https://pkg.FreeBSD.org/${ABI}/base_release_${VERSION_MINOR}",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
enabled: yes
}
Now lets try to upgrade …
root@pkgbase:~ # pkg update -r FreeBSD-base
Updating FreeBSD-base repository catalogue...
pkg: Repository FreeBSD-base has a wrong packagesite, need to re-create database
Fetching meta.conf: 100% 179 B 0.2kB/s 00:01
Fetching data.pkg: 100% 76 KiB 77.7kB/s 00:01
Processing entries: 100%
FreeBSD-base repository update completed. 490 packages processed.
FreeBSD-base is up to date.
Updating a single Base System package.
root@pkgbase:~ # pkg install FreeBSD-vi
Updating FreeBSD-ports repository catalogue...
FreeBSD-ports repository is up to date.
Updating FreeBSD-ports-kmods repository catalogue...
FreeBSD-ports-kmods repository is up to date.
Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
All repositories are up to date.
The following 2 package(s) will be affected (of 0 checked):
New packages to be INSTALLED:
FreeBSD-clibs-lib32: 15.0.b1.20251012072228 [FreeBSD-base]
Installed packages to be UPGRADED:
FreeBSD-vi: 15.0.b1.20251011075131 -> 15.0.b1.20251012072228 [FreeBSD-base]
Number of packages to be installed: 1
Number of packages to be upgraded: 1
The process will require 4 MiB more space.
2 MiB to be downloaded.
Proceed with this action? [y/N]: y
Updating/upgrading whole FreeBSD system with PKGBASE packages.
root@pkgbase:~ # pkg upgrade -r FreeBSD-base
Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
FreeBSD-base is up to date.
Checking for upgrades (202 candidates): 100%
Processing candidates (202 candidates): 100%
Checking integrity... done (5 conflicting)
- FreeBSD-sound-15.0.b1.20251013072425 [FreeBSD-base] conflicts with FreeBSD-utilities-15.0.b1.20251011075131 [installed] on /usr/lib/virtual_oss/voss_null.so
- FreeBSD-ncurses-lib-15.0.b1.20251015211959 [FreeBSD-base] conflicts with FreeBSD-ncurses-15.0.b1.20251011075131 [installed] on /lib/libncursesw.so.9
- FreeBSD-bluetooth-lib-15.0.b1.20251013072425 [FreeBSD-base] conflicts with FreeBSD-bluetooth-15.0.b1.20251011075131 [installed] on /usr/lib/libbluetooth.so.4
- FreeBSD-local-unbound-dev-15.0.b1.20251015211959 [FreeBSD-base] conflicts with FreeBSD-unbound-dev-15.0.b1.20251011075131 [installed] on /usr/lib/libprivateunbound.a
- FreeBSD-local-unbound-15.0.b1.20251015211959 [FreeBSD-base] conflicts with FreeBSD-unbound-15.0.b1.20251011075131 [installed] on /etc/rc.d/local_unbound
Checking integrity... done (0 conflicting)
The following 208 package(s) will be affected (of 0 checked):
New packages to be INSTALLED:
FreeBSD-clibs-lib32: 15.0.b1.20251012072228 [FreeBSD-base]
FreeBSD-local-unbound: 15.0.b1.20251015211959 [FreeBSD-base]
FreeBSD-local-unbound-dev: 15.0.b1.20251015211959 [FreeBSD-base]
FreeBSD-ncurses-lib: 15.0.b1.20251015211959 [FreeBSD-base]
Installed packages to be UPGRADED:
FreeBSD-acct: 15.0.b1.20251011075131 -> 15.0.b1.20251012072228 [FreeBSD-base]
FreeBSD-acpi: 15.0.b1.20251011075131 -> 15.0.b1.20251012072228 [FreeBSD-base]
FreeBSD-apm: 15.0.b1.20251011075131 -> 15.0.b1.20251012072228 [FreeBSD-base]
(...)
FreeBSD-zfs-dev: 15.0.b1.20251011075131 -> 15.0.b1.20251012072228 [FreeBSD-base]
FreeBSD-zfs-lib: 15.0.b1.20251011075131 -> 15.0.b1.20251012072228 [FreeBSD-base]
FreeBSD-zoneinfo: 15.0.b1.20251011075131 -> 15.0.b1.20251012072228 [FreeBSD-base]
Installed packages to be REMOVED:
FreeBSD-unbound: 15.0.b1.20251011075131
FreeBSD-unbound-dev: 15.0.b1.20251011075131
Number of packages to be removed: 2
Number of packages to be installed: 4
Number of packages to be upgraded: 202
The process will require 4 MiB more space.
Proceed with this action? [y/N]: y
[1/281] Upgrading FreeBSD-kernel-generic from 15.0.b1.20251011075131 to 15.0.b2.20251017190138...
[1/281] Extracting FreeBSD-kernel-generic-15.0.b2.20251017190138: 100%
[2/281] Deinstalling FreeBSD-set-base-15.0.b1.20251011075131...
(...)
[279/281] Extracting FreeBSD-zfs-dev-15.0.b1.20251012072228: 100%
[280/281] Installing FreeBSD-set-devel-15.0.b1.20251015211959...
[281/281] Installing FreeBSD-set-base-15.0.b1.20251012072228...
root@pkgbase:~ # freebsd-version -k
15.0-BETA2
root@pkgbase:~ # freebsd-version -u
15.0-BETA2
root@pkgbase:~ # freebsd-version -r
15.0-BETA1
root@pkgbase:~ # uname -prism
FreeBSD 15.0-BETA1 amd64 amd64 GENERIC
We may reboot now.
In both cases – for some reason – the FreeBSD-clibs-lib32 packages was pulled in as dependency … but You can delete it afterwards – it does not have any deps or reqs.
root@pkgbase:~ # pkg info | grep lib32
FreeBSD-clibs-lib32-15.0.b1.20251012072228 Core runtime libraries (32-bit libraries)
root@pkgbase:~ # pkg delete FreeBSD-clibs-lib32-15.0.b1.20251012072228
Cannot solve problem using SAT solver, trying another plan
(...)
Cannot solve problem using SAT solver, trying another plan
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):
Installed packages to be REMOVED:
FreeBSD-clibs-lib32: 15.0.b1.20251012072228
Number of packages to be removed: 1
The operation will free 4 MiB.
Proceed with deinstalling packages? [y/N]: y
[1/1] Deinstalling FreeBSD-clibs-lib32-15.0.b1.20251012072228...
[1/1] Deleting files for FreeBSD-clibs-lib32-15.0.b1.20251012072228: 100%
Vital
Some packages will be marked as vital to prevent pkg delete -a from working and making damage – but vital concept does NOT protect against pkg delete -af since the understanding is that force -f flag specifically means “I know what I am doing – remove the packages at all costs.” … You have been warned.
PKGBASE Jails
The bsdinstall(8) installer has been updated with pkgbase --jail option that allows to populate a directory as FreeBSD Jail.
This is the recipe.
root@pkgbase:~ # mkdir -pv /jail/NEW
/jail
/jail/NEW
root@pkgbase:~ # export BSDINSTALL_CHROOT=/jail/NEW
root@pkgbase:~ # env TERM=xterm bsdinstall pkgbase --jail
Next select needed sets and proceed.

After installation there are 178 pkg(8) packages installed.
root@pkgbase:~ # pkg -r /jail/NEW info | wc -l
178
root@pkgbase:~ # pkg -r /jail/NEW info -as | sort -k 2 -h | column -t | tail -10
FreeBSD-libmagic-15.snap20251011015136 11.8MiB
FreeBSD-utilities-dev-15.snap20251017141652 17.1MiB
FreeBSD-lldb-15.snap20251011015136 18.4MiB
FreeBSD-zfs-dev-15.snap20251011015136 22.1MiB
FreeBSD-locales-15.snap20251011015136 24.3MiB
FreeBSD-openssl-dev-15.snap20251011015136 32.8MiB
FreeBSD-utilities-15.snap20251017141652 49.3MiB
FreeBSD-clibs-dev-15.snap20251018120849 59.2MiB
FreeBSD-clang-dev-15.snap20251011015136 70.4MiB
FreeBSD-clang-15.snap20251015183322 149MiB
root@pkgbase:~ # du -smA /jail/NEW
804 /jail/NEW
Keep in mind that the pkg(8) is still not bootstrapped – we can do that now.
root@pkgbase:~ # chroot /jail/NEW/
[jail] root@pkgbase:/ # echo nameserver 9.9.9.9 > /etc/resolv.conf
[jail] root@pkgbase:/ # mount -t devfs devfs /dev
[jail] root@pkgbase:/ # pkg info
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg from pkg+https://pkg.FreeBSD.org/FreeBSD:15:amd64/latest, please wait...
Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
Updating FreeBSD-ports repository catalogue...
Fetching meta.conf: 100% 179 B 0.2kB/s 00:01
Fetching data.pkg: 100% 10 MiB 2.6MB/s 00:04
Processing entries: 100%
FreeBSD-ports repository update completed. 36389 packages processed.
Updating FreeBSD-ports-kmods repository catalogue...
Fetching meta.conf: 100% 179 B 0.2kB/s 00:01
Fetching data.pkg: 100% 29 KiB 29.3kB/s 00:01
Processing entries: 100%
FreeBSD-ports-kmods repository update completed. 200 packages processed.
Updating FreeBSD-base repository catalogue...
FreeBSD-base repository is up to date.
All repositories are up to date.
… as you not need CLANG compiler in the Jail you may as well remove that part – same as many others – this is where PKGBASE helps.
[jail] root@pkgbase:/ # pkg delete -f FreeBSD-clang-15.snap20251015183322 FreeBSD-clang-dev-15.snap20251011015136
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 2 packages (of 0 packages in the universe):
Installed packages to be REMOVED:
FreeBSD-clang: 15.snap20251015183322
FreeBSD-clang-dev: 15.snap20251011015136
Number of packages to be removed: 2
The operation will free 220 MiB.
Proceed with deinstalling packages? [y/N]: y
[1/2] Deinstalling FreeBSD-clang-dev-15.snap20251011015136...
[1/2] Deleting files for FreeBSD-clang-dev-15.snap20251011015136: 100%
[2/2] Deinstalling FreeBSD-clang-15.snap20251015183322...
[2/2] Deleting files for FreeBSD-clang-15.snap20251015183322: 100%
[jail] root@pkgbase:/ # du -smA .
704 .
100 MB less space.
Additional Independent Rescue
Often in a serious problem the FreeBSD Rescue subsystem located at /rescue is the last resort help … but it will also be removed – as any other package.

The good news is that nothing prevents You from creating your own even more secure /RESCUE that will be entirely independent from pkg(8) command operations.

Do not just copy /rescue dir with cp(1) command as it will take almost 3 GB (1.5 GB after ZFS compression) with such operation π
root@pkgbase:/ # cp -ap /rescue /RESCUE
root@pkgbase:/ # du -sm /rescue /RESCUE
10 /rescue
1357 /RESCUE
root@pkgbase:/ # du -smA /rescue /RESCUE
20 /rescue
2855 /RESCUE
Here is how to create it in intelligent way – so it will only took the same small amount of space as original /rescue – with ln(1) hardlinks.
root@pkgbase:/ # mkdir /RESCUE
root@pkgbase:/ # cp /rescue/bectl /RESCUE/bectl
root@pkgbase:/ # cp /usr/local/sbin/pkg-static /RESCUE
root@pkgbase:/ # tar -cf /RESCUE/boot.tar /boot
tar: Removing leading '/' from member names
root@pkgbase:/ # ls -1 /rescue | while read I; do ln /RESCUE/bectl /RESCUE/"${I}"; done
ln: /RESCUE/bectl and /RESCUE/bectl are the same directory entry
root@pkgbase:/ # du -sm /rescue /RESCUE
11 /rescue
99 /RESCUE
root@pkgbase:/ # ls /rescue | wc -l
148
root@pkgbase:/ # ls /RESCUE | wc -l
152
root@pkgbase:/ # /RESCUE/bectl list
BE Active Mountpoint Space Created
backup - - 393M 2025-10-18 23:35
default NR / 1.42G 2025-10-18 16:31
new - - 8K 2025-10-20 12:46
You now have additional protection in case of serious emergency.
Our new /RESCUE is even better then the original on as we also have pkg-static(8) there … and a copy of /boot directory – so even if you wipe all FreeBSD system with pkg delete -fay you can restore the /boot and reboot into other ZFS Boot Environment π
The rescue procedure looks like that one below.
root@pkgbase:~ # /RESCUE/tar -C / -xf /RESCUE/boot.tar
tar: Failed to set default locale
boot/efi/: Can't restore time: Invalid argument
tar: Error exit delayed from previous errors.
root@pkgbase:~ # /RESCUE/reboot
After reboot the FreeBSD loader(8) will welcome you with possibility to select different ZFS Boot Environment.

In the Works …
As final PKGBASE world had not yet settled – expect additions and updates to this article as soon as new info gets to me.
… and feel free to share your findings and hints for living in the PKGBASE world.
UPDATE 1 – Safely Remove All Third Party Packages
After evaluating possible ways I currently use this solution below as a replacement for pkg delete -yaf from before PKGBASE times.
First – the pkg query '%o %R' prints ORIGIN and REPOSITORY as list.
The column(1) command used only to make it more readable/aligned.
pkgbase # pkg query '%o %R' | column -t
(...)
base/FreeBSD-zlib FreeBSD-base
base/FreeBSD-zlib-dev FreeBSD-base
base/FreeBSD-zoneinfo FreeBSD-base
sysutils/beadm FreeBSD-ports
sysutils/lsblk FreeBSD-ports
ports-mgmt/pkg FreeBSD-base
So we can check the 2nd column using awk(1) for FreeBSD-ports value … and print only the ORIGIN.
pkgbase # pkg query '%o %R' | awk '$2=="FreeBSD-ports" {print $1}'
sysutils/beadm
sysutils/lsblk
Notice that since PKGBASE the pkg(8) is now registered as PKGBASE package.
Now – to remove all third party packages we can do this below.
pkgbase # pkg query '%o %R' | awk '$2=="FreeBSD-ports" {print $1}' | xargs -n1 echo pkg delete -f -y
pkg delete sysutils/beadm
pkg delete sysutils/lsblk
Now – to REALLY remove these packages first remove the echo safety switch from the command above to make it work – because right now it only prints instructions that will remove packages.
EOF