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.