Rhino Linux 2023.1, how we made the distro.
Rhino Linux has now officially moved out of Beta! We have released Rhino Linux 2023.1 on x86_64, ARM, Pine64 and Raspberry Pi devices.
Quite a lot has changed since our first beta release back in April 2023, and so instead of a generic changelog, I want to do something a little different and discuss what actually went into the making of the operating system.
You can download Rhino Linux 2023.1 here.
Contact us here.
Or maybe donate to us here.
To update to Rhino Linux 2023.1 from a previous release run:
rpk update -y
as well as pacstall -PI rhino-core
If you are on a Pine64 platform, run pacstall -PI rhino-pine-core
instead.
The concept
The concept of the Operating System came from my (AJ) previous project. Rolling Rhino Remix was a quick little hobby project I slapped together with little to no care for a bit of fun, however people started using it. This became unmaintainable in the long run and so in October 2022 I came up with a new vision for how I wanted my desktop operating system to go.
Branding
Hello all, Oren here, also known as oklopfer. My history with the Rhino Linux team actually starts with our logo. For a bit now, I had been using Ubuntu tracking the devel branch, when I had stumbled upon an article talking about Rhino Linux. Immediately intrigued, I joined the Discord server. My personal hobbies include graphic design and development projects, so I decided to take a shot at a logo that demonstrated Rhino Linux, the successor to Rolling Rhino Remix. Sure enough, I was able to produce the logo you now see across the website and distribution! I then ended up joining the team as a “designer.”
Pacstall
Hi, Elsie here. I’m in charge of Pacstall, which is an AUR-like package manager for Ubuntu. Rhino Linux chose to use Pacstall because it’s a rolling distro meaning it gets updates really quickly, which pairs nicely with Pacstall’s ability to also package and distribute fast and up to date updates for packages! Rhino Linux exclusively uses Pacstall for shipping most of its customizations and default applications.
Our repository is based sort of like nixpkgs is: a community repo where anybody with a GitHub account can contribute to any package regardless of maintainer. This style of repository means that sneaking blatant malware into the repo is a lot harder because of the team of reviewers that makes sure every incoming PR is up to our standards.
Oren here, hello there. A fundamental piece of holding the distribution together and allowing us to address user issues as quickly as possible is how we ship all of our packages. Ideally, all of our packages are held on GitHub. One of Pacstall’s greatest features is the usage of git packages, which allow us to build installable .deb files based on our GitHub packages, allowing updates to operate not just by version/release, but by commit. Similarly, .deb files not in Ubuntu repositories can quickly be pulled in by Pacstall. Combining everything together, we have core packages, which serve as meta-packages that tell a system to install all of its dependencies, giving a sound way to provide rapid updates to systems.
The builder
Hey everyone, cat-master21 here. Rhino Linux’s image building system uses a tool called LiveBuild created by Debian with some shell scripts for automation which we utilise from VanillaOS, which had forked it from elsewhere.
Oren here again, after being brought on as a designer, I noticed Cat-master21 was having issues generating alpha disk images. Another thing to know about me is that I am the current maintainer of Ubuntu Touch on Pine64, so I came into the conversation with similar background knowledge. I was able to join cat-master21 in fixing the ISO, at which point I was brought on as a full developer.
This is where the fun really starts. My next steps were to make the iso have both an AMD64/x86_64 variant + an ARM64 variant; I knew that if I were to make embedded images work, I would first have to start with getting base ARM64 images to work. Luckily, modern MacBooks and their new Apple Silicon chips provide a perfect place to test these images out. Once that was cracked, I moved onto the platform I am most familiar with, Pine64. This is where the builder gets quite complicated. As cat-master21 mentioned, the ISO builds using Debian’s live-build utility, but for our embedded systems we have to deploy the images using another common Debian building utility, Debos. It was at this point that I split the process into two, using both utilities for embedded images: live-build creates a base tarball, and Debos then deploys that tarball to a properly configured image, tailored to each device specifically. This same process could then be used for Raspberry Pi images, with its own modifications to the filesystem it deploys.
The installer
Oren here again to talk about the installer. As discussed in the builder section, the embedded images are pre-deployed, so an installer is not needed for them. As for the ISOs, we currently use a multi-step installation process, with both a pre-install and post-install application. On an ISO file’s first boot, the user will be greeted right away to a live environment of Rhino Linux, so users can play around with the Unicorn environment and some of our utilities to see if this is the distro for them.
To proceed with installation, users can select the “Install Rhino Linux” icon from the desktop, which takes users to a custom themed Calamares installer. After the user goes through the Calamares installation process, they are invited to reboot, where they will have a fully working and installed environment. On all images, both embedded and full desktop ones, when the user first logs in, they will be greeted to our Setup Wizard utility. This utility allows users to select light or dark theme, choose which package managers they would like on their system, and optionally install some other helpful utilities. After the wizard has completed, users are invited to reboot one more time, whereupon they will have their complete and ready-to-go Rhino Linux installation.
Package management
Elsie here, I’m also the developer for rhino-pkg (rpk), which is a meta-package manager that combines apt, pacstall, flatpak, and snap into a nice little UI that can be used to install, remove, search, and upgrade all package managers at once. This was also my first time dabbling with i18n, and since it’s not a large program, we have translated it into (as of the 6th of August, 2023) 14 different languages along with English, so that hopefully every user can understand what it’s doing in their native language.
The Unicorn Desktop
AJ here. I’m the founder of Rhino Linux, and the current Desktop Lead. The Unicorn Desktop experience that we have crafted came from other Linux desktop environments.
The Unicorn Desktop includes the customised desktop environment you are greeted with. It comprises of a handful of free software components which we have either created ourselves or have modified in some way. The look and feel of Unicorn was inspired namely by GNOME and, the now dormant Cutefish. We wanted to keep using XFCE as our base, due to it’s lightweight and customisable nature, however we wanted to give it a fresh coat of paint and users a more modern way of interacting with their operating system.
Another part of the Unicorn Desktop includes our graphical applications stack. Anything we’ve created to help aid the user experience of Rhino Linux falls onto the desktop team. Some of these applications are designed to make the user experience more usable in general, such as the “Setup Wizard” created by Wizard28 or the “Your System” application by Axtloss. RhinoDrop was created to be an open source alternative to airdrop, natively shipped on Rhino Linux. Currently it only has a web-user interface, however plans are in the works for a GTK4 port.
Thank you.
I want to thank everyone who has supported our distribution, either by joining our community, utilising it, spreading our message or donating to us on Kofi. Your support makes the distribution possible.
Many thanks The Rhino Linux team:
- AJStrong - Desktop Lead & Founder
- Oren Klopfer - Systems Lead & Designer
- Elsie - Pacstall & rhino-pkg developer
- Axtloss - “Your System” developer
- Cat-master21 - Build system & Installer maintainer
- Wizard28 - “Setup Wizard” Developer
A special thanks to:
- Hunter Wittenborn for hosting RhinoDrop & Downloads server.