Aptivi<p><strong>FreeBSD has a system-breaking bug that removes almost the whole base system!</strong></p><p>FreeBSD 15 is an upcoming release that provides many improvements in terms of user experience, such as introducing the installation option to allow users to install the GUI easily as <a href="https://officialaptivi.wordpress.com/2025/07/23/freebsd-15-makes-graphical-installation-easier/" rel="nofollow noopener" target="_blank">outlined in an earlier article</a>. However, it has a severe bug that actually causes almost the whole base system to be obliterated; something that should be fixed before the official release. This is actually a violation of one of the selling points in a FreeBSD systems, which is the untouchable base system.</p><p>When you’re running a FreeBSD 15 system with PKGBASE as the installation method, there are several commands in the <code>pkg</code> command that allows you to manage your packages. One of those commands is <code>pkg delete</code>, which allows you to delete a package from your system easily. But, what happens when you run <code>pkg delete -af</code>?</p><p>First, the <a href="https://man.freebsd.org/cgi/man.cgi?query=pkg-delete&sektion=8&n=1" rel="nofollow noopener" target="_blank">manual page</a> for <code>pkg</code> in FreeBSD 14 states:</p> <pre>OPTIONS The following options are supported by pkg delete: -a, --all Deletes allinstalled packages except for pkg(8) from the system and cleans thedatabase of informationrelatedto re- movedpackages. [...] -f, --force Forces packages to beremoveddespiteleavingunresolved de- pendencies. In combination with the -a or --all flag, causes pkg(8)to be removed as well as all other packages.</pre> <p>In the PKGBASE system, <code>pkg delete -af</code> deletes all packages except the vital packages that are needed for the system to be running. However, in the current snapshot of FreeBSD 15, this command overdoes the deletion operation, because it removes all the packages except the two packages it considers vital:</p><ul><li>FreeBSD-clibs</li><li>FreeBSD-runtime</li></ul><p>Once done, your system will be in a state where rescue is impossible (unless you have an installation DVD handy) because the /rescue directory, which is installed by the unprotected <code>FreeBSD-rescue</code> package, is deleted. Also, you’ll find yourself unable to run even the most essential programs, such as the renowned VI text editor.</p><p>This is a system-breaking bug that was first reported by vermaden in <a href="https://github.com/freebsd/pkg/issues/2485" rel="nofollow noopener" target="_blank">GitHub</a> and in the <a href="https://lists.freebsd.org/archives/freebsd-pkgbase/2025-July/000590.html" rel="nofollow noopener" target="_blank">mailing list</a>. Fortunately, FreeBSD 15 is at its very early development stages, so the FreeBSD team of developers have plenty of time to make sure that they get it right by filtering more vital packages from the non-vital ones.</p><p>Our tests in a test FreeBSD 15 virtual machine concluded that the following operation happened:</p> <pre>root@apttestfbsd:~ # pkg delete -afThe package management tool is not yet installed on your system.Do you want to fetch and install it now? [y/N]: yBootstrapping pkg from pkg+https://pkg.FreeBSD.org/FreeBSD:15:amd64/latest, please wait...Verifying signature with trusted certificate pkg.freebsd.org.2013102301... doneInstalling pkg-2.2.1...Extracting pkg-2.2.1: 100%Updating database digests format: 100%Checking integrity... done (0 conflicting)Deinstallation has been requested for the following 287 packages (of 0 packages in the universe):Installed packages to be REMOVED: FreeBSD-acct: 15.snap20250720000631 FreeBSD-acct-man: 15.snap20250716180420 FreeBSD-acpi: 15.snap20250720000631 FreeBSD-acpi-man: 15.snap20241026125659 FreeBSD-apm: 15.snap20250717170756 FreeBSD-apm-man: 15.snap20241026125659 FreeBSD-at: 15.snap20250720000631 FreeBSD-at-man: 15.snap20241026125659 FreeBSD-audit: 15.snap20250720000631 FreeBSD-audit-dev: 15.snap20250707041723 FreeBSD-audit-man: 15.snap20241026125659 FreeBSD-autofs: 15.snap20250720000631 FreeBSD-autofs-man: 15.snap20241026125659 FreeBSD-bhyve: 15.snap20250720000631 FreeBSD-bhyve-man: 15.snap20250521163614 FreeBSD-blocklist: 15.snap20250720000631 FreeBSD-blocklist-dev: 15.snap20250707041723 FreeBSD-blocklist-man: 15.snap20250203152159 FreeBSD-bluetooth: 15.snap20250721070021 FreeBSD-bluetooth-dev: 15.snap20250707041723 FreeBSD-bluetooth-man: 15.snap20250130000845 FreeBSD-bootloader: 15.snap20250720013240 FreeBSD-bootloader-dev: 15.snap20250720013240 FreeBSD-bsdinstall: 15.snap20250720000631 FreeBSD-bsdinstall-man: 15.snap20250428171657 FreeBSD-bsnmp: 15.snap20250720013240 FreeBSD-bsnmp-dev: 15.snap20250717170756 FreeBSD-bsnmp-man: 15.snap20241026125659 FreeBSD-caroot: 15.snap20250717191755 FreeBSD-ccdconfig: 15.snap20250720000631 FreeBSD-ccdconfig-man: 15.snap20250123170723 FreeBSD-certctl: 15.snap20250717191755 FreeBSD-certctl-man: 15.snap20250717191755 FreeBSD-clang: 15.snap20250720013240 FreeBSD-clang-dev: 15.snap20250720013240 FreeBSD-clang-man: 15.snap20250505204745 FreeBSD-clibs: 15.snap20250721055341 FreeBSD-clibs-dev: 15.snap20250721091450 FreeBSD-clibs-man: 15.snap20250720162031 FreeBSD-console-tools: 15.snap20250720000631 FreeBSD-console-tools-man: 15.snap20241026125659 FreeBSD-cron: 15.snap20250720000631 FreeBSD-cron-man: 15.snap20241026125659 FreeBSD-csh: 15.snap20250720000631 FreeBSD-csh-man: 15.snap20241026125659 FreeBSD-ctf-tools: 15.snap20250720000631 FreeBSD-ctf-tools-man: 15.snap20250616132851 FreeBSD-ctl: 15.snap20250720000631 FreeBSD-ctl-man: 15.snap20250528033824 FreeBSD-cxgbe-tools: 15.snap20250720000631 FreeBSD-cxgbe-tools-man: 15.snap20250519031828 FreeBSD-devd: 15.snap20250720000631 FreeBSD-devd-man: 15.snap20250709143654 FreeBSD-devmatch: 15.snap20250720000631 FreeBSD-devmatch-dev: 15.snap20250611191401 FreeBSD-devmatch-man: 15.snap20250130000845 FreeBSD-dhclient: 15.snap20250720000631 FreeBSD-dhclient-man: 15.snap20241026125659 FreeBSD-dma: 15.snap20250720000631 FreeBSD-dma-man: 15.snap20241026125659 FreeBSD-dtrace: 15.snap20250720000631 FreeBSD-dtrace-dev: 15.snap20250707211642 FreeBSD-dtrace-man: 15.snap20250716103437 FreeBSD-dwatch: 15.snap20241026125659 FreeBSD-dwatch-man: 15.snap20250419184622 FreeBSD-ee: 15.snap20250717170756 FreeBSD-ee-man: 15.snap20241026125659 FreeBSD-efi-tools: 15.snap20250720000631 FreeBSD-efi-tools-dev: 15.snap20250707041723 FreeBSD-efi-tools-man: 15.snap20250716180420 FreeBSD-examples: 15.snap20250710194216 FreeBSD-fd: 15.snap20250717170756 FreeBSD-fd-man: 15.snap20250515020636 FreeBSD-fetch: 15.snap20250720000631 FreeBSD-fetch-dev: 15.snap20250717170756 FreeBSD-fetch-man: 15.snap20241026125659 FreeBSD-firmware-iwm: 15.snap20241216095300 FreeBSD-ftp: 15.snap20250720000631 FreeBSD-ftp-man: 15.snap20241026125659 FreeBSD-ftpd: 15.snap20250720000631 FreeBSD-ftpd-man: 15.snap20250626130045 FreeBSD-fwget: 15.snap20250716180420 FreeBSD-fwget-man: 15.snap20250716180420 FreeBSD-games: 15.snap20250720000631 FreeBSD-games-man: 15.snap20241026125659 FreeBSD-geom: 15.snap20250720000631 FreeBSD-geom-man: 15.snap20250428160923 FreeBSD-ggate: 15.snap20250720000631 FreeBSD-ggate-man: 15.snap20241026125659 FreeBSD-hast: 15.snap20250720000631 FreeBSD-hast-man: 15.snap20241026125659 FreeBSD-hostapd: 15.snap20250720000631 FreeBSD-hostapd-man: 15.snap20241026125659 FreeBSD-hyperv-tools: 15.snap20250720000631 FreeBSD-hyperv-tools-man: 15.snap20241026125659 FreeBSD-inetd: 15.snap20250720000631 FreeBSD-inetd-man: 15.snap20241026125659 FreeBSD-ipf: 15.snap20250720000631 FreeBSD-ipf-man: 15.snap20250304221631 FreeBSD-ipfw: 15.snap20250720000631 FreeBSD-ipfw-man: 15.snap20250418123705 FreeBSD-iscsi: 15.snap20250720000631 FreeBSD-iscsi-man: 15.snap20250716180420 FreeBSD-jail: 15.snap20250720013240 FreeBSD-jail-man: 15.snap20250616132851 FreeBSD-kerberos: 15.snap20250720000631 FreeBSD-kerberos-lib: 15.snap20250720000631 FreeBSD-kerberos-lib-dev: 15.snap20250708002345 FreeBSD-kerberos-lib-man: 15.snap20241026125659 FreeBSD-kerberos-man: 15.snap20241028160252 FreeBSD-kernel-generic: 15.snap20250721091450 FreeBSD-lib9p: 15.snap20250720000631 FreeBSD-lib9p-dev: 15.snap20250707041723 FreeBSD-libarchive: 15.snap20250720000631 FreeBSD-libarchive-dev: 15.snap20250707041723 FreeBSD-libarchive-man: 15.snap20250601213626 FreeBSD-libbegemot: 15.snap20250717170756 FreeBSD-libbegemot-dev: 15.snap20250717170756 FreeBSD-libbegemot-man: 15.snap20241026125659 FreeBSD-libblocksruntime: 15.snap20250616183901 FreeBSD-libblocksruntime-dev: 15.snap20250611191401 FreeBSD-libbsdstat: 15.snap20250616183901 FreeBSD-libbsdstat-dev: 15.snap20250611191401 FreeBSD-libbsm: 15.snap20250720000631 FreeBSD-libbsm-dev: 15.snap20250707041723 FreeBSD-libbsm-man: 15.snap20241026125659 FreeBSD-libbz2: 15.snap20250616183901 FreeBSD-libbz2-dev: 15.snap20250611191401 FreeBSD-libcasper: 15.snap20250720000631 FreeBSD-libcasper-dev: 15.snap20250612202243 FreeBSD-libcasper-man: 15.snap20241026125659 FreeBSD-libcompat-dev: 15.snap20250707041723 FreeBSD-libcompat-man: 15.snap20241026125659 FreeBSD-libcompiler_rt-dev: 15.snap20250612001522 FreeBSD-libcuse: 15.snap20250720000631 FreeBSD-libcuse-dev: 15.snap20250707041723 FreeBSD-libcuse-man: 15.snap20241026125659 FreeBSD-libdwarf: 15.snap20250720000631 FreeBSD-libdwarf-dev: 15.snap20250612030328 FreeBSD-libdwarf-man: 15.snap20241026125659 FreeBSD-libevent1: 15.snap20250707041723 FreeBSD-libevent1-dev: 15.snap20250707041723 FreeBSD-libexecinfo: 15.snap20250720000631 FreeBSD-libexecinfo-dev: 15.snap20250707041723 FreeBSD-libexecinfo-man: 15.snap20241026125659 FreeBSD-libipt: 15.snap20250707041723 FreeBSD-libipt-dev: 15.snap20250707041723 FreeBSD-libldns: 15.snap20250720000631 FreeBSD-libldns-dev: 15.snap20250707041723 FreeBSD-liblzma: 15.snap20250720000631 FreeBSD-liblzma-dev: 15.snap20250612001522 FreeBSD-libmagic: 15.snap20250720000631 FreeBSD-libmagic-dev: 15.snap20250707041723 FreeBSD-libmagic-man: 15.snap20241208191210 FreeBSD-libpathconv: 15.snap20250616183901 FreeBSD-libpathconv-dev: 15.snap20250611191401 FreeBSD-libpathconv-man: 15.snap20241026125659 FreeBSD-librpcsec_gss: 15.snap20250705234744 FreeBSD-librpcsec_gss-dev: 15.snap20250612001522 FreeBSD-librpcsec_gss-man: 15.snap20241026125659 FreeBSD-librss: 15.snap20250720000631 FreeBSD-librss-dev: 15.snap20250707041723 FreeBSD-libsdp: 15.snap20250707041723 FreeBSD-libsdp-dev: 15.snap20250707041723 FreeBSD-libsdp-man: 15.snap20241026125659 FreeBSD-libsqlite3: 15.snap20250708002345 FreeBSD-libsqlite3-dev: 15.snap20250708002345 FreeBSD-libstdbuf: 15.snap20250616183901 FreeBSD-libstdbuf-dev: 15.snap20250611191401 FreeBSD-libstdbuf-man: 15.snap20241026125659 FreeBSD-libstdthreads: 15.snap20250707041723 FreeBSD-libstdthreads-dev: 15.snap20250611191401 FreeBSD-libstdthreads-man: 15.snap20241026125659 FreeBSD-libthread_db: 15.snap20250720000631 FreeBSD-libthread_db-dev: 15.snap20250616132851 FreeBSD-libucl: 15.snap20250720000631 FreeBSD-libucl-dev: 15.snap20250707041723 FreeBSD-libucl-man: 15.snap20241026125659 FreeBSD-libufs: 15.snap20250720000631 FreeBSD-libufs-dev: 15.snap20250707041723 FreeBSD-libufs-man: 15.snap20250505161221 FreeBSD-libvgl: 15.snap20250705234744 FreeBSD-libvgl-dev: 15.snap20250612001522 FreeBSD-libvgl-man: 15.snap20241026125659 FreeBSD-libvmmapi: 15.snap20250720000631 FreeBSD-libvmmapi-dev: 15.snap20250707041723 FreeBSD-liby-dev: 15.snap20250611191401 FreeBSD-libyaml: 15.snap20250626114931 FreeBSD-libyaml-dev: 15.snap20250626114931 FreeBSD-libzfs: 15.snap20250720000631 FreeBSD-libzfs-dev: 15.snap20250707041723 FreeBSD-lld: 15.snap20250720000631 FreeBSD-lld-man: 15.snap20241026125659 FreeBSD-lldb: 15.snap20250720000631 FreeBSD-lldb-dev: 15.snap20250425182925 FreeBSD-lldb-man: 15.snap20241026125659 FreeBSD-locales: 15.snap20241113231628 FreeBSD-lp: 15.snap20250720000631 FreeBSD-lp-man: 15.snap20241026125659 FreeBSD-mlx-tools: 15.snap20250720000631 FreeBSD-mlx-tools-man: 15.snap20241026125659 FreeBSD-mtree: 15.snap20250720000631 FreeBSD-mtree-man: 15.snap20241026125659 FreeBSD-natd: 15.snap20250720000631 FreeBSD-natd-dev: 15.snap20250707041723 FreeBSD-natd-man: 15.snap20250204215803 FreeBSD-netmap: 15.snap20250720000631 FreeBSD-netmap-dev: 15.snap20250707041723 FreeBSD-netmap-man: 15.snap20241026125659 FreeBSD-newsyslog: 15.snap20250720000631 FreeBSD-newsyslog-man: 15.snap20241129050736 FreeBSD-nfs: 15.snap20250720000631 FreeBSD-nfs-man: 15.snap20250716180420 FreeBSD-ntp: 15.snap20250720000631 FreeBSD-ntp-man: 15.snap20241112035500 FreeBSD-nuageinit: 15.snap20250705145802 FreeBSD-nuageinit-man: 15.snap20250626130045 FreeBSD-nvme-tools: 15.snap20250720000631 FreeBSD-nvme-tools-man: 15.snap20250709143654 FreeBSD-openssl: 15.snap20250720000631 FreeBSD-openssl-lib: 15.snap20250720000631 FreeBSD-openssl-lib-dev: 15.snap20250718205142 FreeBSD-openssl-lib-man: 15.snap20241104155004 FreeBSD-openssl-man: 15.snap20241104155004 FreeBSD-periodic: 15.snap20250515020636 FreeBSD-periodic-man: 15.snap20241026125659 FreeBSD-pf: 15.snap20250720000631 FreeBSD-pf-dev: 15.snap20250715101340 FreeBSD-pf-man: 15.snap20250712134400 FreeBSD-pkg-bootstrap: 15.snap20250720000631 FreeBSD-pkg-bootstrap-man: 15.snap20250430011047 FreeBSD-ppp: 15.snap20250720000631 FreeBSD-ppp-man: 15.snap20250204215803 FreeBSD-quotacheck: 15.snap20250720000631 FreeBSD-quotacheck-man: 15.snap20241026125659 FreeBSD-rc: 15.snap20250720013240 FreeBSD-rc-man: 15.snap20250612160001 FreeBSD-rcmds: 15.snap20250720013240 FreeBSD-rcmds-man: 15.snap20250505161221 FreeBSD-rdma: 15.snap20250720000631 FreeBSD-rdma-man: 15.snap20241026125659 FreeBSD-rescue: 15.snap20250720174136 FreeBSD-resolvconf: 15.snap20241026125659 FreeBSD-resolvconf-man: 15.snap20241026125659 FreeBSD-runtime: 15.snap20250720174136 FreeBSD-runtime-dev: 15.snap20250720013240 FreeBSD-runtime-man: 15.snap20250720174136 FreeBSD-sendmail: 15.snap20250720000631 FreeBSD-sendmail-dev: 15.snap20250707041723 FreeBSD-sendmail-man: 15.snap20241026125659 FreeBSD-smbutils: 15.snap20250720000631 FreeBSD-smbutils-dev: 15.snap20250707041723 FreeBSD-smbutils-man: 15.snap20241026125659 FreeBSD-ssh: 15.snap20250720000631 FreeBSD-ssh-dev: 15.snap20250707041723 FreeBSD-ssh-man: 15.snap20250219191646 FreeBSD-syscons-data: 15.snap20241026125659 FreeBSD-syslogd: 15.snap20250720000631 FreeBSD-syslogd-man: 15.snap20241223174616 FreeBSD-tcpd: 15.snap20250720000631 FreeBSD-tcpd-dev: 15.snap20250707041723 FreeBSD-tcpd-man: 15.snap20241026125659 FreeBSD-telnet: 15.snap20250720000631 FreeBSD-telnet-man: 15.snap20241026125659 FreeBSD-toolchain: 15.snap20250720000631 FreeBSD-toolchain-dev: 15.snap20250528033824 FreeBSD-toolchain-man: 15.snap20250616224003 FreeBSD-ufs: 15.snap20250720000631 FreeBSD-ufs-man: 15.snap20250505161221 FreeBSD-unbound: 15.snap20250720000631 FreeBSD-unbound-dev: 15.snap20250707041723 FreeBSD-unbound-man: 15.snap20241026125659 FreeBSD-utilities: 15.snap20250721080623 FreeBSD-utilities-dev: 15.snap20250721070021 FreeBSD-utilities-man: 15.snap20250721070021 FreeBSD-vi: 15.snap20250720000631 FreeBSD-vi-man: 15.snap20250102090848 FreeBSD-vt-data: 15.snap20250617031524 FreeBSD-wpa: 15.snap20250720000631 FreeBSD-wpa-man: 15.snap20241026125659 FreeBSD-yp: 15.snap20250720000631 FreeBSD-yp-man: 15.snap20241026125659 FreeBSD-zfs: 15.snap20250720000631 FreeBSD-zfs-dev: 15.snap20250707041723 FreeBSD-zfs-man: 15.snap20250711002650 FreeBSD-zoneinfo: 15.snap20250521200023 pkg: 2.2.1Number of packages to be removed: 287The operation will free 882 MiB.Proceed with deinstalling packages? [y/N]:</pre> <p>This means that all base packages were removed, therefore matching what vermaden reported.</p><p>Furthermore, the removal of all those packages appears to be successful as in below:</p><p>But, if you try to execute <code>vi</code>, you’ll get a message saying that the command doesn’t exist. Furthermore, when you try to log out of the system using the <code>exit</code> command, you won’t be able to log in again as even <code>getty</code> doesn’t exist.</p><p>Here’s when things become more serious. When you actually try to reboot the system, you’ll never be able to boot to your FreeBSD system again as it’s complaining about the kernel not being found.</p><p>From now, if you’re running the PKGBASE system, don’t use this command for now. Wait until this bug is fixed so that you can then use that command safely.</p><p><strong>We hope that this bug will be fixed before the final release.</strong></p><p><span></span></p><p><a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://officialaptivi.wordpress.com/tag/bugs/" target="_blank">#bugs</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://officialaptivi.wordpress.com/tag/freebsd/" target="_blank">#FreeBSD</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://officialaptivi.wordpress.com/tag/freebsd-15/" target="_blank">#FreeBSD15</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://officialaptivi.wordpress.com/tag/news/" target="_blank">#news</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://officialaptivi.wordpress.com/tag/pkg/" target="_blank">#pkg</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://officialaptivi.wordpress.com/tag/pkg-delete/" target="_blank">#pkgDelete</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://officialaptivi.wordpress.com/tag/pkg-delete-af/" target="_blank">#pkgDeleteAf</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://officialaptivi.wordpress.com/tag/tech/" target="_blank">#Tech</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://officialaptivi.wordpress.com/tag/technology/" target="_blank">#Technology</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://officialaptivi.wordpress.com/tag/update/" target="_blank">#update</a></p>