The folks at Jupiter Broadcasting on their Linux Unplugged and other shows have been fans of Solus Linux Project and their work. I was about to install Linux on another laptop and asked myself, what version of Linux should I install? Given that it is an older laptop, I considered Ubuntu Mate and Fedora, mainly, but I thought it might be a nice opportunity to try out Solus since the installation was kind of a short-term test of Linux on the laptop.
What is Solus Linux? From what I understand, it is a version of Linux not based on any other distribution (such as Debian, Fedora, Ubuntu, etc.), but it is a relatively new distribution designed for desktop computing. The project lists developers, home users, office users, developers, content creators, and gamers as some of their target users. Solus can be installed with the Budgie, GNOME, or MATE desktops.
Further, Solus follows a rolling release model for update distribution, meaning that the software is not locked to a certain version for a given version of the distribution but it rolls forward with each update of the software. As a rolling release, changes enter the distribution through the unstable repository for the distribution. The Solus developers sync the unstable repository with the shannon repository weekly. Solus installations sync with the shannon repository for updates. This is my first experience actually running a rolling distribution, so it will be interesting.
The install process went fine, especially, considering that this was the first time I have installed Solus. Since I haven't used Budgie, I thought I would give it a try. The installer was easy to use, though, it would have been more streamlined if the Linux kernel had supported my wireless card out of the box, which it doesn't. Specifically, I am trying Solus out on a old Dell XPS M1530 with a Broadcom BCM4312 wireless network card--a wireless network card that frequently takes a little extra work to get working with Linux (to be clear, this is not specifically a problem with Solus). If I had been connected to the network (say via Ethernet), Solus would have autodetected things like my time zone and other things, but it wasn't required for installation.
As it turns out, this lack of a network connection while installing
Solus and some proprietary drivers did cause me to run into some
interesting glitches as a result. The first glitch occurred when I
tried to install the proprietary nVidia drivers for the discrete
graphics chip in the laptop without a network connection. One way
you install the proprietary drivers is using the
tools under the
System Settings menu, which is quite nice and
simple. Unfortunately, the
Hardware Drivers tool tried to install
the drivers (which it couldn't get to without a network connection)
but it didn't let me know that it has actually failed. When I tried
to reboot to get the drivers working, the booting process hung. In
retrospect, this is probably because the the
Hardware Drivers tool
configured something (possibly) when actually installing the drivers,
but the drivers weren't actually installed. This might have been a
recoverable situation, but since I didn't have any important data to
lose, I started up the Solus installer again to reinstall Solus.
During the second installation, when the installer went to create the LVM volumes, though, it couldn't. I had selected the use of LVM volumes during installation instead of the legacy primary partition approach. In this state, I couldn't get the Solus installer to actually prepare the hard drive for installation, so I blew away the old partitions and restarted the installer. This time, the installer was successful.
Installing Proprietary Drivers
Suspecting that the proprietary drivers needed to come over a network
connection for installation, I connected the laptop to the network via
Ethernet before trying to install the proprietary drivers for the
wireless card and the nVidia graphics device with the
Drivers tool. That made the difference. In fact, I could see that
the drivers were being downloaded and installed this time. I first
installed the wireless LAN drivers and rebooted. When I rebooted,
Linux still couldn't see the wireless LAN drivers--odd. It wasn't
until I installed the proprietary nVidia drivers and rebooted that I
saw both the wireless network card and the nVidia proprietary drivers
working. After those few hiccups, everything went pretty well.
Solus Software Center
Once the hardware drivers had been taking care of, I used the Solus Software Center to update the existing software. It took a while, but there were quite a few updates to install. I have also explored the Software Center some to see what applications I could find. A lot of the standard applications were there, but so where several third-party applications like Android Studio, Google Chrome, GitKraken, Enpass, Skype, Slack, and a number of others. In addition to these proprietary tools, there were open-source tools like for developers like Visual Studio Code, Atom, Go, Python, Ruby, R, Rust, and a number of other languages and tools. While they may not have as many packages as Debian or Fedora, the selection does seem to be very good for popular packages.
Solus Software Packages
This also reminds me, though, that Solus does not use Debian (.deb) or RPM packages. This might make using Solus challenging in cases where Solus doesn't have a particular piece of software already available and packaged. With that said, for many users, a lot of popular software packages are already available and might not care.
One way that Solus mitigates the lack of sharing a traditional packaging format with other distributions is that it supports Snap packages, the "universal" Linux packaging standard started by Canonical as a result of some of their work on Ubuntu phones. In fact, I needed to install the most recent version of Go, but the new version was not available in the Solus Software Center. It turns out that Go is packaged as a "Snap", so I tried it out. I ran:
snap install go --classic
and Go 1.10 was installed--nice considering that Solus only was providing Go 1.9 at the time.
Solus for Go Development
With Go installed, I installed Visual Studio Code and the Go
language plugin and
tried to compile a basic "hello, world" application. One of the nice
things about Visual Studio Code (VSCode) and the Go plugin is that
they automatically download and build the necessary Go tools that
they use to support Go development. I noticed a few of the packages
failed to install. With a little investigation, I realized that GCC
and other standard development tools were not installed. I installed
GCC/G++ by hand, but then GCC couldn't find
stdlib.h when the Go
compiler was building some of the Go support tools for VSCode--odd.
After a little poking around on the Internet, it turns out that one
reasonable way to address the problem was discussed on the Solus
Effectively you use
sudo eopkg it -c system.devel
to install some base developer tools. After that, VSCode was able to successfully install the Go support programs.
In general, despite some small glitches and a magic incantation to get the base developer tools to be installed, it seems like Solus has been very reasonable. I have been using it on and off for several days on the laptop and the experience has been generally very good. Budgie is pretty straight forward and works well. The Software Center works pretty well and is reasonably organized. I can see how gamers might like Solus, with their direct effort to support Steam. The GTK theming in Budgie even made Emacs look a little nicer than I have seen with other versions of Linux. Another nice touch that I noticed was that the installed fonts already supported powerline statusline utility.
I'll write an update if anything interesting arises.