Daily driver guide: Difference between revisions

From Alpine Linux
m (→‎Glibc compatability: use pkg template.)
m (reworded and moved a sentence)
(34 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Many people think that Alpine is only made for containers and servers, but it is actually a general purpose distro which can definitely be used as a daily driver.
<!-- COMMENT FOR EDITORS
Alpine is extremely small, simple and resource-efficient, making it easy to customize.


{{Note|This guide assumes you have already installed a minimal Alpine system by following the [[Installation|Installation guide]]}}
This page is linked to Post-Install section of [[Installation|Installation guide]]. So, check before making changes.
  * Do not create content on this page as this page is meant as link aggregation page like [[Tutorials_and_Howtos]]
  * Consider that there are already [[Tutorials_and_Howtos#Post-Install]], [[Developer_Documentation#Package_management]] and the Handbook, please work towards reducing duplication
  * Focus on linking to desktop related topics only.
  * Here, only the most relevant jumping off points are listed, not exact list duplicates!!!
  * Keep short-list of links here, as overview to more detailed topic specific pages
  * Don't aggregate topics related to Desktop at yet another place.
 
-->
Alpine Linux is a general purpose Linux distribution designed for power users. It is built to be small and resource efficient. If you feel the defaults are too lightweight for desktop use, it is easy to get most of the [[How to get regular stuff working|regular stuff working]] and use it as a daily driver.


== General system changes ==
This guide assumes you have already [[Installation|installed]] a minimal Alpine Linux system in [[Installation#System_Disk_Mode|system disk]] mode with working internet.
=== Set up your own user ===
When running <code>setup-alpine</code> there was an option to create a user.
If you didn't make one, you can do it now:
{{cmd|# adduser <username>}}


Then, you need to give your user access to temporary root privileges:
{{:Include:Desktop prerequisites}}
{{cmd|# adduser <username> wheel}}
Once the above mandatory steps are completed, install any [[Desktop environments and Window managers|desktop]] of your choice either manually or using [[Setup-desktop|setup-desktop]] script.
If you are using <code>doas</code> then it will most likely work instantly, if using <code>sudo</code> then you will need to follow the [[Setting_up_a_new_user#Creating_a_new_user|install instructions]]


=== Locking the root account ===
==== Basics ====
To lock the root account you need to log into your account and then lock it using the <code>passwd</code> command:
{{cmd|# passwd -l root}}


=== Glibc compatability ===
* Learn the [https://docs.alpinelinux.org/user-handbook/0.1a/Working/apk.html alpine package keeper basics] or refer [[Alpine Package Keeper|wiki]] for more details.
Installing the <code>gcompat</code> package adds a compatability layer which (sometimes) lets you run binaries as normal:
* [[fonts#Installation|Install]] some [[fonts]] to make your desktop look better.
{{cmd|# apk add {{pkg|gcompat|arch=}}}}
* Setup a [[Sound Setup|sound server]] to manage your audio and configure your [[Bluetooth]], if you have one.
* Configure your [[Printer_Setup|printer]].
* Enable [[Alpine_Linux:FAQ#Why don't I have man pages or where is the 'man' command?|documentation]], so man pages are available.
* Install [[CPU Microcode]] updates to mitigate processor design bugs.
* Secure your system by installing [[Tutorials_and_Howtos#Firewall and VPN|firewall]] software like [[How-To_Alpine_Wall|awall]] or [[Uncomplicated Firewall|UFW]].
* To keep your system secure, regularly [[Alpine_Linux_package_management#Upgrade_a_Running_System|check and apply updates]] with the package manager.


Another way is to use [[Flatpak]]. It is a program distribution technology which uses a universal package format that is compatible with any Linux system.
==== Advanced ====


== Install a Desktop Environment/Window Manager ==
* Use [[Flatpak]] to add packages that are not in the [[Repositories#repositories|repositories]].
The preferred way to install a Desktop Environment is by using the <code>setup-desktop</code> script:
* Install {{pkg|gcompat|arch=}} package to add a glibc compatability layer which lets you run [[Running glibc programs|glibc binaries]] as normal.
{{cmd|# setup-desktop}}
* Install a sandboxing application like [[AppArmor]] or [[Bubblewrap]].
If it does not have the Desktop Environment (or Window Manager) you want, [[Desktop environments and Window managers|follow the specific installation instructions for it]].
* Learn [https://docs.alpinelinux.org/user-handbook/0.1a/Working/openrc.html basics of openrc], the alpine Linux init system or refer [[OpenRC|Open rc wiki]].
* [[Upgrading Alpine|Upgrade your OS]] whenever Alpine Linux [https://www.alpinelinux.org/releases/ releases] a new stable version. 
* If you want the rolling release version of Alpine Linux, [[Repositories#Managing_repositories|enable]] the [[Repositories#Edge|Edge]] repository.
* You may want to explore the [[Repositories#Testing|testing ]] repository, as it provides a lot more applications.  


After installation you should probably install some fonts (because some fonts may not be installed).
[[Category:Desktop]]
This is a good set of fonts for most setups:
{{cmd|# apk add font-terminus font-inconsolata font-dejavu font-noto font-noto-cjk font-awesome font-noto-extra}}
 
== Securing your system ==
=== Firewall ===
There are two main options: [[How-To_Alpine_Wall|awall]] or [[Uncomplicated Firewall|UFW]].
Please follow their wiki guide for installation and usage.
 
=== Sandboxing ===
The two choices are either [[AppArmor]] or [[Bubblewrap]].
 
AppArmor is more convenient but has less control than Bubblewrap.
Bubblewrap is harder to work with but has more control than AppArmor.
 
Bubblewrap has a simpler GUI frontend called [[bubblejail|Bubblejail]]. It is easier to use than Bubblewrap, but may sometimes be a little unstable.
When installing Bubblejail, you first need to install the dependencies listed [https://github.com/igo95862/bubblejail/blob/master/docs/distro_notes/alpine.md here].

Revision as of 16:30, 19 January 2025

Alpine Linux is a general purpose Linux distribution designed for power users. It is built to be small and resource efficient. If you feel the defaults are too lightweight for desktop use, it is easy to get most of the regular stuff working and use it as a daily driver.

This guide assumes you have already installed a minimal Alpine Linux system in system disk mode with working internet.

Note: Before installing any desktop,

Once the above mandatory steps are completed, install any desktop of your choice either manually or using setup-desktop script.

Basics

Advanced