Re: Deletion of just installed port-packages: a question [Trying to avoid being part of other somewhat-related discussions]
- Reply: Dag-Erling_Smørgrav : "Re: Deletion of just installed port-packages: a question [Trying to avoid being part of other somewhat-related discussions]"
- In reply to: Jesús_Daniel_Colmenares_Oviedo : "Re: Deletion of just installed port-packages: a question [Trying to avoid being part of other somewhat-related discussions]"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 08 Aug 2025 15:58:02 UTC
On Aug 6, 2025, at 22:44, Jesús Daniel Colmenares Oviedo <dtxdf@freebsd.org> wrote: > Perhaps something like this (with a few additions): > > ``` > pkg query %n | grep -vEe '^(FreeBSD-.+)' | xargs pkg remove -n && pkg autoremove -n && pkg clean -n > ``` "pkg delete -a" (no -f) is documented to exclude deletion of pkg itself. So, may be: pkg query %n | grep -v -Ee '^(FreeBSD-.+)' -Ee '^(pkg)' | xargs pkg remove -n && pkg autoremove -n && pkg clean -n Also: I'm not sure that pkg clean -n is appropriate for main or stable/* where the upstream updates can happen multiple times per day and could easily lead to removals from /var/cache/pkg/ between deliberate pkgbase updates. WARNING: Last I tried, "pkg delete -a" in a pkgbase context left pkg present --but broken!-- by deleting system things pkg and pkg-static needed to be operational. pkg-static tries to run other programs --and so is not fully self contained to be fully operational, despite its static build. I've not analyzed the transitive closure of the indirect usage. As for /usr/local/sbin/pkg : a lot has to be in place just for t he libraries to load (the below example is based on what I happen to be currently running, a main [os: 15] context): In short form . . . # ldd /usr/local/sbin/pkg /usr/local/sbin/pkg: libelf.so.2 => /lib/libelf.so.2 (0x6b7b34403000) libjail.so.1 => /lib/libjail.so.1 (0x6b7b34881000) libm.so.5 => /lib/libm.so.5 (0x6b7b3d540000) libarchive.so.7 => /usr/lib/libarchive.so.7 (0x6b7b45240000) libz.so.6 => /lib/libz.so.6 (0x6b7b34f22000) libutil.so.9 => /lib/libutil.so.9 (0x6b7b35e79000) libssl.so.30 => /usr/lib/libssl.so.30 (0x6b7b4cc60000) libcrypto.so.30 => /lib/libcrypto.so.30 (0x6b7b36200000) libthr.so.3 => /lib/libthr.so.3 (0x6b7b37092000) libc.so.7 => /lib/libc.so.7 (0x6b7b37600000) libbz2.so.4 => /usr/lib/libbz2.so.4 (0x6b7b37b2b000) liblzma.so.5 => /usr/lib/liblzma.so.5 (0x6b7b58660000) libbsdxml.so.4 => /lib/libbsdxml.so.4 (0x6b7b3856c000) libprivatezstd.so.5 => /usr/lib/libprivatezstd.so.5 (0x6b7b64080000) libsys.so.7 => /lib/libsys.so.7 (0x6b7b6d8b0000) libmd.so.7 => /lib/libmd.so.7 (0x6b7b3940b000) libelf.so.2 and libjail.so.1 are unique compared to /usr/sbin/pkg . (See below.) Even /usr/sbin/pkg needs a lot of libraries to be loaded in order to operate: In short form . . . # ldd /usr/sbin/pkg /usr/sbin/pkg: libarchive.so.7 => /usr/lib/libarchive.so.7 (0x650fcbbe0000) libfetch.so.6 => /usr/lib/libfetch.so.6 (0x650fbaffd000) libprivateucl.so.1 => /usr/lib/libprivateucl.so.1 (0x650fbb7c1000) libcrypto.so.30 => /lib/libcrypto.so.30 (0x650fbba00000) libssl.so.30 => /usr/lib/libssl.so.30 (0x650fd36f0000) libutil.so.9 => /lib/libutil.so.9 (0x650fbc29e000) libmd.so.7 => /lib/libmd.so.7 (0x650fb9bf2000) libc.so.7 => /lib/libc.so.7 (0x650fbe000000) libz.so.6 => /lib/libz.so.6 (0x650fbc96c000) libbz2.so.4 => /usr/lib/libbz2.so.4 (0x650fbab03000) liblzma.so.5 => /usr/lib/liblzma.so.5 (0x650fe1cf0000) libbsdxml.so.4 => /lib/libbsdxml.so.4 (0x650fbe53d000) libprivatezstd.so.5 => /usr/lib/libprivatezstd.so.5 (0x650fe6f60000) libm.so.5 => /lib/libm.so.5 (0x650fea7b0000) libthr.so.3 => /lib/libthr.so.3 (0x650fbdb6a000) libsys.so.7 => /lib/libsys.so.7 (0x650ff7d40000) libfetch.so.6 and libprivateucl.so.1 are unique compared to /usr/local/sbin/pkg . (See earlier.) In long form, tracing dependencies, those are: # ldd -a /usr/local/sbin/pkg /usr/local/sbin/pkg: libelf.so.2 => /lib/libelf.so.2 (0x675c6aa14000) libjail.so.1 => /lib/libjail.so.1 (0x675c6b4da000) libm.so.5 => /lib/libm.so.5 (0x675c6c480000) libarchive.so.7 => /usr/lib/libarchive.so.7 (0x675c702b0000) libz.so.6 => /lib/libz.so.6 (0x675c6c62d000) libutil.so.9 => /lib/libutil.so.9 (0x675c6c93b000) libssl.so.30 => /usr/lib/libssl.so.30 (0x675c7ed40000) libcrypto.so.30 => /lib/libcrypto.so.30 (0x675c6d400000) libthr.so.3 => /lib/libthr.so.3 (0x675c6e7f5000) libc.so.7 => /lib/libc.so.7 (0x675c71200000) /lib/libelf.so.2: libc.so.7 => /lib/libc.so.7 (0x675c71200000) /lib/libjail.so.1: libc.so.7 => /lib/libc.so.7 (0x675c71200000) /lib/libm.so.5: libc.so.7 => /lib/libc.so.7 (0x675c71200000) /usr/lib/libarchive.so.7: libz.so.6 => /lib/libz.so.6 (0x675c6c62d000) libbz2.so.4 => /usr/lib/libbz2.so.4 (0x675c6f34c000) liblzma.so.5 => /usr/lib/liblzma.so.5 (0x675c7f1d0000) libbsdxml.so.4 => /lib/libbsdxml.so.4 (0x675c71aaa000) libprivatezstd.so.5 => /usr/lib/libprivatezstd.so.5 (0x675c8e1b0000) libcrypto.so.30 => /lib/libcrypto.so.30 (0x675c6d400000) libc.so.7 => /lib/libc.so.7 (0x675c71200000) /lib/libz.so.6: libc.so.7 => /lib/libc.so.7 (0x675c71200000) /lib/libutil.so.9: libc.so.7 => /lib/libc.so.7 (0x675c71200000) /usr/lib/libssl.so.30: libcrypto.so.30 => /lib/libcrypto.so.30 (0x675c6d400000) libc.so.7 => /lib/libc.so.7 (0x675c71200000) /lib/libcrypto.so.30: libthr.so.3 => /lib/libthr.so.3 (0x675c6e7f5000) libc.so.7 => /lib/libc.so.7 (0x675c71200000) /lib/libthr.so.3: libc.so.7 => /lib/libc.so.7 (0x675c71200000) libsys.so.7 => /lib/libsys.so.7 (0x675c98c80000) /lib/libc.so.7: libsys.so.7 => /lib/libsys.so.7 (0x675c98c80000) /usr/lib/libbz2.so.4: libc.so.7 => /lib/libc.so.7 (0x675c71200000) /usr/lib/liblzma.so.5: libmd.so.7 => /lib/libmd.so.7 (0x675c72717000) libthr.so.3 => /lib/libthr.so.3 (0x675c6e7f5000) libc.so.7 => /lib/libc.so.7 (0x675c71200000) /lib/libbsdxml.so.4: libc.so.7 => /lib/libc.so.7 (0x675c71200000) /usr/lib/libprivatezstd.so.5: libthr.so.3 => /lib/libthr.so.3 (0x675c6e7f5000) libc.so.7 => /lib/libc.so.7 (0x675c71200000) /lib/libmd.so.7: libc.so.7 => /lib/libc.so.7 (0x675c71200000) # ldd -a /usr/sbin/pkg /usr/sbin/pkg: libarchive.so.7 => /usr/lib/libarchive.so.7 (0x7e8bfc380000) libfetch.so.6 => /usr/lib/libfetch.so.6 (0x7e8bf18e2000) libprivateucl.so.1 => /usr/lib/libprivateucl.so.1 (0x7e8bf1d74000) libcrypto.so.30 => /lib/libcrypto.so.30 (0x7e8bf5600000) libssl.so.30 => /usr/lib/libssl.so.30 (0x7e8c09220000) libutil.so.9 => /lib/libutil.so.9 (0x7e8bf2282000) libmd.so.7 => /lib/libmd.so.7 (0x7e8bf31d1000) libc.so.7 => /lib/libc.so.7 (0x7e8bf6400000) /usr/lib/libarchive.so.7: libz.so.6 => /lib/libz.so.6 (0x7e8bf4e96000) libbz2.so.4 => /usr/lib/libbz2.so.4 (0x7e8bf696f000) liblzma.so.5 => /usr/lib/liblzma.so.5 (0x7e8c0b8a0000) libbsdxml.so.4 => /lib/libbsdxml.so.4 (0x7e8bf6c0b000) libprivatezstd.so.5 => /usr/lib/libprivatezstd.so.5 (0x7e8c0c790000) libcrypto.so.30 => /lib/libcrypto.so.30 (0x7e8bf5600000) libc.so.7 => /lib/libc.so.7 (0x7e8bf6400000) /usr/lib/libfetch.so.6: libssl.so.30 => /usr/lib/libssl.so.30 (0x7e8c09220000) libcrypto.so.30 => /lib/libcrypto.so.30 (0x7e8bf5600000) libc.so.7 => /lib/libc.so.7 (0x7e8bf6400000) /usr/lib/libprivateucl.so.1: libm.so.5 => /lib/libm.so.5 (0x7e8c19580000) libc.so.7 => /lib/libc.so.7 (0x7e8bf6400000) /lib/libcrypto.so.30: libthr.so.3 => /lib/libthr.so.3 (0x7e8bf7348000) libc.so.7 => /lib/libc.so.7 (0x7e8bf6400000) /usr/lib/libssl.so.30: libcrypto.so.30 => /lib/libcrypto.so.30 (0x7e8bf5600000) libc.so.7 => /lib/libc.so.7 (0x7e8bf6400000) /lib/libutil.so.9: libc.so.7 => /lib/libc.so.7 (0x7e8bf6400000) /lib/libmd.so.7: libc.so.7 => /lib/libc.so.7 (0x7e8bf6400000) /lib/libc.so.7: libsys.so.7 => /lib/libsys.so.7 (0x7e8c25550000) /lib/libz.so.6: libc.so.7 => /lib/libc.so.7 (0x7e8bf6400000) /usr/lib/libbz2.so.4: libc.so.7 => /lib/libc.so.7 (0x7e8bf6400000) /usr/lib/liblzma.so.5: libmd.so.7 => /lib/libmd.so.7 (0x7e8bf31d1000) libthr.so.3 => /lib/libthr.so.3 (0x7e8bf7348000) libc.so.7 => /lib/libc.so.7 (0x7e8bf6400000) /lib/libbsdxml.so.4: libc.so.7 => /lib/libc.so.7 (0x7e8bf6400000) /usr/lib/libprivatezstd.so.5: libthr.so.3 => /lib/libthr.so.3 (0x7e8bf7348000) libc.so.7 => /lib/libc.so.7 (0x7e8bf6400000) /lib/libm.so.5: libc.so.7 => /lib/libc.so.7 (0x7e8bf6400000) /lib/libthr.so.3: libc.so.7 => /lib/libc.so.7 (0x7e8bf6400000) libsys.so.7 => /lib/libsys.so.7 (0x7e8c25550000) > On 8/6/25 23:42, Mark Millard wrote: >> Is there a known alternative to the command: >> >> chroot /FBSDFSSDroot-mnt/ pkg-static delete -a >> >> that would only delete port-packages, even if the >> chroot's world was based on a pkgbase world >> installation? >> >> If yes, what would the command be like? > === Mark Millard marklmi at yahoo.com