| 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. |