Regolith Linux 19.10.0-R1.3This week I was in the mood to try something different and turned my focus to the DistroWatch waiting list to try out a couple of projects at random. The first distribution I selected was Regolith. The project describes itself as follows:
Regolith is a modern desktop environment designed to let you work faster by reducing unnecessary clutter and ceremony. Built on top of Ubuntu, GNOME, and i3, Regolith stands on a well-supported and consistent foundation.
I was intrigued by the idea as it sounds a though both GNOME and i3 window manager components are run together. The distribution's website goes on to share some other key features, including:
Delivers a desktop with a functional yet minimal user interface that can be customized and expanded as needed.
Combines GNOME's system management features with i3-wm's productive workflow.
Enables new users a fast and fun way to try out a tiling window manager.
I was sceptical about what it would be like to mix these two (i3 and GNOME) desktop approaches, but I thought the result might be interesting. Regolith is available in two versions, one is based on Ubuntu 18.04 and the other on Ubuntu 19.10. I took the latter one, which is the latest release. Regolith appears to run on 64-bit (x86_64) machines only and its ISO file is a 2.2GB download. Alternatively, we are told existing Ubuntu installs can be converted into Regolith by adding a PPA to our package sources and performing an upgrade.
After downloading Regolith, I booted from the live media and, with the default settings, the distribution failed to start. The system displayed a message indicating it was applying a Spector security fix and then locked up, unable to continue or respond.
Restarting the computer I brought up the boot menu and selected booting to the live desktop in Safe Graphics mode. This time the operating system seemed to boot successfully and presented me with what appeared to be the i3 window manager with a panel at the bottom of the display and a menu to the right. This menu includes options for switching between windows and launching programs, such as a terminal, the web browser, and a file manager. Selecting any of the menu options did nothing as the graphical environment almost immediate locked up and refused to respond to mouse or keyboard input.
The third time I started the computer and booted Regolith I missed the boot menu and ended up with the default option. This time the system completed booting and loaded a graphical environment. However, instead of the i3 environment I experienced when running in Safe Graphics mode, I ended up looking at Ubuntu's welcome window with a prompt to Try the live environment or Install the operating system. Unfortunately the interface was not responsive and I was unable to use the mouse or keyboard. I was also unable to even switch to a text terminal.
Given the system's inconsistent and non-functioning nature in each of the three boot attempts, I put Regolith aside and selected a second project from the waiting list.
* * * * *
distriThe other project which caught my attention this week is distri, an experimental distribution which explores fast, modular package management. The project's documentation describes the projects succinctly as: "a Linux distribution to research fast package management." It goes on to warn: "Note that due to its research project status, it is NOT RECOMMENDED to use distri in ANY CAPACITY except for research. Specifically, do not expect any support. distri is published in the hope that other, more established distributions, will find some parts of it interesting and decide to integrate those."
It appears as though distri runs on 64-bit (x86_64) computers exclusively, though there are many approaches we can take to test drive the distribution. There are installation instructions for containers and virtual machine options along with options for downloading more traditional install media. The generic download is compressed and weighs in at 1GB in size. When this file is uncompressed it expands to 7GB. We can then copy this image to a thumb drive or convert it to a virtual machine disk image.
The distri operating system boots to a text screen where we can login using the username "root" and the password "peace". The distribution runs a very minimal shell. In fact, minimalism is one of the project's key characteristics in most aspects of its design. There are just seven user accounts (root, nobody, three systemd accounts, messagebus, and sshd). One of the few services running is OpenSSH which allows regular users to sign in while also blocking remote root logins if they use a password. As far as I could tell there is no vi text editor, in fact there may be no text editor at all. There is no pager either, such as more or less, which means we can only see the last few paragraphs of manual pages.
The operating system does ship with Python 3 and systemd. It also features some common command line tools such as cat, man, and grep. It runs on version 5.1 of the Linux kernel. One oddity of distri is that it creates a lot of system mounts. When I first started running the distribution it mounted 36 filesystems (much of it temporary storage or cgroup related) and it appears to mount more whenever we run commands from installed packages. (More on packages in a second.) All of this takes up about 285MB of RAM when signed into the text console and consumed 2.7GB of disk space.
The key feature of the distri project is its package manager which is also called distri. I was unable to find much documentation, either on the project's website or locally, explaining how distri works. The project's on-line documentation says we can run a command like "distri install <package-name>" to install new software. However, I could not find information about removing or upgrading packages. I could not find any manual page for the package manager either. Running the distri command without arguments (or with a keyword and no following parameters) will display a brief usage text. However, this text rarely explains arguments and seems more geared toward helping the developers than end-users.
I did not find any way to search for available software from within the package manager, however there is a list of packages on the distribution's GitHub account. We can then run a command such as "distri install vim" to download a new package or "distri install -root /home/jesse/bin vim" to install the vim package in my home directory.
The distri package manager downloads software very quickly. With the possible exception of Alpine Linux's package manager, this may be the fastest package manager I have encountered. I suspect this is in part because of the way distri packages are organized. The packages appear to be entirely self-contained, bundling their dependencies inside a single SquashFS archive. (I could not confirm dependencies are bundled, but it seemed this way in the packages I downloaded.) This means the package manager can skip resolving dependencies and unpacking the archive. Instead it seems the bundle is downloaded as a single file and then mounted or accessed as needed. Whenever I ran a new command, such as vim or bash, a message would appear on the console indicating the software was being mounted.
Again, there is not much documentation on how distri works, but it looks as though new software is downloaded into the /roimg directory. Then unpacked or accessed through the /ro directory. Symbolic links are set up in /sbin which point to the executables. For instance, when I install the vim package, the SquashFS archive appears under /roimg and a directory containing the bundled programs is placed in /ro. A symbolic link, called vim, is placed in /sbin which points to the appropriate program in /ro. This may seem a little complicated, but it works and appears to side-step dependency issues. This makes distri an interesting alternative to other portable packaging approaches, such as AppImage and Flatpak as distri integrates software into the rest of the operating system more seamlessly.
Most of the available packages appear to be simple command line tools or developer utilities. There are a handful of graphical utilities and applications, but most are low-level command line programs.
As the project's website warns, distri is not intended to be used as a day to day operating system. It is an experimental platform and one that does not offer support or much in the way of documentation. Some interesting ideas are presented (such as fast, minimal, portable package management). I certainly can get behind the idea of transferring programs and their dependencies through SquashFS archives. It is fast, portable and, with the use of symbolic links, seems to avoid breaking conventions the way other distributions like GoboLinux do. I'm curious to see if distri can complete with alternatives like AppImage, though first I suspect the interface and documentation will need to expanded.