On 2/11/26 02:40, Mathias M. wrote:
> On Thu, Dec 11, 2025 at 12:22:30AM +0000, Lexi Winter wrote:
>>
>> - it offers clear advantages for many users, despite having some rough
>> edges, so there is a user benefit to providing it for people who want
>> to use it;
>>
>
> As a random, long time FreeBSD user:
> Those 'advantages' elude me and are anything but clear.
A package manager keeps track of what to install and later to
uninstall. Before that, freebsd-update and (my main
experience/knowledge) source updates use a set of handcrafted tools to
try to manually remove content that no longer exists because it has been
removed or comes from an option that was disabled for the current build.
Some of those steps have a catch in that if you go too long since its
last cleanup then what it should clean out has been removed from the
list so will be leftover debris which may or may not impact how the
system currently runs. Without a source install, its just a tarball used
to install it but no records are kept for future reference of what was
put in by that extraction or any other steps.
In my opinion the build system's `make delete-old` and similar in my
opinion should have a complete list that is not pruned available even if
it is slower to run. It could be written to be a sequential list that
optionally, but by default, aborts further cleanup steps once something
is no longer present when trying to clean it or it could use 1+ files to
keep track of previously completed cleanup steps to skip ones that are
completed though I'd see the 1+ extra files as likely unneeded bloat by
comparison but it allows for a more reliable cleanup stage without
having to fall back to a full cleanup.
The package manager controlling it means its tracked by a system
designed to track it so uninstall is an actual operation with a better
controlled and tracked outcome. It also opens the door for optional
things to be easily excluded/removed without requiring a rebuild.
One thing I consider a disadvantage if I understand it correctly is
pkg upgrades by doing a full removal + reinstall so anytime a small
change happens for what is covered by a package then it is a larger
operation than should be necessary to download and replace what actually
changed. I'm not sure how much that happens with freebsd-update but
source installs seem to be a full rewrite unless you run it in pieces
and not `make -C /usr/src installworld` or its installkernel operation.
I consider that a limitation of pkg itself and hope that too can change
in the future which will accelerate almost all upgrades and minimize
disk wear for better life on low quality storage devices without
requiring a workaround like ZFS's dedup.
I'm not sure how the other options compare regarding handling dealing
with interrupted/failed updates but from source you can always start
over the install to get back to an expected state as long as you can
boot the system (even from separate media) and can access the build
environment + install destination.