A Penguin tries out TrueOS, formerly PC-BSD, part I

TrueOS is a rolling-release, desktop-oriented operating system built upon the FreeBSD-CURRENT branch. Its aim is to add desktop-usability, speed and grace to an elephant. It is more a FreeBSD tuning than a fork of it, anyway.

TrueOS is formerly known as PC-BSD; project changed its name, became rolling and mostly dropped pbi’s in late 2016.

I tried out FreeBSD just a few days ago as a desktop environment and concluded:

I am pretty sure (and I know) that FreeBSD is an impressive operating system for servers and I like some of its default security features and of course its filesystem. As a desktop operating system, however, it seems a bit crude and sluggish. Some package dependency problems prevent a flawless installation of the software and it lacks (as far as I know) a proper graphical network manager.

Thus, honestly, my expectations (as a debianized Penguin) were low also for its derivative.

 

Installation

I used TrueOS 2017-02-22 on VirtualBox, because only a x64 image file is provided, and my very old PC (where I do the tests) is… very old (I told you, right?), so 32-bit.

Installation process was really easy and straightforward. The graphical installer asked me for just a couple of settings; leaving everything at default values led to an English operating system, with (Open)ZFS filesystem (GPT and MBR partitioning schemes are available) and a BSD bootloader (GRUB is in the list, but it does not support the boot environments). The installer also offered disk encryption with GELI, so the system would have required a passphrase before booting, and optional “expert” buttons were available to set up various operating system’s aspects as well.

TrueOS installer

Finally, unlink FreeBSD:

During installation, TrueOS configures any connected Ethernet interfaces to use DHCP and provides a screen to Connect to a Wireless Network.

 

First run

Boot time was a little slower than what I experience with my Debian box.

On the first run, system popped up a configuration tool which allowed me to set language (again?), timezone, root password, user creation and some other system features. I absolutely do not understand why root user creation and optional services’ installation are performed in this stage instead of during the installation.

TrueOS first run

TrueOS first run

As a comparison, new GNOME-based Linux distributions already use or will soon use GNOME Initial Setup, a smart wizard which creates and sets up the user’s environment on the first boot, leaving root/system-wide settings decided install-time; of course to me this is the correct behaviour.

 

First login

The default login manager allowed me to change the desktop and login manager’s keymaps. I was able to set an Italian keyboard with an English-speaking operating system before actually doing the first login, which to me is nice for a single-user desktop environment, after all. On my Debian Jessie, on the contrary, the keymap of GDM is not modifiable by normal users (unless you set up Polkit accordingly) because of course a login manager is possibly multi-user.

TrueOS login manager

Once in, I was greeted by Lumina, the now-default desktop environment of TrueOS. According to the handbook:

The Lumina Desktop Environment is a lightweight, XDG-compliant, BSD-licensed desktop environment focused on streamlining work efficiency with minimal system overhead. It is based on the Qt graphical toolkit and the Fluxbox window manager, and uses a small number of X utilities for various tasks, such as numlockx and xscreensaver.

And:

It does not require any of the desktop implementation frameworks such as DBUS, policykit, consolekit, systemd, or HALD.

I’m wondering if reinventing the wheel is a pro or con. Anyway, let’s move to GNOME Shell now 😉

 

The GNOME Shell desktop environment

I thus installed the GNOME Shell environment with ease: I opened a virtual terminal, did su -, which worked (my user was already in the wheel group), and only gave:

pkg search gnome3
pkg install gnome3-lite-3.18.0

The Lite edition only includes the minimal components to get a working GNOME 3
Desktop. The user then has to install prefered applications like editor,
web browser or e-mail client.

The GNOME 3 desktop Lite edition successfully installed; because VirtualBox Guest Additions were already there (I tried TrueOS in a VirtualBox environment, remember), I then just performed a logout and relogin selecting GNOME by using the built-in login manager, and nothing else.

While configuring GNOME Shell, I experienced the same issues as when I had tried out FreeBSD: Gnome Tweak Tool package does not list python as dependency, so I had to manually install it first (not a big problem of course). TaskBar extension, Flat Plat theme and Secure-K icons manual installation then followed.

