Differences From freebsd-update
In general, there are various differences between freebsd-update
and
freebsd-rustdate
that can show up in using them.
Non-Interactive
Interactive use is avoided outside of commands specially built for it.
Most freebsd-rustdate
commands will do their thing, tell you what else you
might need to do later, then exit.
This is most apparent in upgrade
and somewhat in fetch
. In freebsd-update
, these will both drop you into $PAGER
at the
end with lists of files that will be touched. In freebsd-rustdate
they’ll just
list a summary of how many things will be touched; the show-install
command can then be run if you want to look at more
detail.
Additionally, when running upgrade
you may be merging locally
changed files (e.g., you probably have some things you did in /etc
).
When merge conflicts are found, freebsd-update
makes you resolve them during
the upgrade
run. freebsd-rustdate
leaves resolving them to a later run of
resolve-merges
; trying to run the install
before
doing that will error out and point you at it.
Progress
More effort is made to show progress of long-running operations in context, so you’ll see more progress bars etc. Progress bars exist for most things that take much time, and will do their best to give you an idea of how long they’ll take.
Running as non-root
freebsd-rustdate
has first-class support for running as non-root.
Naturally, it’s probably not so useful if your BaseDir
is /
. But it
means a user can own a subtree (maybe run as a chroot or jail), and use
freebsd-rustdate
themselves on it.
It also makes life way easier when developing. Things like boot
enviroments and schg
flags that won’t work when you’re non-root. And
you better own all the important files. But within those sorta
contraints, it works great.
Argument Parsing
Arguments to freebsd-rustdate
as a whole are separate from arguments to
individual commands. freebsd-update
doesn’t do this, probably mostly because
implementing that on a shell script would be a PITA.
In day-to-day use, you’ll notice this mostly with upgrade
. The
helpfile also shows them, in help
vs help <cmd>
.
Parallelism
Explicit parallelism is used in several places, when fetching files, scanning your system, optionally installing files, etc. This means you can make use of more cores when there’s work for them to do.