Title: Installing Alpine as a Desktop | |
Author: Solène | |
Date: 30 April 2023 | |
Tags: linux alpine | |
Description: In this article, I'll share a bit about my experience for | |
installing Alpine linux to get it working as a desktop system. This is | |
mostly a cheatsheet with instructions and documentation link. | |
# Introduction | |
While I like Alpine because it's lean and minimal, I have always | |
struggled to install it for a desktop computer because of the lack of | |
"meta" packages that install everything. | |
However, there now is a nice command that just picks your desktop | |
environment of choice and sets everything up for you. | |
This article is mostly a cheat sheet to help me remember how to install | |
Alpine using a desktop environment, NetworkManager, man pages etc... | |
Because Alpine is still a minimalist distribution and you need to | |
install everything you think is useful. | |
Alpine Linux official project page | |
UPDATE 2023-05-03: I've been told that such a guide already existed in | |
Alpine wiki 😅. | |
Alpine Wiki about Post installation | |
# Setup | |
During the installation process started by `setup`, just type | |
`syscrypt` for full disk encryption installation. | |
## Installing a desktop environment | |
The most missing part when using Alpine for me was figuring out which | |
packages to install and which services to run to get a working GNOME or | |
Plasma. | |
But now, just run `setup-desktop` and enjoy. | |
## Installing man pages | |
A few packages are required to be able to read man pages. | |
``` | |
# apk add docs less | |
``` | |
If a man page is missing, search for the package name with the `-doc` | |
suffix, using `apk search $package | grep doc`. | |
## Internationalization | |
If you want your software in a language other than English, just use | |
`apk add lang`, this will install the -lang packages for each installed | |
package. | |
## NetworkManager | |
By default, the installer will ask you to set up networking, but if you | |
want NetworkManager, you need to install it, enable it and disable the | |
other services. | |
As I prefer to avoid duplication of documentation, please refer to the | |
relevant Wiki page. | |
Alpine Wiki about NetworkManager | |
You may want to add a few more packages: | |
``` | |
apk add networkmanager-tui | |
apk add networkmanager-openvpn-lang | |
apk add networkmanager-openvpn | |
apk add networkmanager-wifi | |
``` | |
## Bluetooth | |
Nothing special for Bluetooth, except NetworkManager will make it | |
easier to use. The wiki has setup instructions. | |
Alpine Wiki about Bluetooth | |
## Use a recent kernel | |
By default, Alpine Linux sticks to Long Term Support (LTS) kernels, | |
which is fine, but for newer hardware, you may want to run the latest | |
kernel available. | |
Fortunately, the Alpine community repository provides the `linux-edge` | |
package for the latest version. | |
## Fonts | |
You may want to install some extra fonts, because by default there is | |
only the bare minimum, and your programs will look ugly. | |
Alpine Wiki about Fonts | |
## Emojis | |
Having working emojis is important for me now, and Alpine only provide | |
a default emoji font with black-and-white pictures, without the | |
complete set. | |
It's a single package to add in order to get your emojis working. The | |
revelant Wiki page is linked below. | |
Alpine Wiki about Emojis | |
## Keep binary packages in cache | |
If you want to keep all the installed packages in cache (so you could | |
keep them for reinstalling, or share on your network), it's super easy. | |
Run `setup-apkcache` and choose a location (or even pass it as a | |
parameter), you're done. It's very handy for me because when I need to | |
use Alpine in a VM, i just hook it to my LAN cache and I don't have to | |
download packages again and again. | |
# Conclusion | |
Alpine Linux is becoming a serious, viable desktop Linux distribution, | |
not just for containers or servers. It's still very minimalist and | |
doesn't hold your hand, so while it's not for everyone, it's becoming | |
accessible to enthusiasts and not just hardcore users. | |
I suppose it's a nice choice for people who enjoy minimalism and don't | |
like SystemD. | |
# Credits | |
Thanks to raspbeguy for the various hints about Alpine, and for making | |
me trying it once again. |