As warned before, Gedit and GNOME Terminal were missing from the default GNOME installation, but anyway they were available in the repository, so their installation was really straightforward.

At the end of the day I managed to use a proper GNOME desktop relying on a BSD-ish operating system with ease. And guys, it was fast! Faster than the FreeBSD mule counterpart of course; I cannot compare it against my Debian box however, because a bare metal installation would be needed.

The result was glorious:

GNOME Shell on TrueOS

 

XFCE and others

I then tried out XFCE (just for fun) with its Thunar file manager; installation succeded and after a small set up I obtained another hit:

XFCE on TrueOS

Finally I installed Chromium 56 and a lot newer Libre Office release than what I find in my (non-rolling) Debian 8 system:

# pkg search libreoffice | grep ^libreoffice

libreoffice-5.2.5_5 Full integrated office productivity suite
libreoffice-i18n-5.2.5 Localized interface for libreoffice
libreoffice4-4.3.7_14 Full integrated office productivity suite

Brilliant.

 

TrueOS init system

Unlike FreeBSD, which makes use of the traditional BSD-style init (Oh my gosh), TrueOS uses OpenRC, a dependency-based boot init with runlevels and /etc/init.d directory as the base system rc script location.

Nevertheless, the inordinate rc.conf is still full of mixed-meaning statements (judge for yourself and put against Systemd and polished Debian GNU/Linux system configuration files):

# cat /etc/rc.conf

kldload_vboxguest="vboxguest"
# Auto-Enabled NICs from pc-sysinstall
ifconfig_em0="DHCP"
# Auto-Enabled NICs from pc-sysinstall
ifconfig_em0_ipv6="inet6 accept_rtadv"
hostname="trueos"
zfs_enable="YES"
sshd_enable="YES"

 

Part II

Continue reading: A Penguin tries out TrueOS, part II.

 

Looking for more BSD-ish road tests?

 

  • Chris Rees

    Would love you to explain how rc.conf is harder to configure than systemd… I think your comment on lack of polish is more a reflection on its unfamiliarity to you. In other words, this reads heavily biased to me.

    • osEmotions

      I’m going to write a detailed article soon about init systems’ comparison. Anyway, I do not think rc.conf is difficult to manage, on the contrary, to me it’s oversimple.
      All article of course is manifestly written by a happy Penguin, but anyway, I do not believe that a system configuration file which mixes services, networks and modules is exactly a winner in cleanliness… Honestly!

  • Gonzalo_VC

    One of the reasons for using a friendly BSD version is to avoid actual GNU/Linux problems like systemD and all the new dependencies and bawing to it. So, please, don’t use that as a con/pro for BSD/Debian!! Thanks!
    On a side comment, GhostBSD looks prety nice too, as an alternative. Your oppinion on it would be appreciated, too.

    • osEmotions

      All the most important Linux distributions, both server and desktop, use Systemd as their default init system. And for a reason.
      So, I guess your opinion is at least not the most widespread one 😉
      Of course, Systemd has got some CONs: it manages unix domain socket binding, so services have to be writter “for” Systemd and Systemd is becoming an operating system into the operating system.
      PROs are that Systemd does keep things ordered and clean and uniform (no differently styled shitty init scripts), it is fast (because it binds sockets at its will), it has got integrated watchdogs – automatic restart of services on demand -, it auto-cleans pid files, ….
      I used to be against Systemd, but after having used for some time, I’m a massive fan of it.
      .
      Thanks for suggesting GhostBSD, I’ll for sure have a look at is sooner or later.

      • Gonzalo_VC

        That is fallacious, I’m afraid. “All the most” are 2 big distros that have influenced the ecosystem: RedHat and sons, and Debian and sons, including Ubuntu (#1). The rest are small distros that follow the trend and use sysD (also because Gnome is, each day, more dependent on it). It is a god chasing its own tail.
        Nevermind.
        Keep the good work.

      • Kolbjørn Barmen

        A nice thing with OpenRC that TrueOS uses, is that this is also the default init system on the most important Linux distributions.

        • osEmotions

          According to Wikipedia, the (only) important Linux distro which makes use of OpenRC is Gentoo…