Software Management
I’ve spent some time now in the Steam Deck CLI, and gotten a good flavor of Arch Linux from the perspective of a long-time Ubuntu user.
Honestly, I like it a lot. It’s really a unique OS that offers a lot to many different users. For your average Steam Deck user who dabbles in the desktop, the Discover software center, based on Flatpak, will be all you need. For the power-user, though, it’s a little more complicated based on what you need. There are 4 programs that you can use to install software: the Discover software center, the pacman
tool, the yay
tool and the makepkg
tool. All of these serve different purposes.
The basis of all of these tools is makepkg
. Without going into technical detail, makepkg
works by reading a build specification and producing a binary package. This is similar to other distributions that provide a “build-from-source” mechanism such as source RPMs. pacman
and yay
seem to have a fair bit of overlap. pacman
reads only from system repositories though. I like to think of pacman
as the super-user yay
. For installing system libraries and upgrades, it is ideal. Crash course:
pacman -Ss
<search> – search for a packagepacman -S
<packagename> – install a packagepacman -Sy
<packagename> – update spec from repository and sync packagepacman -Syu
– update all specs from repository and upgrade all packages
The Arch User Repository (AUR) contains contributed binary packages and build specs from around the world. These packages typically install from source code, and are based on build specs instead of binary packages. You install these packages with the yay
tool, which has the same invocations as pacman
, but is not invoked with sudo
. You will be prompted for sudo
credentials if required.
Finally, you can make your own packages with makepkg
. From a directory with a build spec, simply type makepkg -si
(no sudo
required). The spec will allow a binary package to be built and installed.
Overall, I find the AUR to be too unstable. I know I harp on Neovim, but it’s an important tool for me. The “stable” release of Neovim (i.e. from pacman
) is only at 0.6. I need a minimum of 0.7. Theoretically the “unstable” release of Neovim (neovim-git), is at 0.7. But because it is a git repository, the package information contained in the AUR is wrong – the git repository has since been updated to 0.8. So, yay -S neovim-git
doesn’t work. yay -S neovim
is too old. That leaves only flatpak, which thankfully has Neovim 0.8.
From all of this, I’ve learned that the Flatpak repository is probably the best way to go for software. While the pacman
system repositories are stable, the AUR most definitely is not. I’d consider it a last resort before building it from source yourself. Flatpak is also stable, and allows installation of important userspace applications.
System Services
Arch Linux is also built on systemd
and uses systemctl
to enable, disable, start, and stop services.
Desktop
While there’s no “official” desktop for either distribution, SteamOS defaults to KDE Plasma 4, and Ubuntu to GNOME 3. Arch Linux itself is not a graphical distribution, and allows installation of many desktops. This is the first time I’ve used KDE Plasma, and my first impressions are very good. I haven’t used KDE in a long time, and I’m surprised to see how stable and shiny it is.
Support
I think that if you require commercial support, you’ll want to stick with Ubuntu. Arch Linux is very much a DIY OS, and isn’t really advisable from a business perspective. However, most sites that have Linux software provide instructions for Arch Linux; or, the AUR contains a build spec.
Conclusion
Arch Linux goes on my “approved” list. I have a good deal of flexibility in how to get software onto the machine. It is similar enough to Ubuntu that I didn’t get lost, but is clearly a unique OS that is meant more for power users than casual users. It’s a decent choice on Valve’s part, one that has turned a great purchase in the Steam Deck into a very viable development PC.