A Penguin tries out TrueOS, part II

In the first part of this article I’ve covered system installation, first login and GNOME/XFCE desktop environments usage and I’ve had a brief look at the init system of TrueOS.
In this second part I’m reviewing TrueOS’ most exclusive and distinctive feature, the updates’ management.

 

System and packages’ updates

TrueOS is a rolling-release operating system, it means that developers work with one code branch (versus discrete versions as you can find in Ubuntu Linux for example) and update it with frequent (and scheduled) updates so that it is always “fresh” and up-to-date.

Comparing this logic to the one you can find in Debian GNU/Linux, it is quite the same as having a PC with the Debian testing branch installed on it (except while in the feature-freeze time range) but with the certainty that operating system maintainers test updates with the same care as when updating a stable release – as far as it is possible.

Of course: rolling release operating system cannot for sure be used for servers, where you must have 101% certainty that updates won’t break anything or cause incompatibilities.

AppCafe provides a graphical interface for installing and managing FreeBSD packages:

AppCafe

I very like the information it gives about each package (build options and required dependencies in primis).

 

Aystem and packages’ updates in theory

Any software update automatically creates a snapshot of the current operating system, known as a boot environment (which is a feature of the ZFS filesystem), and mounts the snapshot in the background. All of the updates then occur in the snapshot. This means you can safely continue to use your system while it is updating, as no changes are being made to the running version of the operating system or any of the applications currently in use.

Once the update is complete, the new boot environment or updated snapshot is added as the first entry in the boot menu. It is then activated so the system will boot into it, unless you specify otherwise.

The default ZFS layout used by TrueOS ensures when new boot environments are created, the /usr/local/, /usr/home/, /usr/ports/, /usr/src/ and /var/ directories remain untouched. This way, if you decide to roll back to a previous boot environment, you will not lose data in your home directories, any installed applications, or downloaded source files or ports. However, you will return the system to its previous state, before the update was applied.

Update Manager will update all installed software. If you have placed a lock on a package, Update Manager will fail and will generate a message indicating the failure is due to a locked package.

Updates are released in “units”, about twice a month, so many packages are updated at the same time and a boot environment creation is needed each time. This update schedule makes the system usable and smart.

 

Aystem and packages’ updates in practice

During my usage I updated the system once; updates came up about two weeks after I had installed the fresh system.

Once the update task has finished, a reboot was necessary in order to set up the boot environment:

And… the next boot I was able to choose from two (deafult boot is always from the newely created one):

 

My personal conclusion

Having tried out FreeBSD recently, I was scheptical about this BSD-fellow regarding a pure desktop usage.

After a couple of weeks with it, however, I can say that I am really astonished: not only TrueOS pushes FreeBSD to an unprecedented level for desktop-oriented people, but some of its features make a happy Debianized Penguin (as I am) really (really) envious. Of course I’m referring to the update features of this rolling-release operating system mixed up with a conscious use of the ZFS filesystem (and its “layers”).

TrueOS combines the convenience of a rolling release distribution with the failsafe technology of boot environments, resulting in a system that is both current and reliable. TrueOS now tracks FreeBSD’s “Current” branch and merges features from select FreeBSD developer branches to enhance support for newer hardware and technologies. Weekly automatic updates keep your system always up-to-date, and all updates are performed safely within system snapshots called boot environments.

Applause.

 

Looking for more BSD-ish road tests?

 

Good reading – ineteresting books you can buy on eBay

The Definitive Guide to PC-BSD

This book is the ultimate reference for both beginners and power users to PC-BSD-the free, easy-to-use operating system based on FreeBSD. Existing power users will learn how to look under the hood and contribute to the global PC-BSD community. PC-BSD is turning into a hassle-free alternative to Linux on the desktop. * Enjoy secure, virus-free computing * Quickly become a power user

FreeBSD Porter’s Handbook:

The FreeBSD Ports Collection is the way almost everyone installs applications (“ports”) on FreeBSD. In FreeBSD, anyone may submit a new port, or volunteer to maintain an existing unmaintained port. No special commit privilege is needed. This books gvies you a deep insight on how this process works.

FreeBSD v10 Jails:

This workbook will provide step by step instructions to:

* build an infrastructure to support Multiple Jailed systems.
* incorporate ZFS capabilities from beginning to end.
* show how to add new jails and remove unneeded ones.
* connect each jailed system to separate networks.
* maintain your FreeBSD Jail Host and it’s jails.
* backup, archive and restore jails.

The Design and Implementation of the FreeBSD Operating System:

For many years, The Design and Implementation of the FreeBSD Operating System has been recognized as the most complete, up-to-date, and authoritative technical guide to FreeBSD’s internal structure. Now, this definitive guide has been extensively updated to reflect all major FreeBSD improvements between Versions 5 and Versions 11. Approximately one-third of the content in this edition is completely new, and another one-third has been extensively rewritten.

 

  • Ricardo J. Barberis

    If you’re looking for something similar in the Linux world, may I point you to OpenSUSE and snapper?:

    https://en.opensuse.org/Portal:Snapper

    I don’t use it myself (happy Slacker here) but I hear good things about it.