One complaint some new users have is that the Linux filesystem hierarchy is confusing. After all, why are program executables stored in /usr/bin and what is home? For those who are accustomed to Linux, this all makes some strange form of sense. However, if you take a moment to step back and really look at it, you might think twice about that assessment. That is exactly why the developers of GoboLinux did what they did; they completely rethought the filesystem hierarchy.
Instead of the usual suspects like:
/usr
/sbin
/home
/etc
/boot
/dev/
/lib
/opt
/sys
/tmp
GoboLinux offers only six total directories in the root of the filesystem. Those directories are:
-
Data – contains information about packages and necessary data to enable the compilation of programs
-
Lost+found – a directory dedicated to housing unlinked files that still may be open by a process.
-
Mount – the mounting directory
-
Programs – houses all programs (each of which will have its own folder that contains settings, files, and data)
-
System – system files, binaries, and kernel
-
Users – the home folders for users
And that’s it for the folders found in the root partition.
For long-time Linux users, does this mean you have to learn a completely different filesystem in order to use GoboLinux? Not necessarily. The developers have created symlinks such that if you issue the command cd /etc, you will actually be taken to /Programs/Settings (although issuing pwd will indicate you are in /etc). Not all of the usual suspects have symlinks. For example, if you issue the command cd /home, you’ll be returned an error that no such path exists; so it’s not a one-for-one situation (however, cd ~/ will take you to /Users/USERNAME. Where USERNAME is the name of the logged in user).
Even with this variation on the directory structure theme, once you use GoboLinux for a bit, it all starts to make perfect sense.
With the major difference out of the way, let’s take a look at GoboLinux and see if it’s a distribution you might want to try.
Installation
GoboLinux is, in a lot of ways, a throwback to the early days of Linux. You get your first taste of that the second the live media boots up, where you wind up at a terminal window and are required to either type startx to start the GUI or Install GoboLinux to start up the text-based installation (Figure 1). I highly recommend going with the startx command to get GoboLinux installed.
Once the GUI is up and running, you’ll find GoboLinux to be yet another distribution that doesn’t include a partitioning tool in the installer. To that end, you must fire up the included GParted tool and create a root partition (Figure 2).
Once the partition has been created, you can click the GoboLinux start button (upper left corner of the desktop) and then click System Tools > Install GoboLinux. At this point, the installation is as easy selecting your packages (Figure 3), answering a few quick questions, and letting the installation complete.
Once the installation completes, reboot and you’re ready to get to know GoboLinux.
What you’ll find
With GoboLinux installed, you’ll find a fairly minimal installation, with the Awesome Window Manager serving up windows and menus. In fact, the user-facing application list includes:
-
A terminal application
-
GIMP
-
Firefox
-
Avahi VNC and SSH server browsers
-
Htop
-
GParted
-
CUPS printer manager
-
Vim
That’s it.
You won’t even find a package manager on the system, like apt, dnf, or zypper. Instead, you must take advantage of the Compile command, which will download the necessary recipes for installing a piece of software.
Say, for example, you want to install the Thunderbird email client. To do this, you would open up a terminal window and issue the Compile thunderbird command. After you answer the resulting questions (answer CA for Compile All), you’ll unfortunately discover the installation fails. In fact, I attempted to install several applications (found on the GoboLinux Recipe Store), only to have many of them fail because of dependency issues. Even installing Audacity failed, due to an inability to connect to surina.net to install the SoundTouch dependency (although the Compile command did valiantly try, until it finally gave up the ghost).
Next up, I attempted to install Claws-Mail. This particular recipe successfully installed and returned me with a perfectly working instance of the powerful email client (Figure 4).
Understand, each of these attempted installations can take considerably more time than installing with a standard package manager, so know what you’re getting into before you dive in.
Why use GoboLinux?
This is the question I continually asked myself as I was working with this interesting take on the Linux platform. Being one who prefers a far more modern desktop, Awesome Window Manager was a really hard sell. I even made an attempt at installing both the Enlightenment and GNOME desktops on GoboLinux. As you probably assume, these did not succeed. However, the simplicity of the filesystem did make for a very intriguing few days of usage.
What the developers did with the GoboLinux directory structure makes perfect sense. But even with logic on its side, I cannot imagine other Linux distributions following suit. Why? The work that would have to be done to make this happen would be tremendous. Because of that, I can see GoboLinux standing alone with this layout. If I’m being totally honest here, that’s a shame. Why? Because the GoboLinux filesystem structure makes perfect sense (and could possibly make the transition from other operating systems to Linux much easier for new users).
So, in the end, who would benefit from making use of GoboLinux? Anyone looking to kick it back a bit old-school and experiment with a flavor of Linux that is a serious departure from the norm. If that’s you, GoboLinux might well be your desktop distribution of choice.
GoboLinux is not a user-friendly distribution (nor was it created to serve as such), but it is certainly unique take on the platform and well worth a look.
Learn more about Linux through the free “Introduction to Linux” course from The Linux Foundation and edX.