<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PureTryOut</id>
	<title>Alpine Linux - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PureTryOut"/>
	<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/wiki/Special:Contributions/PureTryOut"/>
	<updated>2026-05-01T15:49:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=32335</id>
		<title>Upgrading Qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=32335"/>
		<updated>2026-04-18T10:01:07Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When Qt gets upgraded between major versions, we have to rebuild some packages due to ABI changes and private API usages. The following is a list of packages to bump on every major (e.g. 6.8.x to 6.9.x) upgrade:&lt;br /&gt;
&lt;br /&gt;
* kwin (input in login managers)&lt;br /&gt;
* plasma-integration (for plasmashell)&lt;br /&gt;
* layer-shell-qt (for plasmashell)&lt;br /&gt;
* kguiaddons (for plasmashell)&lt;br /&gt;
* libkscreen (for display configuration)&lt;br /&gt;
* powerdevil (for power management KCM)&lt;br /&gt;
* pyside6 (all it&#039;s users need to be rebuild as well)&lt;br /&gt;
&lt;br /&gt;
For QtWebengine:&lt;br /&gt;
&lt;br /&gt;
* angelfish&lt;br /&gt;
* kaccounts-providers&lt;br /&gt;
* signon-ui&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:System Administration]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=32298</id>
		<title>Upgrading Qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=32298"/>
		<updated>2026-04-11T08:10:51Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When Qt gets upgraded between major versions, we have to rebuild some packages due to ABI changes and private API usages. The following is a list of packages to bump on every major (e.g. 6.8.x to 6.9.x) upgrade:&lt;br /&gt;
&lt;br /&gt;
* kwin (input in login managers)&lt;br /&gt;
* plasma-integration (for plasmashell)&lt;br /&gt;
* layer-shell-qt (for plasmashell)&lt;br /&gt;
* kguiaddons (for plasmashell)&lt;br /&gt;
* libkscreen (for display configuration)&lt;br /&gt;
* pyside6 (all it&#039;s users need to be rebuild as well)&lt;br /&gt;
&lt;br /&gt;
For QtWebengine:&lt;br /&gt;
&lt;br /&gt;
* angelfish&lt;br /&gt;
* kaccounts-providers&lt;br /&gt;
* signon-ui&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:System Administration]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=30385</id>
		<title>Upgrading Qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=30385"/>
		<updated>2025-07-13T09:39:13Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When Qt gets upgraded between major versions, we have to rebuild some packages due to ABI changes and private API usages. The following is a list of packages to bump on every major (e.g. 6.8.x to 6.9.x) upgrade:&lt;br /&gt;
&lt;br /&gt;
* plasma-integration&lt;br /&gt;
* kwin&lt;br /&gt;
* layer-shell-qt&lt;br /&gt;
* pyside6 (all it&#039;s users need to be rebuild as well)&lt;br /&gt;
&lt;br /&gt;
For QtWebengine:&lt;br /&gt;
&lt;br /&gt;
* angelfish&lt;br /&gt;
* kaccounts-providers&lt;br /&gt;
* signon-ui&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=30377</id>
		<title>Upgrading Qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=30377"/>
		<updated>2025-07-10T21:21:59Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When Qt gets upgraded between major versions, we have to rebuild some packages due to ABI changes and private API usages. The following is a list of packages to bump on every major (e.g. 6.8.x to 6.9.x) upgrade:&lt;br /&gt;
&lt;br /&gt;
* plasma-integration&lt;br /&gt;
* kwin&lt;br /&gt;
* layer-shell-qt&lt;br /&gt;
* pyside6 (all it&#039;s users need to be rebuild as well)&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=30376</id>
		<title>Upgrading Qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=30376"/>
		<updated>2025-07-10T18:58:55Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When Qt gets upgraded between major versions, we have to rebuild some packages due to ABI changes and private API usages. The following is a list of packages to bump on every major (e.g. 6.8.x to 6.9.x) upgrade:&lt;br /&gt;
&lt;br /&gt;
* plasma-integration&lt;br /&gt;
* kwin&lt;br /&gt;
* layer-shell-qt&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.22.0&amp;diff=28098</id>
		<title>Release Notes for Alpine 3.22.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.22.0&amp;diff=28098"/>
		<updated>2024-12-05T15:39:04Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As always, make sure to read [[Upgrading Alpine to a new major release]] when upgrading to a new release.&lt;br /&gt;
&lt;br /&gt;
If you experience any issues with the upgrade, please let us know and file an issue in our repositories.&lt;br /&gt;
&lt;br /&gt;
== Important changes ==&lt;br /&gt;
&lt;br /&gt;
== Significant changes ==&lt;br /&gt;
&lt;br /&gt;
The X11 session for KDE Plasma has been removed. If you had &amp;lt;code&amp;gt;plasma-workspace-x11&amp;lt;/code&amp;gt; installed make sure to remove it from &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt;. Instead Wayland is the only available option now.&lt;br /&gt;
&lt;br /&gt;
== Note-worthy updates ==&lt;br /&gt;
&lt;br /&gt;
As always, a lot of packages were upgraded. Make sure to read the indivdual release notes of the projects you use.&lt;br /&gt;
&lt;br /&gt;
* Linux TODO&lt;br /&gt;
* busybox TODO&lt;br /&gt;
* GCC TODO&lt;br /&gt;
* LLVM TODO&lt;br /&gt;
* Go TODO&lt;br /&gt;
* Rust TODO&lt;br /&gt;
* PHP TODO&lt;br /&gt;
* GNOME TODO&lt;br /&gt;
* KDE Plasma TODO&lt;br /&gt;
* LXQt TODO&lt;br /&gt;
* Qt TODO&lt;br /&gt;
* wlroots TODO&lt;br /&gt;
&lt;br /&gt;
== Significant removals ==&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.19.0&amp;diff=25848</id>
		<title>Release Notes for Alpine 3.19.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.19.0&amp;diff=25848"/>
		<updated>2023-12-03T19:11:34Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: /* Upgrades */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Base System ==&lt;br /&gt;
&lt;br /&gt;
=== iptables-nft ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;/sbin/iptables{,-save,-restore}&amp;lt;/code&amp;gt; symlinks now point to xtables-nft-multi instead of xtables-legacy-multi. This means they use the nftables kernel backend instead of the legacy iptables one.&lt;br /&gt;
&lt;br /&gt;
Since the new iptables- binaries also don&#039;t use the iptables backend, to work with any existing rules and save them, you need to install {{pkg|iptables-legacy}} and use &amp;lt;code&amp;gt;iptables-legacy-save&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Because mixing backends is not supported, you should reboot your system if you have to use the iptables commands after upgrading.&lt;br /&gt;
&lt;br /&gt;
=== netns ===&lt;br /&gt;
&lt;br /&gt;
The OpenRC package contains a patch to make it possible to start most services in netns namespaces. See also [[Netns|netns]].&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
=== HashiCorp packages ===&lt;br /&gt;
&lt;br /&gt;
Due to [https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license the relicensing of HashiCorp software] to [https://spdx.org/licenses/BUSL-1.1.html BUSL-1.1], a non-Open-Source license, the following software have been removed from Alpine:&lt;br /&gt;
&lt;br /&gt;
* Consul&lt;br /&gt;
* Nomad&lt;br /&gt;
* Packer&lt;br /&gt;
* Terraform&lt;br /&gt;
* Vault&lt;br /&gt;
&lt;br /&gt;
Our discussion on the topic can be found [https://gitlab.alpinelinux.org/alpine/aports/-/issues/15193 here].&lt;br /&gt;
&lt;br /&gt;
{{pkg|opentofu}}, a fork of Terraform, is available in our testing repository for users of our rolling release, edge.&lt;br /&gt;
&lt;br /&gt;
=== Java 21 ===&lt;br /&gt;
&lt;br /&gt;
The latest LTS java release, openjdk21,  is now available in the community repository.&lt;br /&gt;
&lt;br /&gt;
=== KDE ===&lt;br /&gt;
&lt;br /&gt;
KDE Applications have been upgraded from 23.04.x to 23.08.x. KDE Frameworks have been upgraded from 5.105.0 to 5.112.0.&lt;br /&gt;
Note that the KDE Frameworks packages have been renamed to add a 5 suffix in preparation for the upcoming KDE 6 release in the next Alpine release. Everything should automatically be upgraded properly but if problems occur make sure to check if the right renamed packages are installed.&lt;br /&gt;
&lt;br /&gt;
=== Yggdrasil v0.5 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|yggdrasil}} was upgraded to 0.5.x and the new routing scheme is incompatible with previous versions. &amp;quot;Nodes running this new version &#039;&#039;&#039;will not&#039;&#039;&#039; be able to peer with earlier versions of Yggdrasil&amp;quot; ([https://github.com/yggdrasil-network/yggdrasil-go/releases/tag/v0.5.0 v0.5.0 release notes], [https://yggdrasil-network.github.io/2023/10/22/upcoming-v05-release.html v0.5 blog post]).&lt;br /&gt;
&lt;br /&gt;
== Upgrades ==&lt;br /&gt;
&lt;br /&gt;
* GCC 13&lt;br /&gt;
* LLVM 17&lt;br /&gt;
* Kea 2.4&lt;br /&gt;
* Xen 4.18&lt;br /&gt;
* Git 2.43&lt;br /&gt;
* Perl 5.38&lt;br /&gt;
* PHP 8.3&lt;br /&gt;
* PostgreSQL 16&lt;br /&gt;
* SQLite 3.44&lt;br /&gt;
* Redis 7.2&lt;br /&gt;
* Node.js (lts) 20.10&lt;br /&gt;
* Node.js (current) 21.2&lt;br /&gt;
* QEMU 8.1&lt;br /&gt;
* Ceph 18.2&lt;br /&gt;
* GNOME 45&lt;br /&gt;
* LXQt 1.4&lt;br /&gt;
* wlroots 0.17&lt;br /&gt;
* Go 1.21&lt;br /&gt;
* Rust 1.72&lt;br /&gt;
* Crystal 1.10&lt;br /&gt;
* Racket 8.11&lt;br /&gt;
* ECL 23.9.9&lt;br /&gt;
* Erlang 26&lt;br /&gt;
* zlib 1.3&lt;br /&gt;
* libsodium 1.0.19&lt;br /&gt;
* ICU 74.1&lt;br /&gt;
* Protobuf 24.4&lt;br /&gt;
* fmt 10&lt;br /&gt;
* PipeWire 1.0.0&lt;br /&gt;
&lt;br /&gt;
[[Category:News]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.19.0&amp;diff=25815</id>
		<title>Release Notes for Alpine 3.19.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.19.0&amp;diff=25815"/>
		<updated>2023-11-21T08:02:04Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: /* Others */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Base System ==&lt;br /&gt;
&lt;br /&gt;
=== iptables-nft ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;/sbin/iptables{,-save,-restore}&amp;lt;/code&amp;gt; symlinks now point to xtables-nft-multi instead of xtables-legacy-multi. This means they use the nftables kernel backend instead of the legacy iptables one.&lt;br /&gt;
&lt;br /&gt;
Since the new iptables- binaries also don&#039;t use the iptables backend, to work with any existing rules and save them, you need to install {{pkg|iptables-legacy}} and use &amp;lt;code&amp;gt;iptables-legacy-save&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Because mixing backends is not supported, you should reboot your system if you have to use the iptables commands after upgrading.&lt;br /&gt;
&lt;br /&gt;
=== netns ===&lt;br /&gt;
&lt;br /&gt;
The OpenRC package contains a patch to make it possible to start most services in netns namespaces. See also [[Netns|netns]].&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
=== HashiCorp packages ===&lt;br /&gt;
&lt;br /&gt;
Due to the relicensing of HashiCorp software to BUSL-1.1 (a non-Open-Source license) ([https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license link]), [https://www.vaultproject.io/ Vault] was removed from Alpine.&lt;br /&gt;
&lt;br /&gt;
Other packages ({{pkg|consul}}, {{pkg|nomad}}, {{pkg|packer}}, {{pkg|terraform}}) might be affected as well.&lt;br /&gt;
&lt;br /&gt;
=== Java 21 ===&lt;br /&gt;
&lt;br /&gt;
The latest LTS java release, openjdk21,  is now available in the community repository.&lt;br /&gt;
&lt;br /&gt;
=== KDE ===&lt;br /&gt;
&lt;br /&gt;
KDE Applications have been upgraded from 23.04.x to 23.08.x. KDE Frameworks have been upgraded from 5.105.0 to 5.112.0.&lt;br /&gt;
Note that the KDE Frameworks packages have been renamed to add a 5 suffix in preparation for the upcoming KDE 6 release in the next Alpine release. Everything should automatically be upgraded properly but if problems occur make sure to check if the right renamed packages are installed.&lt;br /&gt;
&lt;br /&gt;
[[Category:News]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23366</id>
		<title>Release Notes for Alpine 3.18.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23366"/>
		<updated>2023-05-08T09:53:43Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
linux-lts 6.1 https://lkml.org/lkml/2022/12/11/206&lt;br /&gt;
&lt;br /&gt;
Kernel modules are now signed.&lt;br /&gt;
&lt;br /&gt;
=== musl 1.2.4 ===&lt;br /&gt;
&lt;br /&gt;
Support for DNS lookups over TCP.&lt;br /&gt;
&lt;br /&gt;
https://www.openwall.com/lists/musl/2023/05/02/1&lt;br /&gt;
&lt;br /&gt;
=== DT_RELR ===  &lt;br /&gt;
&lt;br /&gt;
on x86, x86_64, and ppc64le, &amp;lt;code&amp;gt;-Wl,-z,pack-relative-relocs&amp;lt;/code&amp;gt; is now added to the base LDFLAGS. this reduces elf (executable/shared-library) size by 10% on average.  &lt;br /&gt;
&lt;br /&gt;
however, these binaries are now not portable to other musl-based systems that have a musl older than 1.2.4, because older versions are incapable of loading these binaries.&lt;br /&gt;
&lt;br /&gt;
=== GNOME ===&lt;br /&gt;
&lt;br /&gt;
The gnome metapackage was reworked and the packages gnome-apps-extra and gnome-games-collection were removed to avoid opinionated lists in metapackages. It is advised to remove those from /etc/apk/world before performing the upgrade. Additionally, the new subpackage gnome-dev-tools was added following upstream&#039;s recommendations.&lt;br /&gt;
&lt;br /&gt;
=== Plasma 5.27.4 ===&lt;br /&gt;
&lt;br /&gt;
From 5.26.5 before. This includes some new packages like plasma-welcome (a welcoming application that shows up on first boot to configure some initial settings) and flatpak-kcm (a configuration page for the system settings to control Flatpak permissions, much like GNOME&#039;s Flatseal).&lt;br /&gt;
This Plasma release is the last one that will be build on Qt5 and will probably remain in use for Alpine 3.19 as well.&lt;br /&gt;
&lt;br /&gt;
=== dbus ===&lt;br /&gt;
&lt;br /&gt;
dbus-activation has been removed from packages &amp;lt;code&amp;gt;openrc-settingsd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apk-polkit-rs&amp;lt;/code&amp;gt;. To make use of their services, make sure to start and enable the &amp;lt;code&amp;gt;openrc-settingsd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; services, respectively.&lt;br /&gt;
&lt;br /&gt;
=== removal of pipewire-media-session ===&lt;br /&gt;
&lt;br /&gt;
pipewire-media-session was removed, as upstream explicitly recommends to not use it, and it&#039;s completely superceded by wireplumber.&lt;br /&gt;
if you used it, make sure you don&#039;t have pipewire-media-session in /etc/apk/world, and configure any scripts you might&#039;ve had to launch wireplumber instead.&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
python 3.11 https://docs.python.org/3/whatsnew/3.11.html&lt;br /&gt;
&lt;br /&gt;
=== splitting of python pycache .pyc files ===&lt;br /&gt;
&lt;br /&gt;
most python modules split their __pycache__ to a -pyc subpackage, pulled by default. to save space and not pull it (incurring python interpreter startup costs, as it generates it each run), run &amp;lt;code&amp;gt;apk add !python3-pyc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PHP 8.2 ===&lt;br /&gt;
&lt;br /&gt;
Added 8.2 packages with subset of the most common extensions. Version 8.1 still remains primary provider priority but some web applications started to use 8.2.&lt;br /&gt;
&lt;br /&gt;
=== Ruby 3.2 ===&lt;br /&gt;
&lt;br /&gt;
Ruby was updated to 3.2. https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/&lt;br /&gt;
&lt;br /&gt;
=== gdk-pixbuf-loaders ===&lt;br /&gt;
&lt;br /&gt;
a few gdk-pixbuf loaders were added, and they were all added to an install_if metapackage rule- &amp;lt;code&amp;gt;apk add gdk-pixbuf-loaders&amp;lt;/code&amp;gt; to enable the loaders for corresponding image libraries you have installed.&lt;br /&gt;
&lt;br /&gt;
=== Docker 23 ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;docker&amp;lt;/code&amp;gt; package shipped with Alpine 3.18 has a dependency on &amp;lt;code&amp;gt;docker-cli-buildx&amp;lt;/code&amp;gt;, as Docker 23 now uses it for builds.&lt;br /&gt;
&lt;br /&gt;
Also, Docker 23 no longer enables the &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; storage driver, as it has been deprecated for a long time and is nearing removal. if your deployment is still configured to use it, &amp;lt;code&amp;gt;dockerd&amp;lt;/code&amp;gt; will fail to start.  To fix this, either...&lt;br /&gt;
&lt;br /&gt;
* migrate to &amp;lt;code&amp;gt;overlay2&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/docker/daemon.json&amp;lt;/code&amp;gt;&lt;br /&gt;
* hardcode it to &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; in the same file (instead of blank), though this will eventually break in a future upgrade&lt;br /&gt;
&lt;br /&gt;
For more detailed information about Docker 23, please refer to https://docs.docker.com/engine/release-notes/23.0/&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.16.0&amp;diff=21809</id>
		<title>Release Notes for Alpine 3.16.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.16.0&amp;diff=21809"/>
		<updated>2022-05-02T12:32:06Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important changes ==&lt;br /&gt;
&lt;br /&gt;
=== /tmp mounted as tmpfs ===&lt;br /&gt;
&lt;br /&gt;
Previously &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; was just part of the root filesystem and was cleaned on boot via the bootmisc openrc service script. In v3.16, on new installation, &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; will be mounted as tmpfs. &lt;br /&gt;
&lt;br /&gt;
== New features and noteworthy new packages ==&lt;br /&gt;
&lt;br /&gt;
=== KDE ===&lt;br /&gt;
&lt;br /&gt;
Plasma has been upgraded from 5.23 to 5.24.&lt;br /&gt;
&lt;br /&gt;
KDE applications (the release service) have been upgraded from 21.08 to 22.04 and KDE Frameworks have been upgraded from 5.88 to 5.93.&lt;br /&gt;
&lt;br /&gt;
Plasma Mobile Gear have been upgraded from 21.12 to 22.04.&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.15.0&amp;diff=20381</id>
		<title>Release Notes for Alpine 3.15.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.15.0&amp;diff=20381"/>
		<updated>2021-11-25T18:38:18Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: Add details about Pipewire changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important changes ==&lt;br /&gt;
&lt;br /&gt;
=== New package signing keys ===&lt;br /&gt;
&lt;br /&gt;
New signing keys have been generated for v3.15 ongoing. The key size has been increased from 2048 bits to 4096 bits. Make sure you have &amp;lt;code&amp;gt;alpine-keys-2.4-r0&amp;lt;/code&amp;gt; or later before upgrading to 3.15 (or downgrading from edge).&lt;br /&gt;
&lt;br /&gt;
=== MIPS64 discontinued ===&lt;br /&gt;
&lt;br /&gt;
The build hardware we use for building the packages is broken and the architecture is EOL, so there is no new hardware available anymore. As a consequence, there will be no v3.15 release for mips64, and existing releases can no longer receive security updates, so continued use of this architecture is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== radvd no longer enables ipv6 forwarding ===&lt;br /&gt;
&lt;br /&gt;
The radvd init script no longer enables ipv6 forwarding. To enable ipv6 forwarding (necessary for most networks), add &amp;lt;code&amp;gt;net.ipv6.conf.all.forwarding=1&amp;lt;/code&amp;gt; to {{path|/etc/sysctl.conf}} or to a file in {{path|/etc/sysctl.d}}.&lt;br /&gt;
&lt;br /&gt;
=== Move from sudo to doas ===&lt;br /&gt;
&lt;br /&gt;
doas is the default temporary privilege escalation tool.  You are advised to migrate from sudo to doas as 3.15 will be the last release to support sudo throughout its full lifecycle, in 3.16 sudo will be moved from main to community.&lt;br /&gt;
&lt;br /&gt;
=== PipeWire doesn&#039;t auto-start a session manager anymore ===&lt;br /&gt;
&lt;br /&gt;
In 3.14 and earlier the PipeWire default config was edited in packaging to auto-start pipewire-media-session as the default session manager. Since we now have wireplumber available as an alternative session manager, this has been changed in favor of a launch wrapper for pipewire at &amp;lt;code&amp;gt;/usr/libexec/pipewire-launcher&amp;lt;/code&amp;gt;. When executed this will launch pipewire, pipewire-media-session or wireplumber, and pipewire-pulse, depending on what modules are available. If you were launching &amp;lt;code&amp;gt;/usr/bin/pipewire&amp;lt;/code&amp;gt; and the session manager manually before, please use the new launcher wrapper instead. WirePlumber can now also be used as a proper alternative for pipewire-media-session.&lt;br /&gt;
&lt;br /&gt;
== New features and noteworthy new packages ==&lt;br /&gt;
&lt;br /&gt;
=== Compressed kernel modules ===&lt;br /&gt;
&lt;br /&gt;
Kernel modules are now compressed using gzip.&lt;br /&gt;
&lt;br /&gt;
=== UEFI Secure Boot ===&lt;br /&gt;
&lt;br /&gt;
Complete support for [[UEFI Secure Boot]] realized by package {{pkg|secureboot-hook}} and {{pkg|efi-mkkeys}}.&lt;br /&gt;
&lt;br /&gt;
=== Support overlaytmpfs mount options ===&lt;br /&gt;
&lt;br /&gt;
It is now possible to use tmpfs(5) mount options with &amp;lt;code&amp;gt; overlaytmpfsflags&amp;lt;/code&amp;gt;, when using &amp;lt;code&amp;gt;overlaytmpfs&amp;lt;/code&amp;gt;, see mkinitfs-bootparams(7).  Also, &amp;lt;code&amp;gt;rootflags&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;rootfstype&amp;lt;/code&amp;gt; options are now picked up for the underlying rootfs mount.&lt;br /&gt;
&lt;br /&gt;
=== Support for out-of-tree kernel modules built from source ===&lt;br /&gt;
&lt;br /&gt;
Alpine Kernel Module Support ({{pkg|akms}}) – support for building out-of-tree Linux kernel modules from source in an automated and organized fashion. It’s like DKMS, but designed specifically for Alpine Linux.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL multiple major versions ===&lt;br /&gt;
&lt;br /&gt;
PostgreSQL packaging has been reworked to allow multiple major versions of PostgreSQL server to be installed side by side. This makes it possible to allow to upgrade PostgreSQL cluster from one major version to the next using &amp;lt;code&amp;gt;pg_upgrade&amp;lt;/code&amp;gt; tool, and also to run an older major version of PostgreSQL on the latest version of Alpine Linux. The latest PostgreSQL version can be installed simply with &amp;lt;code&amp;gt;apk add postgresql&amp;lt;/code&amp;gt; as before. If you need an older major version, install the specific package, e.g. {{pkg|postgresql13}}. You can switch between installed major versions using command &amp;lt;code&amp;gt;pg_versions&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See [https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/27275 MR #27275] for more information.&lt;br /&gt;
&lt;br /&gt;
=== Rofi for Wayland ===&lt;br /&gt;
&lt;br /&gt;
Rofi can now be used on Wayland desktops thanks to the fork {{pkg|rofi-wayland}}.&lt;br /&gt;
&lt;br /&gt;
=== Encrypted Data Disk and System Disk modes ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; ({{pkg|alpine-conf}}) now supports encrypted Data Disk and System Disk modes.&lt;br /&gt;
&lt;br /&gt;
== Significant updates ==&lt;br /&gt;
&lt;br /&gt;
=== 5.15 LTS kernels === &lt;br /&gt;
&lt;br /&gt;
linux-lts and linux-virt upgraded to 5.15&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you are using &#039;&#039;ZFS&#039;&#039; and depend on symlinks under /dev/zvol/ some are sporadically not created during boot, this is known upstream by &#039;&#039;OpenZFS&#039;&#039; and we track the issue [https://gitlab.alpinelinux.org/alpine/aports/-/issues/13198 here].&lt;br /&gt;
&lt;br /&gt;
=== Ruby 3.0.2 ===&lt;br /&gt;
&lt;br /&gt;
Ruby has been upgraded to version 3.0.2.&lt;br /&gt;
&lt;br /&gt;
Packages {{pkg|ruby-minitest}}, {{pkg|ruby-net-telnet}}, {{pkg|ruby-power_assert}}, {{pkg|ruby-sdbm}}, {{pkg|ruby-test-unit}}, {{pkg|ruby-xmlrpc}}, {{pkg|ruby-webrick}} has been moved from ruby aport to separate aports. Please note that since they don’t inherit the version from the ruby aport anymore, their new (real) version is &#039;&#039;lower&#039;&#039; than before!&lt;br /&gt;
&lt;br /&gt;
Subpackages ruby-bigdecimal, ruby-etc, ruby-fiddle, ruby-gdbm, ruby-io-console, ruby-irb, and ruby-json have been merged into ruby-libs.&lt;br /&gt;
&lt;br /&gt;
=== LLVM12 added ===&lt;br /&gt;
&lt;br /&gt;
LLVM12 is now available.&lt;br /&gt;
&lt;br /&gt;
=== KDE ===&lt;br /&gt;
&lt;br /&gt;
KDE Plasma has been upgraded to version 5.23, and KDE Applications have been upgraded to 21.08.&lt;br /&gt;
Plasma Mobile Gear has been upgraded to 21.10.&lt;br /&gt;
&lt;br /&gt;
=== Node.js ===&lt;br /&gt;
&lt;br /&gt;
Node.js (LTS) has been upgraded to version 16.13.0. nodejs-current has been upgraded to 17.0.1.&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
PHP 7.4 started to phase out (1 year of security support left).&lt;br /&gt;
Transition to 8.0 is not finished yet as some app still require old version.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL 14 ===&lt;br /&gt;
&lt;br /&gt;
PostgreSQL has been upgraded to version 14.0. Since this release, multiple major versions are provided, currently: 12, 13, and 14.&lt;br /&gt;
&lt;br /&gt;
Support for Just-in-time compilation (JIT) has been moved into subpackage {{pkg|postgresql-jit}}.&lt;br /&gt;
&lt;br /&gt;
{{pkg|libpq}} is now built without LDAP support which reduces number of installed dependencies. Note that this does &#039;&#039;not&#039;&#039; affect the LDAP support in PostgreSQL server, it’s preserved.&lt;br /&gt;
&lt;br /&gt;
=== Mercurial ===&lt;br /&gt;
&lt;br /&gt;
mercurial has been upgraded to 5.9.3 &lt;br /&gt;
&lt;br /&gt;
=== Dlang build tools (DMD, DUB, LDC) have been updated ===&lt;br /&gt;
&lt;br /&gt;
Both compilers have been updated to frontend version v2.098.0 (LDC equivalent: v1.28.0).&lt;br /&gt;
Dub has been updated to v1.27.0.&lt;br /&gt;
LDC now always uses `--export-dynamic` so that code compiled without debug infos (`-g`) will still have the function name in its stack trace.&lt;br /&gt;
&lt;br /&gt;
=== OpenJDK 17 added ===&lt;br /&gt;
&lt;br /&gt;
The latest OpenJDK LTS version (17) has been added to this release and is available via the community repository.&lt;br /&gt;
&lt;br /&gt;
=== GNOME 41 ===&lt;br /&gt;
&lt;br /&gt;
Most GNOME packages have been upgraded to version 41.&lt;br /&gt;
&lt;br /&gt;
=== Crystal ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|crystal}} has been upgraded to version 1.2.2.&lt;br /&gt;
&lt;br /&gt;
=== Kea ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|kea}} has been upgraded to version 2.0.0.&lt;br /&gt;
&lt;br /&gt;
=== OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|openldap}} has been upgraded to version 2.6.0.&lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|rust}} has been upgraded to version 1.56.1.&lt;br /&gt;
&lt;br /&gt;
== Significant removals ==&lt;br /&gt;
&lt;br /&gt;
=== QtWebKit was removed due to lack of upstream support ===&lt;br /&gt;
&lt;br /&gt;
qt5-qtwebkit, kdewebkit, wkhtmltopdf, and py3-pdfkit have been removed due to known vulnerabilities and lack of upstream support for qtwebkit. Other programs have been adjusted to use qt5-qtwebengine where appropriate. The most direct replacement for wkhtmltopdf is weasyprint, which is available in the Alpine Linux community repository. puppeteer and pandoc are also options, depending on your needs. See [https://gitlab.alpinelinux.org/alpine/aports/-/issues/12888 #12888] for more information.&lt;br /&gt;
&lt;br /&gt;
== Development-related changes ==&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|postgresql-dev}} has been split into {{pkg|libpq-dev}}, {{pkg|libecpg-dev}}, and &amp;lt;code&amp;gt;postgresql-dev&amp;lt;/code&amp;gt; (this is &#039;&#039;provided&#039;&#039; by {{pkg|postgresql14-dev}}, {{pkg|postgresql13-dev}} etc.). Basically, only PostgreSQL extensions should use {{pkg|postgresql-dev}} in &amp;lt;code&amp;gt;makedepends&amp;lt;/code&amp;gt;; all other aports should use {{pkg|libpq-dev}} and/or {{pkg|libecpg-dev}} (there are some exceptions though).&lt;br /&gt;
&lt;br /&gt;
PostgreSQL extensions (typically packages with &amp;lt;code&amp;gt;postgresql-&amp;lt;/code&amp;gt; prefix) should use {{pkg|postgresql-dev}} in &amp;lt;code&amp;gt;makedepends&amp;lt;/code&amp;gt; – this will install the latest &amp;lt;code&amp;gt;postgresql&amp;lt;majorver&amp;gt;-dev&amp;lt;/code&amp;gt; package, unless there’s a dependency on a specific postgresql version in the dependency graph (which shouldn’t be).&lt;br /&gt;
&lt;br /&gt;
Each aport providing a PostgreSQL extension must explicitly depend on specific &amp;lt;code&amp;gt;postgresql&amp;lt;majorver&amp;gt;&amp;lt;/code&amp;gt; package, not &amp;lt;code&amp;gt;postgresql&amp;lt;/code&amp;gt; provider. This should be solved by adding the following into the &amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt; function (!) in each aport that provides PostgreSQL extension:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
depends=&amp;quot;postgresql$(pg_config --major-version)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.15.0&amp;diff=20200</id>
		<title>Release Notes for Alpine 3.15.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.15.0&amp;diff=20200"/>
		<updated>2021-10-19T11:22:49Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== aports ==&lt;br /&gt;
&lt;br /&gt;
=== QtWebKit was removed due to lack of upstream support ===&lt;br /&gt;
&lt;br /&gt;
qt5-qtwebkit, kdewebkit, wkhtmltopdf, and py3-pdfkit have been removed due to known vulnerabilities and lack of upstream support for qtwebkit. Other programs have been adjusted to use qt5-qtwebengine where appropriate. The most direct replacement for wkhtmltopdf is weasyprint, which is available in the Alpine Linux community repository. puppeteer and pandoc are also options, depending on your needs. See [https://gitlab.alpinelinux.org/alpine/aports/-/issues/12888 #12888] for more information.&lt;br /&gt;
&lt;br /&gt;
=== radvd no longer enables ipv6 forwarding ===&lt;br /&gt;
&lt;br /&gt;
The radvd init script no longer enables ipv6 forwarding. To enable ipv6 forwarding (necessary for most networks), add &amp;lt;code&amp;gt;net.ipv6.conf.all.forwarding=1&amp;lt;/code&amp;gt; to {{path|/etc/sysctl.conf}} or to a file in {{path|/etc/sysctl.d}}.&lt;br /&gt;
&lt;br /&gt;
=== OpenSSL 3.0 ===&lt;br /&gt;
&lt;br /&gt;
openssl has been upgraded to 3.0. In addition to the changes at https://wiki.openssl.org/index.php/OpenSSL_3.0, note that this release effectively disables TLS 1.0 and TLS 1.1 by default: https://github.com/openssl/openssl/commit/aba03ae571ea677fc484daef00a21ca8f7e82708.&lt;br /&gt;
&lt;br /&gt;
=== New package signing keys ===&lt;br /&gt;
&lt;br /&gt;
New signing keys have been generated for v3.15 ongoing. The key size has been increased from 2048 bits to 4096 bits. Make sure you have &amp;lt;code&amp;gt;alpine-keys-2.4-r0&amp;lt;/code&amp;gt; or later before upgrading to 3.15 (or downgrading from edge).&lt;br /&gt;
&lt;br /&gt;
=== Ruby 3.0 ===&lt;br /&gt;
&lt;br /&gt;
Ruby has been upgraded to version 3.0.&lt;br /&gt;
&lt;br /&gt;
=== LLVM12 added ===&lt;br /&gt;
&lt;br /&gt;
LLVM12 is now available.&lt;br /&gt;
&lt;br /&gt;
=== KDE ===&lt;br /&gt;
&lt;br /&gt;
KDE Plasma has been upgraded to version 5.23, and KDE Applications have been upgraded to 21.08.&lt;br /&gt;
Plasma Mobile Gear has been upgraded to 21.10.&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Bluetooth_audio&amp;diff=20146</id>
		<title>Bluetooth audio</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Bluetooth_audio&amp;diff=20146"/>
		<updated>2021-09-28T07:25:44Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: /* PulseAudio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PulseAudio ==&lt;br /&gt;
&lt;br /&gt;
Before you can connect your device to Bluetooth speakers or headphones, you&#039;ll have to make sure {{Pkg|pulseaudio-bluez}} is installed.&lt;br /&gt;
&lt;br /&gt;
== PipeWire ==&lt;br /&gt;
&lt;br /&gt;
For PipeWire you need to install {{Pkg|pipewire-spa-bluez}}.&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PipeWire&amp;diff=19993</id>
		<title>PipeWire</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PipeWire&amp;diff=19993"/>
		<updated>2021-08-03T08:44:58Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: /* Audio Group */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft|The instructions below have not been thoroughly tested and may break things.}}&lt;br /&gt;
&lt;br /&gt;
[https://pipewire.org/ PipeWire] is a multimedia processing engine that aims to improve audio and video handling on Linux.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
=== Audio Group ===&lt;br /&gt;
&lt;br /&gt;
When elogind is not available, the user has to be added to the &amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt; group. The user must log in for this to take effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# addgroup audio &amp;lt;user&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
PipeWire requires a running [https://www.freedesktop.org/wiki/Software/dbus/ D-Bus] session. If you use a full desktop environment this will probably be started automatically, but with minimal window managers it must be done manually.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add dbus dbus-openrc dbus-x11&lt;br /&gt;
# rc-service dbus start&lt;br /&gt;
# rc-update add dbus default&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then use &amp;lt;code&amp;gt;dbus-launch&amp;lt;/code&amp;gt; whenever you start an X or Wayland session. For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dbus-launch --exit-with-session sway&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== XDG_RUNTIME_DIR ===&lt;br /&gt;
&lt;br /&gt;
If you are not using a Desktop Manager, ensure that your &amp;lt;code&amp;gt;XDG_RUNTIME_DIR&amp;lt;/code&amp;gt; is set to a user-writable location. By default for pulseaudio this is &amp;lt;code&amp;gt;/run/user/1000/&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt;. If this is not set, pipewire will create a directory in your home folder instead, called &amp;lt;code&amp;gt;~/pulse&amp;lt;/code&amp;gt;, and on attempting to run Pavucontrol or pactl, you will get the following error:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pactl list&lt;br /&gt;
Connection failure: Connection refused&lt;br /&gt;
pa_context_connect() failed: Connection refused&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation and configuration ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add pipewire&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create custom configuration file in &amp;lt;code&amp;gt;/etc/pipewire/pipewire.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /etc/pipewire&lt;br /&gt;
# cp /usr/share/pipewire/pipewire.conf /etc/pipewire/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uncomment the following line in &amp;lt;code&amp;gt;/etc/pipewire/pipewire.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{ path = &amp;quot;/usr/bin/pipewire-media-session&amp;quot;  args = &amp;quot;&amp;quot; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enable the &amp;lt;code&amp;gt;snd_seq&amp;lt;/code&amp;gt; kernel module for ALSA support.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# modprobe snd_seq&lt;br /&gt;
# echo snd_seq &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ALSA ===&lt;br /&gt;
&lt;br /&gt;
If you used neither Jack or PulseAudio nor intend to.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# touch /etc/pipewire/media-session.d/with-alsa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PulseAudio ===&lt;br /&gt;
&lt;br /&gt;
PipeWire can run a [https://www.freedesktop.org/wiki/Software/PulseAudio/ PulseAudio] daemon which should allow all existing PulseAudio applications to be used with the PipeWire backend.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add pipewire-pulse&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It should be automatically enabled.&lt;br /&gt;
&lt;br /&gt;
=== JACK ===&lt;br /&gt;
&lt;br /&gt;
If you will be using PipeWire for [https://jackaudio.org/ JACK] applications install the required package and make system wide links to the PipeWire replacement JACK libraries (I have not had success using &amp;lt;code&amp;gt;pw-jack&amp;lt;/code&amp;gt;). You will not need to start a JACK server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add pipewire-jack&lt;br /&gt;
# ln -sf /usr/lib/pipewire-0.3/jack/libjackserver.so.0 /usr/lib/libjackserver.so.0&lt;br /&gt;
# ln -sf /usr/lib/pipewire-0.3/jack/libjacknet.so.0 /usr/lib/libjacknet.so.0&lt;br /&gt;
# ln -sf /usr/lib/pipewire-0.3/jack/libjack.so.0 /usr/lib/libjack.so.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|These symlinks might be overwritten during updates.}}&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
Video should work out-of-the-box with v4l2 devices (e.g. a lot of webcams) and [https://gstreamer.freedesktop.org/ GStreamer] applications.&lt;br /&gt;
&lt;br /&gt;
=== Screen sharing on Wayland ===&lt;br /&gt;
&lt;br /&gt;
You will need the right [https://github.com/flatpak/xdg-desktop-portal xdg-desktop-portal] backend for your desktop environment. Screen sharing is known to work on:&lt;br /&gt;
* GNOME with &amp;lt;code&amp;gt;xdg-desktop-portal-gtk&amp;lt;/code&amp;gt;&lt;br /&gt;
* KDE Plasma with &amp;lt;code&amp;gt;xdg-desktop-portal-kde&amp;lt;/code&amp;gt; and Firefox&lt;br /&gt;
* Sway with &amp;lt;code&amp;gt;xdg-desktop-portal-wlr&amp;lt;/code&amp;gt; and Firefox&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Start the PipeWire media server. You&#039;ll probably get quite a few errors but just ignore them for now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipewire&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a different terminal window check the default output device. I don&#039;t yet know how this default can be changed for all applications, so you&#039;d better hope it&#039;s right!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pw-cat -p --list-targets&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test sound is working using an audio file in a format supported by [http://www.mega-nerd.com/libsndfile/ libsndfile] (e.g. flac, opus, ogg, wav).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pw-cat -p test.flac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have a microphone test recording audio is working.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pw-cat -r --list-targets&lt;br /&gt;
$ pw-cat -r recording.flac&lt;br /&gt;
(Speak for a while then stop it with Ctrl+c)&lt;br /&gt;
$ pw-cat -p recording.flac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test PulseAudio clients using a media player (most use PulseAudio) and if you use JACK test that too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add jack-example-clients&lt;br /&gt;
$ jack_simple_client&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should hear a sustained beep.&lt;br /&gt;
&lt;br /&gt;
If you are happy everything is working, make PipeWire start automatically when your X or Wayland session starts. For example, you could add the &amp;lt;code&amp;gt;pipewire&amp;lt;/code&amp;gt; command to &amp;lt;code&amp;gt;~/.xinitrc&amp;lt;/code&amp;gt; or your window manager&#039;s config file.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://gitlab.freedesktop.org/pipewire/pipewire PipeWire source repository]&lt;br /&gt;
* [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home PipeWire Wiki]&lt;br /&gt;
* [https://wiki.archlinux.org/index.php/PipeWire PipeWire on the ArchWiki]&lt;br /&gt;
* [https://wiki.gentoo.org/wiki/Pipewire PipeWire on the Gentoo Wiki]&lt;br /&gt;
&lt;br /&gt;
[[Category:Multimedia]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PipeWire&amp;diff=19990</id>
		<title>PipeWire</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PipeWire&amp;diff=19990"/>
		<updated>2021-07-31T18:25:28Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: /* PulseAudio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft|The instructions below have not been thoroughly tested and may break things.}}&lt;br /&gt;
&lt;br /&gt;
[https://pipewire.org/ PipeWire] is a multimedia processing engine that aims to improve audio and video handling on Linux.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
=== Audio Group ===&lt;br /&gt;
&lt;br /&gt;
Add your normal user to the &amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt; group. The user must log in for this to take effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# addgroup audio &amp;lt;user&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
PipeWire requires a running [https://www.freedesktop.org/wiki/Software/dbus/ D-Bus] session. If you use a full desktop environment this will probably be started automatically, but with minimal window managers it must be done manually.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add dbus dbus-openrc dbus-x11&lt;br /&gt;
# rc-service dbus start&lt;br /&gt;
# rc-update add dbus default&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then use &amp;lt;code&amp;gt;dbus-launch&amp;lt;/code&amp;gt; whenever you start an X or Wayland session. For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dbus-launch --exit-with-session sway&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== XDG_RUNTIME_DIR ===&lt;br /&gt;
&lt;br /&gt;
If you are not using a Desktop Manager, ensure that your &amp;lt;code&amp;gt;XDG_RUNTIME_DIR&amp;lt;/code&amp;gt; is set to a user-writable location. By default for pulseaudio this is &amp;lt;code&amp;gt;/run/user/1000/&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt;. If this is not set, pipewire will create a directory in your home folder instead, called &amp;lt;code&amp;gt;~/pulse&amp;lt;/code&amp;gt;, and on attempting to run Pavucontrol or pactl, you will get the following error:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pactl list&lt;br /&gt;
Connection failure: Connection refused&lt;br /&gt;
pa_context_connect() failed: Connection refused&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation and configuration ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add pipewire&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create custom configuration file in &amp;lt;code&amp;gt;/etc/pipewire/pipewire.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /etc/pipewire&lt;br /&gt;
# cp /usr/share/pipewire/pipewire.conf /etc/pipewire/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uncomment the following line in &amp;lt;code&amp;gt;/etc/pipewire/pipewire.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{ path = &amp;quot;/usr/bin/pipewire-media-session&amp;quot;  args = &amp;quot;&amp;quot; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enable the &amp;lt;code&amp;gt;snd_seq&amp;lt;/code&amp;gt; kernel module for ALSA support.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# modprobe snd_seq&lt;br /&gt;
# echo snd_seq &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ALSA ===&lt;br /&gt;
&lt;br /&gt;
If you used neither Jack or PulseAudio nor intend to.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# touch /etc/pipewire/media-session.d/with-alsa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PulseAudio ===&lt;br /&gt;
&lt;br /&gt;
PipeWire can run a [https://www.freedesktop.org/wiki/Software/PulseAudio/ PulseAudio] daemon which should allow all existing PulseAudio applications to be used with the PipeWire backend.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add pipewire-pulse&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It should be automatically enabled.&lt;br /&gt;
&lt;br /&gt;
=== JACK ===&lt;br /&gt;
&lt;br /&gt;
If you will be using PipeWire for [https://jackaudio.org/ JACK] applications install the required package and make system wide links to the PipeWire replacement JACK libraries (I have not had success using &amp;lt;code&amp;gt;pw-jack&amp;lt;/code&amp;gt;). You will not need to start a JACK server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add pipewire-jack&lt;br /&gt;
# ln -sf /usr/lib/pipewire-0.3/jack/libjackserver.so.0 /usr/lib/libjackserver.so.0&lt;br /&gt;
# ln -sf /usr/lib/pipewire-0.3/jack/libjacknet.so.0 /usr/lib/libjacknet.so.0&lt;br /&gt;
# ln -sf /usr/lib/pipewire-0.3/jack/libjack.so.0 /usr/lib/libjack.so.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|These symlinks might be overwritten during updates.}}&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
Video should work out-of-the-box with v4l2 devices (e.g. a lot of webcams) and [https://gstreamer.freedesktop.org/ GStreamer] applications.&lt;br /&gt;
&lt;br /&gt;
=== Screen sharing on Wayland ===&lt;br /&gt;
&lt;br /&gt;
You will need the right [https://github.com/flatpak/xdg-desktop-portal xdg-desktop-portal] backend for your desktop environment. Screen sharing is known to work on:&lt;br /&gt;
* GNOME with &amp;lt;code&amp;gt;xdg-desktop-portal-gtk&amp;lt;/code&amp;gt;&lt;br /&gt;
* KDE Plasma with &amp;lt;code&amp;gt;xdg-desktop-portal-kde&amp;lt;/code&amp;gt; and Firefox&lt;br /&gt;
* Sway with &amp;lt;code&amp;gt;xdg-desktop-portal-wlr&amp;lt;/code&amp;gt; and Firefox&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Start the PipeWire media server. You&#039;ll probably get quite a few errors but just ignore them for now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipewire&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a different terminal window check the default output device. I don&#039;t yet know how this default can be changed for all applications, so you&#039;d better hope it&#039;s right!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pw-cat -p --list-targets&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test sound is working using an audio file in a format supported by [http://www.mega-nerd.com/libsndfile/ libsndfile] (e.g. flac, opus, ogg, wav).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pw-cat -p test.flac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have a microphone test recording audio is working.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pw-cat -r --list-targets&lt;br /&gt;
$ pw-cat -r recording.flac&lt;br /&gt;
(Speak for a while then stop it with Ctrl+c)&lt;br /&gt;
$ pw-cat -p recording.flac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test PulseAudio clients using a media player (most use PulseAudio) and if you use JACK test that too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add jack-example-clients&lt;br /&gt;
$ jack_simple_client&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should hear a sustained beep.&lt;br /&gt;
&lt;br /&gt;
If you are happy everything is working, make PipeWire start automatically when your X or Wayland session starts. For example, you could add the &amp;lt;code&amp;gt;pipewire&amp;lt;/code&amp;gt; command to &amp;lt;code&amp;gt;~/.xinitrc&amp;lt;/code&amp;gt; or your window manager&#039;s config file.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://gitlab.freedesktop.org/pipewire/pipewire PipeWire source repository]&lt;br /&gt;
* [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home PipeWire Wiki]&lt;br /&gt;
* [https://wiki.archlinux.org/index.php/PipeWire PipeWire on the ArchWiki]&lt;br /&gt;
* [https://wiki.gentoo.org/wiki/Pipewire PipeWire on the Gentoo Wiki]&lt;br /&gt;
&lt;br /&gt;
[[Category:Multimedia]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=KDE&amp;diff=19605</id>
		<title>KDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=KDE&amp;diff=19605"/>
		<updated>2021-06-17T09:10:25Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: /* Using a display manager */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
KDE is a software project comprising a desktop environment known as Plasma, a collection of libraries and frameworks known as KDE Frameworks, and several applications known as KDE Applications. Their [https://userbase.kde.org/Welcome_to_KDE_UserBase UserBase wiki] has detailed information about most KDE Applications.&lt;br /&gt;
&lt;br /&gt;
Note that the {{Pkg|plasma}} package isn&#039;t available for the &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt; architectures due to the {{Pkg|kdeplasma-addons}} dependency not being available there. The rest of Plasma can however be installed separately to get a functional desktop.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
* [[Installation|Alpine Installation]]&lt;br /&gt;
* [[Setting_up_a_new_user#Creating_a_new_user|Create user accounts]]&lt;br /&gt;
* [[Alpine_setup_scripts#setup-xorg-base|Graphical base environment]]&lt;br /&gt;
* [[Enable_Community_Repository#Using_community_repositories|Enabled &amp;quot;community&amp;quot; repository]]&lt;br /&gt;
&lt;br /&gt;
=== Plasma ===&lt;br /&gt;
&lt;br /&gt;
Install the {{Pkg|plasma}} meta-package. This will install the required Plasma packages and {{Pkg|sddm}} and pre-configure it to use the Breeze theme.&lt;br /&gt;
&lt;br /&gt;
Alternatively, a more minimal installation can be done by installing {{Pkg|plasma-desktop}}.&lt;br /&gt;
&lt;br /&gt;
=== KDE Applications ===&lt;br /&gt;
&lt;br /&gt;
To install the full set of KDE Applications, install {{Pkg|kde-applications}}. You can also choose to install a more limited set of applications by installing any of the subpackages:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|kde-applications-accessibility}}&lt;br /&gt;
* {{Pkg|kde-applications-admin}}&lt;br /&gt;
* {{Pkg|kde-applications-base}}&lt;br /&gt;
* {{Pkg|kde-applications-edu}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-games}}&lt;br /&gt;
* {{Pkg|kde-applications-graphics}}&lt;br /&gt;
* {{Pkg|kde-applications-multimedia}}&lt;br /&gt;
* {{Pkg|kde-applications-network}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-pim}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-sdk}}&lt;br /&gt;
* {{Pkg|kde-applications-utils}}&lt;br /&gt;
* {{Pkg|kde-applications-webdev}}&lt;br /&gt;
&lt;br /&gt;
= Starting Plasma =&lt;br /&gt;
&lt;br /&gt;
Plasma can be started using a display manager or from the console.&lt;br /&gt;
&lt;br /&gt;
=== Using a display manager ===&lt;br /&gt;
&lt;br /&gt;
When Plasma is installed via the {{Pkg|plasma}} meta-package, this has already been setup using {{Pkg|sddm}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make sure you enable and start the SDDM service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rc-update add sddm&lt;br /&gt;
rc-service start sddm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Select &#039;&#039;Plasma&#039;&#039; to launch a new session in Wayland&lt;br /&gt;
* Select &#039;&#039;Plasma (X11)&#039;&#039; to launch a new session in Xorg&lt;br /&gt;
&lt;br /&gt;
=== From the console ===&lt;br /&gt;
&lt;br /&gt;
The Xorg session can be launched by installing {{Pkg|xinit}} and appending &amp;lt;code&amp;gt;exec startplasma-x11&amp;lt;/code&amp;gt; to your &amp;lt;code&amp;gt;.xinitrc&amp;lt;/code&amp;gt; file. Then just start X.&lt;br /&gt;
{{Cmd|xinit}}&lt;br /&gt;
&lt;br /&gt;
For the Wayland session run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
XDG_SESSION_TYPE=wayland dbus-run-session startplasma-wayland&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
* [[Flatpak]]&lt;br /&gt;
&lt;br /&gt;
[[category:Desktop]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Steam&amp;diff=18660</id>
		<title>Steam</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Steam&amp;diff=18660"/>
		<updated>2021-02-16T11:07:37Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://store.steampowered.com/about/ Steam] is a popular game distribution platform by Valve.&lt;br /&gt;
&lt;br /&gt;
{{Note|Steam for Linux only supports Ubuntu LTS. Thus, do not turn to Valve for support for issues with Steam on Alpine Linux.}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Steam requires glibc to run, and thus doesn&#039;t straight up run on Alpine Linux.&lt;br /&gt;
To work around this problem, we&#039;ll use [https://wiki.alpinelinux.org/wiki/Flatpak Flatpak].&lt;br /&gt;
Make sure you have the Flathub repository installed.&lt;br /&gt;
&lt;br /&gt;
  # apk add flatpak&lt;br /&gt;
  $ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo&lt;br /&gt;
  $ flatpak install com.valvesoftware.Steam&lt;br /&gt;
&lt;br /&gt;
After installation Steam can be started using it&#039;s .desktop file or on the command line:&lt;br /&gt;
&lt;br /&gt;
  $ flatpak run com.valvesoftware.Steam&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== My controllers aren&#039;t detected ===&lt;br /&gt;
&lt;br /&gt;
By default Steam doesn&#039;t have permission to read your controllers.&lt;br /&gt;
This can be fixed by installing an udev rule from the official Steam package, but the udev rules are also available as an Alpine package.&lt;br /&gt;
&lt;br /&gt;
  # apk add steam-devices&lt;br /&gt;
&lt;br /&gt;
=== SteamVR won&#039;t launch ===&lt;br /&gt;
&lt;br /&gt;
Out of the box SteamVR might not be able to launch and give you various errors. Steam tries to fix this itself by setting the right capabilities on the SteamVR binary, but this doesn&#039;t work in the Flatpak. Instead we&#039;ll have do it manually.&lt;br /&gt;
&lt;br /&gt;
  # setcap CAP_SYS_NICE+ep ~/.var/app/com.valvesoftware.Steam/data/Steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher&lt;br /&gt;
&lt;br /&gt;
Then restart Steam.&lt;br /&gt;
&lt;br /&gt;
There is an issue for this [https://github.com/flathub/com.valvesoftware.Steam/issues/636#issuecomment-779763326 on the Flathub repository].&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Steam&amp;diff=18659</id>
		<title>Steam</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Steam&amp;diff=18659"/>
		<updated>2021-02-16T10:55:39Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://store.steampowered.com/about/ Steam] is a popular game distribution platform by Valve.&lt;br /&gt;
&lt;br /&gt;
{{Note|Steam for Linux only supports Ubuntu LTS. Thus, do not turn to Valve for support for issues with Steam on Alpine Linux.}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Steam requires glibc to run, and thus doesn&#039;t straight up run on Alpine Linux.&lt;br /&gt;
To work around this problem, we&#039;ll use [https://wiki.alpinelinux.org/wiki/Flatpak Flatpak].&lt;br /&gt;
Make sure you have the Flathub repository installed.&lt;br /&gt;
&lt;br /&gt;
  # apk add flatpak&lt;br /&gt;
  $ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo&lt;br /&gt;
  $ flatpak install com.valvesoftware.Steam&lt;br /&gt;
&lt;br /&gt;
After installation Steam can be started using it&#039;s .desktop file or on the command line:&lt;br /&gt;
&lt;br /&gt;
  $ flatpak run com.valvesoftware.Steam&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== My controllers aren&#039;t detected ===&lt;br /&gt;
&lt;br /&gt;
By default Steam doesn&#039;t have permission to read your controllers.&lt;br /&gt;
This can be fixed by installing an udev rule from the official Steam package, but the udev rules are also available as an Alpine package.&lt;br /&gt;
&lt;br /&gt;
  # apk add steam-devices&lt;br /&gt;
&lt;br /&gt;
=== SteamVR won&#039;t launch ===&lt;br /&gt;
&lt;br /&gt;
Out of the box SteamVR might not be able to launch and give you various errors. Steam tries to fix this itself by setting the right capabilities on the SteamVR binary, but this doesn&#039;t work in the Flatpak. Instead we&#039;ll have do it manually.&lt;br /&gt;
&lt;br /&gt;
  # setcap CAP_SYS_NICE+ep ~/.var/app/com.valvesoftware.Steam/data/Steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher&lt;br /&gt;
&lt;br /&gt;
Then restart Steam.&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Software_management&amp;diff=18658</id>
		<title>Software management</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Software_management&amp;diff=18658"/>
		<updated>2021-02-16T10:47:26Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to run [https://www.gnu.org/software/libc/ glibc] programs in Alpine Linux, there are a few ways of doing so.  You could install glibc as additional to [https://musl.libc.org/ musl] (you would have to do this manually), or you could do it the easy way and use either Flatpak (the easiest) or a chroot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because there are different use cases, this is just a slight overview about what&#039;s possible and what&#039;s intelligent.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Your options =&lt;br /&gt;
&lt;br /&gt;
== Flatpak ==&lt;br /&gt;
&lt;br /&gt;
Flatpak is by far the easiest method of running any graphical glibc program on Alpine.&lt;br /&gt;
Firstly install it.&lt;br /&gt;
&lt;br /&gt;
 sudo apk add flatpak&lt;br /&gt;
&lt;br /&gt;
Then you can run any Flatpak application:&lt;br /&gt;
&lt;br /&gt;
 flatpak run &amp;lt;flatpak name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to enable [https://flathub.org Flathub] using it&#039;s instructions [https://flatpak.org/setup/Alpine/ here], as most glibc programs you might need will be packaged there.&lt;br /&gt;
&lt;br /&gt;
You can then install applications from it, for example:&lt;br /&gt;
&lt;br /&gt;
 flatpak install com.valvesoftware.Steam&lt;br /&gt;
&lt;br /&gt;
== Chroot ==&lt;br /&gt;
&lt;br /&gt;
=== Gentoo Linux ===&lt;br /&gt;
&lt;br /&gt;
Select a stage3 from [https://www.gentoo.org/downloads/ here] and portage latest from [https://www.gentoo.org/downloads/mirrors/ here] at gentoo/snapshots/portage-latest.tar.xz.&lt;br /&gt;
&lt;br /&gt;
First,&lt;br /&gt;
&lt;br /&gt;
 sudo apk add xz&lt;br /&gt;
&lt;br /&gt;
Enter the chroot:&lt;br /&gt;
 mkdir ~/chroot&lt;br /&gt;
 cd ~/chroot&lt;br /&gt;
 tar -xvf stage3-*.tar.xz&lt;br /&gt;
 tar -xvf portage-latest.tar.xz&lt;br /&gt;
 mv portage usr&lt;br /&gt;
 sudo mount --bind /dev dev&lt;br /&gt;
 sudo mount --bind /sys sys&lt;br /&gt;
 sudo mount -t proc proc proc&lt;br /&gt;
 cp /etc/resolv.conf etc&lt;br /&gt;
 sudo chroot . /bin/bash&lt;br /&gt;
&lt;br /&gt;
And voilà, you have your working Gentoo chroot!&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can now take a look at [https://wiki.gentoo.org/wiki/Handbook:Main_Page Gentoo&#039;s Handbook] to find out how you can configure and install your system, or simply extract/copy the program you need to run in your chroot enviroment and execute it.&lt;br /&gt;
&lt;br /&gt;
Here is a wrapper script that is similar to &amp;lt;code&amp;gt;arch-chroot&amp;lt;/code&amp;gt; when you frequently reuse this chroot:&lt;br /&gt;
&lt;br /&gt;
Also, create an account with the same user name as host current user to the chroot or make changes to the userspec option to chroot line.&lt;br /&gt;
&lt;br /&gt;
{{Cat|gentoo-chroot.sh|&amp;lt;nowiki&amp;gt;!/bin/bash&lt;br /&gt;
CHROOT_PATH=&amp;quot;/home/$USER/chroot&amp;quot;&lt;br /&gt;
cd $CHROOT_PATH&lt;br /&gt;
mount | grep $CHROOT_PATH/dev || sudo mount --bind /dev dev&lt;br /&gt;
mount | grep $CHROOT_PATH/sys || sudo mount --bind /sys sys&lt;br /&gt;
mount | grep $CHROOT_PATH/proc || sudo mount -t proc proc proc&lt;br /&gt;
cp /etc/resolv.conf etc&lt;br /&gt;
sudo chroot --userspec=$USER:users . /bin/bash&lt;br /&gt;
echo &amp;quot;You must manually unmount $CHROOT_PATH/dev, $CHROOT_PATH/sys, $CHROOT_PATH/proc.&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Do at &amp;lt;code&amp;gt;chmod +x gentoo-chroot.sh&amp;lt;/code&amp;gt; to get it to work.&lt;br /&gt;
&lt;br /&gt;
=== Arch Linux ===&lt;br /&gt;
&lt;br /&gt;
Either use &#039;&#039;&#039;pacstrap&#039;&#039;&#039; (included with the arch-install-scripts package) or an Arch bootstrap image:&lt;br /&gt;
&lt;br /&gt;
  sudo apk add arch-install-scripts&lt;br /&gt;
  mkdir ~/chroot &amp;amp;&amp;amp; cd ~/chroot&lt;br /&gt;
  curl -O https://mirrors.edge.kernel.org/archlinux/iso/latest/archlinux-bootstrap-2019.02.01-x86_64.tar.gz&lt;br /&gt;
  sudo tar xzf archlinux-bootstrap-2019.02.01-x86_64.tar.gz &amp;amp;&amp;amp; rm archlinux-bootstrap-2019.02.01-x86_64.tar.gz&lt;br /&gt;
  sudo sed -i &#039;/evowise/s/^#//&#039; root.x86_64/etc/pacman.d/mirrorlist&lt;br /&gt;
  sudo sed -i &#039;/CheckSpace/s/^/#/&#039; root.x86_64/etc/pacman.conf&lt;br /&gt;
  sudo arch-chroot root.x86_64&lt;br /&gt;
  [chroot]# pacman-key --init&lt;br /&gt;
  [chroot]# pacman-key --populate archlinux&lt;br /&gt;
&lt;br /&gt;
Once that is done, update the system and install the desired package(s) (denoted by &#039;&#039;&amp;quot;foo&amp;quot;&#039;&#039; in this example):&lt;br /&gt;
  &lt;br /&gt;
  [chroot]# pacman -Syu &#039;&#039;foo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
&lt;br /&gt;
Use the provided debootstrap package to create the Debian chroot. &amp;lt;code&amp;gt;--arch&amp;lt;/code&amp;gt; is optional, depending of your needs.&lt;br /&gt;
&lt;br /&gt;
On the &#039;&#039;&#039;linux-grsec&#039;&#039;&#039; kernel, you will need to relax chroot limitations:&lt;br /&gt;
&lt;br /&gt;
  sudo apk add debootstrap&lt;br /&gt;
  for i in /proc/sys/kernel/grsecurity/chroot_*; do echo 0 | sudo tee $i; done&lt;br /&gt;
  mkdir ~/chroot&lt;br /&gt;
  sudo debootstrap --arch=i386 wheezy ~/chroot http://http.debian.net/debian/&lt;br /&gt;
  for i in /proc/sys/kernel/grsecurity/chroot_*; do echo 1 | sudo tee $i; done&lt;br /&gt;
  sudo chroot ~/chroot /bin/bash&lt;br /&gt;
&lt;br /&gt;
You can now use &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; to install needed packages.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Software_management&amp;diff=18657</id>
		<title>Software management</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Software_management&amp;diff=18657"/>
		<updated>2021-02-16T10:45:15Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft}}&lt;br /&gt;
&lt;br /&gt;
If you want to run [https://www.gnu.org/software/libc/ glibc] programs in Alpine Linux, there are a few ways of doing so.  You could install glibc as additional to [https://musl.libc.org/ musl] (you would have to do this manually), or you could do it the easy way and use either Flatpak (the easiest) or a chroot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because there are different use cases, this is just a slight overview about what&#039;s possible and what&#039;s intelligent.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Your options =&lt;br /&gt;
&lt;br /&gt;
== Flatpak ==&lt;br /&gt;
&lt;br /&gt;
Flatpak is by far the easiest method of running any graphical glibc program on Alpine.&lt;br /&gt;
Firstly install it.&lt;br /&gt;
&lt;br /&gt;
 sudo apk add flatpak&lt;br /&gt;
&lt;br /&gt;
Then you can run any Flatpak application:&lt;br /&gt;
&lt;br /&gt;
 flatpak run &amp;lt;flatpak name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to enable [https://flathub.org Flathub] using it&#039;s instructions [https://flatpak.org/setup/Alpine/ here], as most glibc programs you might need will be packaged there.&lt;br /&gt;
&lt;br /&gt;
You can then install applications from it, for example:&lt;br /&gt;
&lt;br /&gt;
 flatpak install com.valvesoftware.Steam&lt;br /&gt;
&lt;br /&gt;
== Chroot ==&lt;br /&gt;
&lt;br /&gt;
=== Gentoo Linux ===&lt;br /&gt;
&lt;br /&gt;
Select a stage3 from [https://www.gentoo.org/downloads/ here] and portage latest from [https://www.gentoo.org/downloads/mirrors/ here] at gentoo/snapshots/portage-latest.tar.xz.&lt;br /&gt;
&lt;br /&gt;
First,&lt;br /&gt;
&lt;br /&gt;
 sudo apk add xz&lt;br /&gt;
&lt;br /&gt;
Enter the chroot:&lt;br /&gt;
 mkdir ~/chroot&lt;br /&gt;
 cd ~/chroot&lt;br /&gt;
 tar -xvf stage3-*.tar.xz&lt;br /&gt;
 tar -xvf portage-latest.tar.xz&lt;br /&gt;
 mv portage usr&lt;br /&gt;
 sudo mount --bind /dev dev&lt;br /&gt;
 sudo mount --bind /sys sys&lt;br /&gt;
 sudo mount -t proc proc proc&lt;br /&gt;
 cp /etc/resolv.conf etc&lt;br /&gt;
 sudo chroot . /bin/bash&lt;br /&gt;
&lt;br /&gt;
And voilà, you have your working Gentoo chroot!&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can now take a look at [https://wiki.gentoo.org/wiki/Handbook:Main_Page Gentoo&#039;s Handbook] to find out how you can configure and install your system, or simply extract/copy the program you need to run in your chroot enviroment and execute it.&lt;br /&gt;
&lt;br /&gt;
Here is a wrapper script that is similar to &amp;lt;code&amp;gt;arch-chroot&amp;lt;/code&amp;gt; when you frequently reuse this chroot:&lt;br /&gt;
&lt;br /&gt;
Also, create an account with the same user name as host current user to the chroot or make changes to the userspec option to chroot line.&lt;br /&gt;
&lt;br /&gt;
{{Cat|gentoo-chroot.sh|&amp;lt;nowiki&amp;gt;!/bin/bash&lt;br /&gt;
CHROOT_PATH=&amp;quot;/home/$USER/chroot&amp;quot;&lt;br /&gt;
cd $CHROOT_PATH&lt;br /&gt;
mount | grep $CHROOT_PATH/dev || sudo mount --bind /dev dev&lt;br /&gt;
mount | grep $CHROOT_PATH/sys || sudo mount --bind /sys sys&lt;br /&gt;
mount | grep $CHROOT_PATH/proc || sudo mount -t proc proc proc&lt;br /&gt;
cp /etc/resolv.conf etc&lt;br /&gt;
sudo chroot --userspec=$USER:users . /bin/bash&lt;br /&gt;
echo &amp;quot;You must manually unmount $CHROOT_PATH/dev, $CHROOT_PATH/sys, $CHROOT_PATH/proc.&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Do at &amp;lt;code&amp;gt;chmod +x gentoo-chroot.sh&amp;lt;/code&amp;gt; to get it to work.&lt;br /&gt;
&lt;br /&gt;
=== Arch Linux ===&lt;br /&gt;
&lt;br /&gt;
Either use &#039;&#039;&#039;pacstrap&#039;&#039;&#039; (included with the arch-install-scripts package) or an Arch bootstrap image:&lt;br /&gt;
&lt;br /&gt;
  sudo apk add arch-install-scripts&lt;br /&gt;
  mkdir ~/chroot &amp;amp;&amp;amp; cd ~/chroot&lt;br /&gt;
  curl -O https://mirrors.edge.kernel.org/archlinux/iso/latest/archlinux-bootstrap-2019.02.01-x86_64.tar.gz&lt;br /&gt;
  sudo tar xzf archlinux-bootstrap-2019.02.01-x86_64.tar.gz &amp;amp;&amp;amp; rm archlinux-bootstrap-2019.02.01-x86_64.tar.gz&lt;br /&gt;
  sudo sed -i &#039;/evowise/s/^#//&#039; root.x86_64/etc/pacman.d/mirrorlist&lt;br /&gt;
  sudo sed -i &#039;/CheckSpace/s/^/#/&#039; root.x86_64/etc/pacman.conf&lt;br /&gt;
  sudo arch-chroot root.x86_64&lt;br /&gt;
  [chroot]# pacman-key --init&lt;br /&gt;
  [chroot]# pacman-key --populate archlinux&lt;br /&gt;
&lt;br /&gt;
Once that is done, update the system and install the desired package(s) (denoted by &#039;&#039;&amp;quot;foo&amp;quot;&#039;&#039; in this example):&lt;br /&gt;
  &lt;br /&gt;
  [chroot]# pacman -Syu &#039;&#039;foo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
&lt;br /&gt;
Use the provided debootstrap package to create the Debian chroot. &amp;lt;code&amp;gt;--arch&amp;lt;/code&amp;gt; is optional, depending of your needs.&lt;br /&gt;
&lt;br /&gt;
On the &#039;&#039;&#039;linux-grsec&#039;&#039;&#039; kernel, you will need to relax chroot limitations:&lt;br /&gt;
&lt;br /&gt;
  sudo apk add debootstrap&lt;br /&gt;
  for i in /proc/sys/kernel/grsecurity/chroot_*; do echo 0 | sudo tee $i; done&lt;br /&gt;
  mkdir ~/chroot&lt;br /&gt;
  sudo debootstrap --arch=i386 wheezy ~/chroot http://http.debian.net/debian/&lt;br /&gt;
  for i in /proc/sys/kernel/grsecurity/chroot_*; do echo 1 | sudo tee $i; done&lt;br /&gt;
  sudo chroot ~/chroot /bin/bash&lt;br /&gt;
&lt;br /&gt;
You can now use &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; to install needed packages.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Steam&amp;diff=18649</id>
		<title>Steam</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Steam&amp;diff=18649"/>
		<updated>2021-02-11T19:46:43Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: /* My controllers aren&amp;#039;t detected */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://store.steampowered.com/about/ Steam] is a popular game distribution platform by Valve.&lt;br /&gt;
&lt;br /&gt;
{{Note|Steam for Linux only supports Ubuntu LTS. Thus, do not turn to Valve for support for issues with Steam on Alpine Linux.}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Steam requires glibc to run, and thus doesn&#039;t straight up run on Alpine Linux.&lt;br /&gt;
To work around this problem, we&#039;ll use [https://wiki.alpinelinux.org/wiki/Flatpak Flatpak].&lt;br /&gt;
Make sure you have the Flathub repository installed.&lt;br /&gt;
&lt;br /&gt;
  # apk add flatpak&lt;br /&gt;
  $ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo&lt;br /&gt;
  $ flatpak install com.valvesoftware.Steam&lt;br /&gt;
&lt;br /&gt;
After installation Steam can be started using it&#039;s .desktop file or on the command line:&lt;br /&gt;
&lt;br /&gt;
  $ flatpak run com.valvesoftware.Steam&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== My controllers aren&#039;t detected ===&lt;br /&gt;
&lt;br /&gt;
By default Steam doesn&#039;t have permission to read your controllers.&lt;br /&gt;
This can be fixed by installing an udev rule from the official Steam package, but the udev rules are also available as an Alpine package.&lt;br /&gt;
&lt;br /&gt;
  # apk add steam-devices&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Steam&amp;diff=18647</id>
		<title>Steam</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Steam&amp;diff=18647"/>
		<updated>2021-02-11T10:51:33Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: /* My controllers aren&amp;#039;t detected */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://store.steampowered.com/about/ Steam] is a popular game distribution platform by Valve.&lt;br /&gt;
&lt;br /&gt;
{{Note|Steam for Linux only supports Ubuntu LTS. Thus, do not turn to Valve for support for issues with Steam on Alpine Linux.}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Steam requires glibc to run, and thus doesn&#039;t straight up run on Alpine Linux.&lt;br /&gt;
To work around this problem, we&#039;ll use [https://wiki.alpinelinux.org/wiki/Flatpak Flatpak].&lt;br /&gt;
Make sure you have the Flathub repository installed.&lt;br /&gt;
&lt;br /&gt;
  # apk add flatpak&lt;br /&gt;
  $ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo&lt;br /&gt;
  $ flatpak install com.valvesoftware.Steam&lt;br /&gt;
&lt;br /&gt;
After installation Steam can be started using it&#039;s .desktop file or on the command line:&lt;br /&gt;
&lt;br /&gt;
  $ flatpak run com.valvesoftware.Steam&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== My controllers aren&#039;t detected ===&lt;br /&gt;
&lt;br /&gt;
By default Steam doesn&#039;t have permission to read your controllers.&lt;br /&gt;
This can be fixed by installing an udev rule from the official Steam package.&lt;br /&gt;
&lt;br /&gt;
  $ curl -O https://repo.steampowered.com/steam/pool/steam/s/steam/steam_1.0.0.68.tar.gz&lt;br /&gt;
  $ tar xzf steam_1.0.0.68.tar.gz&lt;br /&gt;
  # install -Dm644 steam-launcher/subprojects/steam-devices/60-steam-input.rules -t /etc/udev/rules.d&lt;br /&gt;
  # install -Dm644 steam-launcher/subprojects/steam-devices/60-steam-vr.rules -t /etc/udev/rules.d&lt;br /&gt;
&lt;br /&gt;
Make sure to replace &amp;quot;1.0.0.68&amp;quot; with the latest version of the Steam package.&lt;br /&gt;
The versions available are listed at https://repo.steampowered.com/steam/pool/steam/s/steam&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Steam&amp;diff=18646</id>
		<title>Steam</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Steam&amp;diff=18646"/>
		<updated>2021-02-11T10:43:23Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: Created page with &amp;quot;[http://store.steampowered.com/about/ Steam] is a popular game distribution platform by Valve.  {{Note|Steam for Linux only supports Ubuntu LTS. Thus, do not turn to Valve for...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://store.steampowered.com/about/ Steam] is a popular game distribution platform by Valve.&lt;br /&gt;
&lt;br /&gt;
{{Note|Steam for Linux only supports Ubuntu LTS. Thus, do not turn to Valve for support for issues with Steam on Alpine Linux.}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Steam requires glibc to run, and thus doesn&#039;t straight up run on Alpine Linux.&lt;br /&gt;
To work around this problem, we&#039;ll use [https://wiki.alpinelinux.org/wiki/Flatpak Flatpak].&lt;br /&gt;
Make sure you have the Flathub repository installed.&lt;br /&gt;
&lt;br /&gt;
  # apk add flatpak&lt;br /&gt;
  $ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo&lt;br /&gt;
  $ flatpak install com.valvesoftware.Steam&lt;br /&gt;
&lt;br /&gt;
After installation Steam can be started using it&#039;s .desktop file or on the command line:&lt;br /&gt;
&lt;br /&gt;
  $ flatpak run com.valvesoftware.Steam&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== My controllers aren&#039;t detected ===&lt;br /&gt;
&lt;br /&gt;
By default Steam doesn&#039;t have permission to read your controllers.&lt;br /&gt;
This can be fixed by installing an udev rule.&lt;br /&gt;
The one from [https://raw.githubusercontent.com/rpmfusion/steam/master/60-steam-input.rules rpmfusion&#039;s Steam package] seems to work well.&lt;br /&gt;
&lt;br /&gt;
  $ curl -O https://raw.githubusercontent.com/rpmfusion/steam/master/60-steam-input.rules&lt;br /&gt;
  # install -Dm644 60-steam-input.rules -t /etc/udev/rules.d&lt;br /&gt;
  # udevadm control --reload-rules &amp;amp;&amp;amp; udevadm trigger # or reboot&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=PipeWire&amp;diff=18625</id>
		<title>PipeWire</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=PipeWire&amp;diff=18625"/>
		<updated>2021-02-03T16:13:05Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: /* Screen sharing on Wayland */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft|The instructions below have not been thoroughly tested and may break things.}}&lt;br /&gt;
&lt;br /&gt;
[https://pipewire.org/ PipeWire] is a multimedia processing engine that aims to improve audio and video handling on Linux.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
=== Audio Group ===&lt;br /&gt;
&lt;br /&gt;
Add your normal user to the &amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt; group. The user must log in for this to take effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# addgroup audio &amp;lt;user&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== D-Bus ===&lt;br /&gt;
&lt;br /&gt;
PipeWire requires a running [https://www.freedesktop.org/wiki/Software/dbus/ D-Bus] session. If you use a full desktop environment this will probably be started automatically, but with minimal window managers it must be done manually.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add dbus dbus-openrc dbus-x11&lt;br /&gt;
# rc-service dbus start&lt;br /&gt;
# rc-update add dbus default&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then use &amp;lt;code&amp;gt;dbus-launch&amp;lt;/code&amp;gt; whenever you start an X or Wayland session. For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dbus-launch --exit-with-session sway&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation and configuration ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add pipewire&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enable the &amp;lt;code&amp;gt;snd_seq&amp;lt;/code&amp;gt; kernel module for ALSA support.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# modprobe snd_seq&lt;br /&gt;
# echo snd_seq &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pulseaudio ===&lt;br /&gt;
&lt;br /&gt;
PipeWire can run a [https://www.freedesktop.org/wiki/Software/PulseAudio/ Pulseaudio] daemon which should allow all existing Pulseaudio applications to be used with the PipeWire backend.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add pipewire-pulse&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enable the Pulseaudio daemon edit &amp;lt;code&amp;gt;/etc/pipewire/pipewire.conf&amp;lt;/code&amp;gt; and uncomment the following line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;/usr/bin/pipewire-pulse&amp;quot; = { &amp;quot;#args&amp;quot; = &amp;quot;-a tcp:4713&amp;quot; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your PipeWire version is less than or equal to 0.3.18 you instead need to uncomment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exec /usr/bin/pipewire-pulse&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Jack ===&lt;br /&gt;
&lt;br /&gt;
If you will be using PipeWire for [https://jackaudio.org/ Jack] applications install the required package and make system wide links to the PipeWire replacement Jack libraries (I have not had success using &amp;lt;code&amp;gt;pw-jack&amp;lt;/code&amp;gt;). You will not need to start a Jack server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add pipewire-jack&lt;br /&gt;
# ln -sf /usr/lib/pipewire-0.3/jack/libjackserver.so.0 /usr/lib/libjackserver.so.0&lt;br /&gt;
# ln -sf /usr/lib/pipewire-0.3/jack/libjacknet.so.0 /usr/lib/libjacknet.so.0&lt;br /&gt;
# ln -sf /usr/lib/pipewire-0.3/jack/libjack.so.0 /usr/lib/libjack.so.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|These symlinks might be overwritten during updates.}}&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
Video should work out-of-the-box with v4l2 devices (e.g. a lot of webcams) and [https://gstreamer.freedesktop.org/ GStreamer] applications.&lt;br /&gt;
&lt;br /&gt;
=== Screen sharing on Wayland ===&lt;br /&gt;
&lt;br /&gt;
You will need the right [https://github.com/flatpak/xdg-desktop-portal xdg-desktop-portal] backend for your desktop environment. Screen sharing is known to work on GNOME with &amp;lt;code&amp;gt;xdg-desktop-portal-gtk&amp;lt;/code&amp;gt; and on KDE Plasma with &amp;lt;code&amp;gt;xdg-desktop-portal-kde&amp;lt;/code&amp;gt; and Firefox.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Start the PipeWire media server. You&#039;ll probably get quite a few errors but just ignore them for now.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipewire&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a different terminal window check the default output device. I don&#039;t yet know how this default can be changed for all applications, so you&#039;d better hope it&#039;s right!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pw-cat -p --list-targets&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test sound is working using an audio file in a format supported by [http://www.mega-nerd.com/libsndfile/ libsndfile] (e.g. flac, opus, ogg, wav).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pw-cat -p test.flac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have a microphone test recording audio is working.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pw-cat -r --list-targets&lt;br /&gt;
$ pw-cat -r recording.flac&lt;br /&gt;
(Speak for a while then stop it with Ctrl+c)&lt;br /&gt;
$ pw-cat -p recording.flac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test Pulseaudio clients using a media player (most use Pulseaudio) and if you use Jack test that too:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add jack-example-clients&lt;br /&gt;
$ jack_simple_client&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should hear a sustained beep.&lt;br /&gt;
&lt;br /&gt;
If you are happy everything is working, make pipewire start automatically when your X or Wayland session starts. For example, you could add the &amp;lt;code&amp;gt;pipewire&amp;lt;/code&amp;gt; command to &amp;lt;code&amp;gt;~/.xinitrc&amp;lt;/code&amp;gt; or your window manager&#039;s config file.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://gitlab.freedesktop.org/pipewire/pipewire PipeWire source repository]&lt;br /&gt;
* [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home PipeWire Wiki]&lt;br /&gt;
* [https://wiki.archlinux.org/index.php/PipeWire PipeWire on the ArchWiki]&lt;br /&gt;
* [https://wiki.gentoo.org/wiki/Pipewire PipeWire on the Gentoo Wiki]&lt;br /&gt;
&lt;br /&gt;
[[Category:Multimedia]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=18203</id>
		<title>Upgrading Qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=18203"/>
		<updated>2020-11-24T19:21:01Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When Qt gets upgraded between major versions, we have to rebuild some packages due to ABI changes and private API usages. The following is a list of packages to bump on every major (e.g. 5.12.x to 5.14.x) upgrade:&lt;br /&gt;
&lt;br /&gt;
* py3-qt5&lt;br /&gt;
* qt5-qtwebkit # is not part of the regular Qt releases&lt;br /&gt;
* kio-extras&lt;br /&gt;
* kdeclarative&lt;br /&gt;
* kwayland&lt;br /&gt;
* kwayland-integration&lt;br /&gt;
* kwayland-server&lt;br /&gt;
* plasma-framework&lt;br /&gt;
* breeze&lt;br /&gt;
* plasma-integration&lt;br /&gt;
* qqc2-desktop-style&lt;br /&gt;
* kwin&lt;br /&gt;
* kaidan # compiles it&#039;s QML files&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Virtual_Reality&amp;diff=18113</id>
		<title>Virtual Reality</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Virtual_Reality&amp;diff=18113"/>
		<updated>2020-10-19T10:19:53Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;testing&amp;lt;/code&amp;gt; branch contains packages to make use of Virtual Reality on Alpine Linux so make sure that is enabled.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.alpinelinux.org/wiki/Enable_Community_Repository#Using_testing_repositories_of_my_release_version How to Enable the Testing Repository]&lt;br /&gt;
&lt;br /&gt;
= Initial setup =&lt;br /&gt;
&lt;br /&gt;
You will need an [https://en.wikipedia.org/wiki/OpenXR OpenXR] runtime to run any applications on VR.&lt;br /&gt;
{{Cmd|# apk add monado}}&lt;br /&gt;
&lt;br /&gt;
Monado itself includes some required drivers, and it&#039;ll also pull in OpenHMD and libsurvive which provide drivers for the HMD and positional tracking respectively.&lt;br /&gt;
&lt;br /&gt;
= Running =&lt;br /&gt;
&lt;br /&gt;
{{Cmd| $ monado-service}}&lt;br /&gt;
&lt;br /&gt;
Any application that requires VR should automatically pick up your HMD.&lt;br /&gt;
&lt;br /&gt;
You can use [https://gitlab.freedesktop.org/xrdesktop/xrdesktop xrdesktop] to interact with your desktop windows in VR if you&#039;re running KDE Plasma. Support for GNOME is in the works but as of now requires patches on top of GNOME which aren&#039;t packaged on Alpine.&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add kwin-effect-xrdesktop}}&lt;br /&gt;
&lt;br /&gt;
Make sure to enable &amp;lt;code&amp;gt;xrdesktop&amp;lt;/code&amp;gt; in the settings, &amp;lt;code&amp;gt;Workspace -&amp;gt; Workspace Behaviour -&amp;gt; Desktop Effects -&amp;gt; xrdesktop&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Optionally you can install a Plasma applet to easily toggle VR mode.&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add kdeplasma-applets-xrdesktop}}&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=VR&amp;diff=18074</id>
		<title>VR</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=VR&amp;diff=18074"/>
		<updated>2020-09-16T10:29:27Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: Redirected page to Virtual Reality&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Virtual Reality]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Virtual_Reality&amp;diff=18073</id>
		<title>Virtual Reality</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Virtual_Reality&amp;diff=18073"/>
		<updated>2020-09-16T10:28:10Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: Add a new Virtual Reality page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;lt;code&amp;gt;testing&amp;lt;/code&amp;gt; branch contains packages to make use of Virtual Reality on Alpine Linux so make sure that is enabled.&lt;br /&gt;
&lt;br /&gt;
[https://wiki.alpinelinux.org/wiki/Enable_Community_Repository#Using_testing_repositories_of_my_release_version How to Enable the Testing Repository]&lt;br /&gt;
&lt;br /&gt;
= Initial setup =&lt;br /&gt;
Make sure you install a driver relevant for your tracking system and HMD.&lt;br /&gt;
&lt;br /&gt;
== OpenHMD ==&lt;br /&gt;
A Free and Open Source API and drivers for immersive technology, such as head mounted displays with built in head tracking. [https://github.com/OpenHMD/OpenHMD/wiki/Support-List A list of supported hardware by OpenHMD].&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add openhmd}}&lt;br /&gt;
&lt;br /&gt;
== OpenXR runtime ==&lt;br /&gt;
You will need an [https://en.wikipedia.org/wiki/OpenXR OpenXR] runtime to run any applications on VR.&lt;br /&gt;
{{Cmd|# apk add monado}}&lt;br /&gt;
&lt;br /&gt;
= Running =&lt;br /&gt;
Any application that requires VR should automatically pick up your HMD.&lt;br /&gt;
&lt;br /&gt;
You can use [https://gitlab.freedesktop.org/xrdesktop/xrdesktop xrdesktop] to interact with your desktop windows in VR if you&#039;re running KDE Plasma. Support for GNOME is in the works but as of now requires patches on top of GNOME which aren&#039;t packaged on Alpine.&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add kwin-effect-xrdesktop}}&lt;br /&gt;
&lt;br /&gt;
Make sure to enable &amp;lt;code&amp;gt;xrdesktop&amp;lt;/code&amp;gt; in the settings, &amp;lt;code&amp;gt;Workspace -&amp;gt; Workspace Behaviour -&amp;gt; Desktop Effects -&amp;gt; xrdesktop&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Optionally you can install a Plasma applet to easily toggle VR mode.&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add kdeplasma-applets-xrdesktop}}&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Comparison_with_other_distros&amp;diff=18017</id>
		<title>Comparison with other distros</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Comparison_with_other_distros&amp;diff=18017"/>
		<updated>2020-08-20T11:55:21Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: /* Reinstalling a particular package */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Even if Alpine is designed to run from RAM, it has some similarities in package management with both Gentoo and Debian. This page outlines those similarities and differences, to help Debian and Gentoo users to use Alpine.&lt;br /&gt;
&lt;br /&gt;
The page was originally copied from: http://gentoo-wiki.com/TIP_Converting_from_or_to_Debian&lt;br /&gt;
&lt;br /&gt;
= Package management =&lt;br /&gt;
Where Gentoo has portage and emerge; Debian has, among others, apt; Alpine uses apk-tools. This section compares how apk-tools is used, in comparison to apt-get/aptitude and emerge.&lt;br /&gt;
&lt;br /&gt;
Note that Gentoo is source-based, just like ports in FreeBSD are, while Debian uses pre-compiled binaries. Alpine is compiled using Gentoo&#039;s portage, but Alpine itself uses its own apk-tools binary package which is more similar to FreeBSD&#039;s binary packages.&lt;br /&gt;
&lt;br /&gt;
== Updating package database ==&lt;br /&gt;
Gentoo will update the build-from-source scripts and are the updating of the database is takes much more time that updating the database for Debian or Alpine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alpine&#039;&#039;&#039;&lt;br /&gt;
 apk update&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gentoo&#039;&#039;&#039;&lt;br /&gt;
 emerge --sync&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debian&#039;&#039;&#039;&lt;br /&gt;
 aptitude update&lt;br /&gt;
&lt;br /&gt;
== Showing available updates ==&lt;br /&gt;
Show which packages have an update available:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alpine&#039;&#039;&#039;&lt;br /&gt;
 apk version -v&lt;br /&gt;
or:&lt;br /&gt;
 apk version -v -l &#039;&amp;lt;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gentoo&#039;&#039;&#039;&lt;br /&gt;
 emerge --deep --update --pretend world&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debian&#039;&#039;&#039;&lt;br /&gt;
 aptitude upgrade --simulate&lt;br /&gt;
&lt;br /&gt;
== Updating a particular package ==&lt;br /&gt;
&#039;&#039;&#039;Alpine&#039;&#039;&#039;&lt;br /&gt;
 apk add -u package1 package2&lt;br /&gt;
&#039;&#039;&#039;Debian&#039;&#039;&#039;&lt;br /&gt;
 aptitude install package1 package2&lt;br /&gt;
&#039;&#039;&#039;Gentoo&#039;&#039;&#039;&lt;br /&gt;
 emerge --update package1 package2&lt;br /&gt;
&lt;br /&gt;
== Installing packages ==&lt;br /&gt;
&#039;&#039;&#039;Alpine&#039;&#039;&#039;&lt;br /&gt;
 apk add package1 package2&lt;br /&gt;
&lt;br /&gt;
For source compile, see the [[Aports tree]] and the [[abuild]] tool.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gentoo&#039;&#039;&#039;&lt;br /&gt;
 emerge package1 package2&lt;br /&gt;
&#039;&#039;&#039;Debian&#039;&#039;&#039;&lt;br /&gt;
 apt-get install package1 package2&lt;br /&gt;
Debian source compile:&lt;br /&gt;
 apt-get build-dep package1&lt;br /&gt;
 apt-get source package1&lt;br /&gt;
(optional: customize the build by modifying the debian/rules makefile)&lt;br /&gt;
(or set environmental variables like DEB_BUILD_OPTIONS)&lt;br /&gt;
(note that this will make your bug reports invalid to the maintainer)&lt;br /&gt;
 dpkg-buildpackage -rfakeroot -uc -b&lt;br /&gt;
 dpkg -i generatedpackagename&lt;br /&gt;
Simplified source compile:&lt;br /&gt;
 apt-get build-dep package1&lt;br /&gt;
 apt-get -b source package1&lt;br /&gt;
(the packages are automatically generated using the -b switch above)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This process can be used to backport packages from testing and unstable by simply adding their respective source repositories to sources.list, which is similar to adding ~x86 to package.keywords in Gentoo. This is explored further in the &amp;quot;Architectures and repositories&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
== Reinstalling a particular package ==&lt;br /&gt;
&#039;&#039;&#039;Alpine&#039;&#039;&#039;&lt;br /&gt;
 apk del package1 &amp;amp;&amp;amp; apk add package1&lt;br /&gt;
or:&lt;br /&gt;
 apk fix package1 package1&lt;br /&gt;
&#039;&#039;&#039;Gentoo&#039;&#039;&#039;&lt;br /&gt;
 emerge --oneshot package1&lt;br /&gt;
&#039;&#039;&#039;Debian&#039;&#039;&#039;&lt;br /&gt;
 apt-get install --reinstall package1 package1&lt;br /&gt;
&lt;br /&gt;
Note: You &#039;&#039;rarely&#039;&#039; need to reinstall a package on Debian&lt;br /&gt;
&lt;br /&gt;
== Searching the package database ==&lt;br /&gt;
&#039;&#039;&#039;Alpine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Alpine will only search package names.&lt;br /&gt;
 apk search searchword&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gentoo&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To search the package names and descriptions:&lt;br /&gt;
 emerge --searchdesc searchword&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; On Gentoo, it&#039;s actually much better to install and use either the esearch package or the eix package to do a search. You use them like this:&lt;br /&gt;
 eix searchword&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 esearch searchword&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 apt-cache search searchword&lt;br /&gt;
Both emerge and apt-cache search support regular expressions.&lt;br /&gt;
&lt;br /&gt;
To get the long package information on Debian (searching only in package names):&lt;br /&gt;
 apt-cache search --full --names-only searchword&lt;br /&gt;
&lt;br /&gt;
== Removing packages ==&lt;br /&gt;
&#039;&#039;&#039;Alpine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 apk del package1 package2&lt;br /&gt;
apk del will remove configuration files when the --purge flag is used. Make sure you have backups of your configuration files. (Using rcs might be an idea)&lt;br /&gt;
&lt;br /&gt;
You will mostly like to take a quick look at the dependencies before you remove packages recursively.&lt;br /&gt;
&lt;br /&gt;
To see dependencies for a package, use:&lt;br /&gt;
 apk info -R package1 package2&lt;br /&gt;
&lt;br /&gt;
To see if package is required by other packages (is a dependency for another packages), use:&lt;br /&gt;
 apk info -r package1 package2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gentoo&#039;&#039;&#039;&lt;br /&gt;
 emerge --unmerge package1 package2 (Note: this is unsafe as it does not check dependencies)&lt;br /&gt;
 emerge --depclean package1 package2 (This will check dependencies)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debian&#039;&#039;&#039;&lt;br /&gt;
 apt-get remove package1 package2&lt;br /&gt;
or to remove along with all configuration files&lt;br /&gt;
 apt-get remove --purge package1 package2&lt;br /&gt;
&lt;br /&gt;
== Only downloading packages ==&lt;br /&gt;
This can be useful e.g. if you&#039;re on a dial-up connection and want to download everything first and install later.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alpine&#039;&#039;&#039;&lt;br /&gt;
 apk fetch package1 package2&lt;br /&gt;
&#039;&#039;&#039;Gentoo&#039;&#039;&#039;&lt;br /&gt;
 emerge --fetchonly package1 package2&lt;br /&gt;
&#039;&#039;&#039;Debian&#039;&#039;&#039;&lt;br /&gt;
 apt-get install --download-only package1 package2&lt;br /&gt;
&lt;br /&gt;
== Cleaning up downloaded packages ==&lt;br /&gt;
Compressed packages that were downloaded for installation can easily consume gigabytes of storage space.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alpine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Alpine will clean up packages automatically.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gentoo&#039;&#039;&#039;&lt;br /&gt;
 rm -rf /usr/portage/distfiles/*&lt;br /&gt;
To only remove outdated packages you will need to install the gentoolkit package and use eclean:&lt;br /&gt;
 eclean distfiles&lt;br /&gt;
Cleaning temporary files from emerging packages:&lt;br /&gt;
 rm -rf /var/tmp/portage/*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debian&#039;&#039;&#039;&lt;br /&gt;
 apt-get clean&lt;br /&gt;
Only remove outdated packages:&lt;br /&gt;
 apt-get autoclean&lt;br /&gt;
&lt;br /&gt;
==Reverse dependencies==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alpine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
apk-tools will take care of reverse dependencies.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gentoo&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Reverse dependencies are a major drawback of Gentoo&#039;s current portage implementation: It does not take care of them at all at the moment.&lt;br /&gt;
If you use the unsafe --unmerge argument, this means that you can uninstall packages needed by others without being warned about it. E.g. you can remove the X server package without portage warning you that KDE (which you have installed as well) depends on it. This way you can actually break your entire system (e.g. by removing glibc).&lt;br /&gt;
&lt;br /&gt;
 revdep-rebuild&lt;br /&gt;
can fix broken dependencies broken by&lt;br /&gt;
emerge --depclean&lt;br /&gt;
&lt;br /&gt;
Recent versions of portage include library tracking and preservation with the preserved-libs feature.  Portage will notify you to run {{Cmd| emerge @preserved-rebuild}} to help rebuild binaries that might otherwise become broken.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Reverse dependencies are taken care of by dpkg.&lt;br /&gt;
&lt;br /&gt;
= Runlevel &amp;amp; Initscripts =&lt;br /&gt;
Runlevels work pretty conventionally on Debian (see details: [http://archive.fo/ZdZIz systemd]). On Alpine and Gentoo, they are a bit different.&lt;br /&gt;
&lt;br /&gt;
== Directories and files ==&lt;br /&gt;
In &#039;&#039;&#039;Debian&#039;&#039;&#039;, runlevels are named conventionally (0-6 and S). They are represented by directories in /etc/ called rc*.d (when the default sysv-rc boot loader package is installed; file-rc can be installed instead, and then the relevant file is runlevel.conf).&lt;br /&gt;
&lt;br /&gt;
* /etc/rc0.d&lt;br /&gt;
* /etc/rc1.d&lt;br /&gt;
* /etc/rcS.d&lt;br /&gt;
* /etc/rc2.d&lt;br /&gt;
* /etc/rc3.d&lt;br /&gt;
* /etc/rc4.d&lt;br /&gt;
* /etc/rc5.d&lt;br /&gt;
* /etc/rc6.d&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;Gentoo&#039;&#039;&#039;, runlevels have the same names, but these are mapped to more self explanatory ones (in /etc/inittab): &amp;quot;boot&amp;quot;, &amp;quot;default&amp;quot;, &amp;quot;nonetwork&amp;quot;, with the option to add more. The directories that represent them are in &lt;br /&gt;
/etc/runlevels/:&lt;br /&gt;
* /etc/runlevels/boot&lt;br /&gt;
* /etc/runlevels/default&lt;br /&gt;
* /etc/runlevels/nonetwork&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;Gentoo&#039;&#039;&#039;, if a service is not explicitly started in a runlevel, it is stopped when switching to that runlevel! There is no explicit stopping of runlevels as in Debian (/etc/rc?.d/K??service).&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;both Debian and Gentoo&#039;&#039;&#039;, which things are started (and stopped) in which runlevels is controlled by links in the runlevel directories to scripts in /etc/init.d/, e.g.:&lt;br /&gt;
&#039;&#039;&#039;Gentoo&#039;&#039;&#039;&lt;br /&gt;
 $ ls -l /etc/runlevels/boot/hostname&lt;br /&gt;
 lrwxrwxrwx  1 root root 20 Mar 25  2004 /etc/runlevels/boot/hostname -&amp;gt; /etc/init.d/hostname&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debian&#039;&#039;&#039;&lt;br /&gt;
 $ ls -l rcS.d/S40hostname.sh&lt;br /&gt;
 lrwxrwxrwx  1 root root 21 2004-11-07 00:19 rcS.d/S40hostname.sh -&amp;gt; ../init.d/hostname.sh&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alpine&#039;&#039;&#039;&lt;br /&gt;
In Alpine, runlevels work like they do in Gentoo:&lt;br /&gt;
&lt;br /&gt;
* /etc/runlevels/boot&lt;br /&gt;
* /etc/runlevels/default&lt;br /&gt;
* /etc/runlevels/sysinit&lt;br /&gt;
* /etc/runlevels/nonetwork&lt;br /&gt;
* /etc/runlevels/shutdown&lt;br /&gt;
&lt;br /&gt;
== Runlevel management ==&lt;br /&gt;
To manage which things to start in which runlevels, use the following commands:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alpine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To see current status of services in runlevels, do:&lt;br /&gt;
 rc-status&lt;br /&gt;
To add sshd to default runlevel, do:&lt;br /&gt;
 rc-update add -k sshd default&lt;br /&gt;
The -k option will make sure sshd is stopped when shutting down or reboot.&lt;br /&gt;
To remove sshd from all runlevels do:&lt;br /&gt;
 rc-update del sshd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gentoo&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 rc-update&lt;br /&gt;
To add the cupsd to the default runlevel, do:&lt;br /&gt;
 rc-update add cupsd default&lt;br /&gt;
To remove alsasound from the boot runlevel, do:&lt;br /&gt;
 rc-update del alsasound boot&lt;br /&gt;
Also see this wiki page about [http://gentoo-wiki.com/Rc-update gentoo runlevel management with rc-update]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 update-rc.d&lt;br /&gt;
Configure cupsd to be started in runlevels 2, 3, 4, 5, and stopped in 0, 1, 6, with sequence code 20:&lt;br /&gt;
 update-rc.d cupsd start 20 2 3 4 5 . stop 20 0 1 6 . &lt;br /&gt;
or simply:&lt;br /&gt;
 update-rc.d cupsd defaults &lt;br /&gt;
Remove cupsd from all runlevels:&lt;br /&gt;
 update-rc.d -f cupsd remove&lt;br /&gt;
&lt;br /&gt;
= Config Files =&lt;br /&gt;
&lt;br /&gt;
== /etc/portage/make.conf and use flags ==&lt;br /&gt;
While in Gentoo there&#039;s a large number of configuration files which control the behaviour of the package management system, there are comparatively fewer in Debian, as there is no need to dictate how to compile software which is downloaded and tweak/alter it. In Gentoo, the file /etc/portage/make.conf is used for much configuration; this includes &#039;&#039;USE&#039;&#039; flags, which influence which elements of packages are compiled, and which libraries to build support for - common USE flags (USE or -USE to specifically negate support) include &#039;gtk gnome&#039; for Gnome users (and a corresponding -qt -kde -arts) and &#039;qt kde arts&#039; for KDE users. A Gentoo user&#039;s complete set of use flags may look something like this:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;USE=&amp;quot;-kde -arts -qt xv truetype bluetooth crypt slang readline gpm berkdb mmx gdbm tcpd pam libwww ssl nls ethereal perl python esd gif imlib sdl oggvorbis mpeg gnome gtk X motif opengl avi png tiff nptl pcmcia nptl ldap eds&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Architectures and repositories ==&lt;br /&gt;
&#039;&#039;&#039;Gentoo&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Also in /etc/portage/make.conf is the &#039;&#039;&#039;ACCEPT_KEYWORDS&#039;&#039;&#039; setting, with (for an X86-based processor) two settings, &#039;&#039;&#039;x86&#039;&#039;&#039; for stabler packages, and &#039;&#039;&#039;~x86&#039;&#039;&#039; for bleeding edge packages. It is however not recommended to make this change in /etc/portage/make.conf. Rather configure this per-package in /etc/portage/package.accept_keywords. It&#039;s enough to put a line into that file naming the package (for example &#039;app-foo/bar&#039;). That file might look like this:&lt;br /&gt;
&lt;br /&gt;
 app-crypt/gpg-agent&lt;br /&gt;
 app-text/docbook-xsl-stylesheets&lt;br /&gt;
 =app-text/docbook-xml-dtd-4.3-r1&lt;br /&gt;
&lt;br /&gt;
The last line says, that &#039;&#039;only&#039;&#039; version 4.3-r1 should be unmasked. Older and newer versions will still be ignored.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note for non-x86 users:&#039;&#039;&#039;&lt;br /&gt;
The keywords &#039;&#039;&#039;x86&#039;&#039;&#039; and &#039;&#039;&#039;~x86&#039;&#039;&#039; can of course be replaced by &#039;&#039;&#039;sparc&#039;&#039;&#039; and &#039;&#039;&#039;~sparc&#039;&#039;&#039; for example.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setting this in Debian is slightly more complicated, and is accomplished by setting different &#039;repositories&#039; in &#039;&#039;/etc/apt/sources.list&#039;&#039; - along with which &#039;tree&#039; to use for packages; in Debian, these are &#039;&#039;&#039;stable&#039;&#039;&#039;, &#039;&#039;&#039;testing&#039;&#039;&#039;, and &#039;&#039;&#039;unstable&#039;&#039;&#039;. An &#039;&#039;/etc/apt/sources.list&#039;&#039; file for a debian testing user may look something like this:&lt;br /&gt;
&lt;br /&gt;
 deb http://mirrors.kernel.org/debian testing main non-free contrib&lt;br /&gt;
 deb ftp://ftp.nerim.net/debian-marillat testing main&lt;br /&gt;
 deb http://security.debian.org testing/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
Alternatively, &#039;&#039;/etc/apt/sources.list&#039;&#039; can contain any number of repositories for any trees, and a default tree (this can be overridden using the -t switch on the command line) in &#039;&#039;/etc/apt/apt.conf&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
   APT::Default-Release &amp;quot;testing&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Per-package settings go in &#039;&#039;/etc/apt/preferences&#039;&#039;, somewhat like Gentoo&#039;s &#039;&#039;/etc/portage/package.keywords&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alpine&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Alpine uses /etc/network/interfaces, just like Debian. The main reason is because this is the way busybox does it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/network/interfaces&#039;&#039;:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 192.168.0.1&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  broadcast 192.168.0.255&lt;br /&gt;
  &lt;br /&gt;
 auto eth0:0&lt;br /&gt;
 iface eth0:0 inet static&lt;br /&gt;
  address 192.168.1.1&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  broadcast 192.168.1.255&lt;br /&gt;
 # etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gentoo&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/conf.d/net&#039;&#039;:&lt;br /&gt;
 config_eth0=&amp;quot;192.168.1.100 netmask 255.255.255.0&lt;br /&gt;
              192.168.2.100 netmask 255.255.255.0&amp;quot;&lt;br /&gt;
 routes_eth0=&amp;quot;default via 192.168.1.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Note that this has changed recently. For more information please refer to http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Debian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/network/interfaces&#039;&#039;:&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
  address 192.168.0.1&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  broadcast 192.168.0.255&lt;br /&gt;
  &lt;br /&gt;
 auto eth0:0&lt;br /&gt;
 iface eth0:0 inet static&lt;br /&gt;
  address 192.168.1.1&lt;br /&gt;
  netmask 255.255.255.0&lt;br /&gt;
  broadcast 192.168.1.255&lt;br /&gt;
 # etc.&lt;br /&gt;
&lt;br /&gt;
= Comparison chart/Rosetta Stone =&lt;br /&gt;
&lt;br /&gt;
This chart shows how some standard things are done in Alpine compared to other distributions.&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Action &lt;br /&gt;
! Alpine ([http://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management apk])&lt;br /&gt;
! Arch Linux ([https://wiki.archlinux.org/index.php/Pacman pacman])&lt;br /&gt;
! Gentoo ([http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&amp;amp;chap=1 emerge])&lt;br /&gt;
! Debian/Ubuntu ([http://wiki.debian.org/Aptitude aptitute])&lt;br /&gt;
! Fedora/RHEL/SL/Centos ([http://yum.baseurl.org/wiki/YumCommands yum])&lt;br /&gt;
|-&lt;br /&gt;
| Update package database&lt;br /&gt;
| {{Cmd| apk update}}&lt;br /&gt;
| {{Cmd| pacman -Sy}}&lt;br /&gt;
| {{Cmd| emerge --sync}}&lt;br /&gt;
| {{Cmd| aptitude update}}&lt;br /&gt;
| {{Cmd| yum update}}&lt;br /&gt;
|-&lt;br /&gt;
| Showing available updates&lt;br /&gt;
| {{Cmd| apk version -l &#039;&amp;lt;&#039;}}&lt;br /&gt;
| {{Cmd| pacman -Qu}}&lt;br /&gt;
| {{Cmd| emerge --deep --update --pretend @world}}&lt;br /&gt;
| {{Cmd| aptitude upgrade --simulate}}&lt;br /&gt;
| {{Cmd| yum list updates}}&lt;br /&gt;
|-&lt;br /&gt;
| Installing packages&lt;br /&gt;
| {{Cmd| apk add [package name]}}&lt;br /&gt;
| {{Cmd| pacman -S [package name]}}&lt;br /&gt;
| {{Cmd| emerge [package name]}}&lt;br /&gt;
| {{Cmd| aptitude install [package name]}}&lt;br /&gt;
| {{Cmd| yum install [package name]}}&lt;br /&gt;
|-&lt;br /&gt;
| Update all installed packages&lt;br /&gt;
| {{Cmd| apk upgrade -U -a}}&lt;br /&gt;
| {{Cmd| pacman -Su}}&lt;br /&gt;
| {{Cmd| emerge --update --deep @world}}&lt;br /&gt;
| {{Cmd| aptitude upgrade}}&lt;br /&gt;
| {{Cmd| yum update}}&lt;br /&gt;
|- &lt;br /&gt;
| Searching package database&lt;br /&gt;
| {{Cmd| apk search -v &#039;[string]*&#039;}}&lt;br /&gt;
| {{Cmd| pacman -Ss [string]}}&lt;br /&gt;
| {{Cmd| emerge --search [string]}}&lt;br /&gt;
| {{Cmd| aptitude search [string]}}&lt;br /&gt;
| {{Cmd| yum search [string]}}&lt;br /&gt;
|-&lt;br /&gt;
| Removing packages&lt;br /&gt;
| {{Cmd| apk del [package name]}}&lt;br /&gt;
| {{Cmd| pacman -R [package name]}}&lt;br /&gt;
| {{Cmd| emerge --depclean [package name]}}&lt;br /&gt;
| {{Cmd| aptitude remove [package name]}}&lt;br /&gt;
| {{Cmd| yum remove [package name]}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Package Manager]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=17851</id>
		<title>Upgrading Qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=17851"/>
		<updated>2020-07-14T20:16:42Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When Qt gets upgraded between major versions, we have to rebuild some packages due to ABI changes and private API usages. The following is a list of packages to bump on every major (e.g. 5.12.x to 5.14.x) upgrade:&lt;br /&gt;
&lt;br /&gt;
* py3-qt5&lt;br /&gt;
* qt5-qtwebkit # is not part of the regular Qt releases&lt;br /&gt;
* kio-extras&lt;br /&gt;
* kdeclarative&lt;br /&gt;
* kwayland&lt;br /&gt;
* kwayland-integration&lt;br /&gt;
* plasma-framework&lt;br /&gt;
* breeze&lt;br /&gt;
* plasma-integration&lt;br /&gt;
* qqc2-desktop-style&lt;br /&gt;
* kwin&lt;br /&gt;
* kaidan # compiles it&#039;s QML files&lt;br /&gt;
* ruqola # compiles it&#039;s QML files&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=KDE&amp;diff=17678</id>
		<title>KDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=KDE&amp;diff=17678"/>
		<updated>2020-05-30T09:18:29Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: /* From the console */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
KDE is a software project comprising a desktop environment known as Plasma, a collection of libraries and frameworks known as KDE Frameworks, and several applications known as KDE Applications. Their [https://userbase.kde.org/Welcome_to_KDE_UserBase UserBase wiki] has detailed information about most KDE Applications.&lt;br /&gt;
&lt;br /&gt;
Note that the {{Pkg|plasma}} package isn&#039;t available for the &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt; architectures due to the {{Pkg|kdeplasma-addons}} dependency not being available there. The rest of Plasma can however be installed separately to get a functional desktop.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
=== Plasma ===&lt;br /&gt;
&lt;br /&gt;
Before installation, make sure your graphical environment is setup. Don&#039;t be fooled by the name of the command, this is also required for Wayland sessions.&lt;br /&gt;
{{Cmd|setup-xorg-base}}&lt;br /&gt;
&lt;br /&gt;
Install the {{Pkg|plasma}} meta-package. This will install the required Plasma packages and {{Pkg|sddm}} and pre-configure it to use the Breeze theme. Alternatively a more minimal installation can be done by installing {{Pkg|plasma-desktop}}.&lt;br /&gt;
&lt;br /&gt;
=== KDE Applications ===&lt;br /&gt;
&lt;br /&gt;
To install the full set of KDE Applications, install {{Pkg|kde-applications}}. You can also choose to install a more limited set of applications by installing any of the subpackages:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|kde-applications-accessibility}}&lt;br /&gt;
* {{Pkg|kde-applications-admin}}&lt;br /&gt;
* {{Pkg|kde-applications-base}}&lt;br /&gt;
* {{Pkg|kde-applications-edu}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-games}}&lt;br /&gt;
* {{Pkg|kde-applications-graphics}}&lt;br /&gt;
* {{Pkg|kde-applications-multimedia}}&lt;br /&gt;
* {{Pkg|kde-applications-network}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-pim}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-sdk}}&lt;br /&gt;
* {{Pkg|kde-applications-utils}}&lt;br /&gt;
* {{Pkg|kde-applications-webdev}}&lt;br /&gt;
&lt;br /&gt;
= Starting Plasma =&lt;br /&gt;
&lt;br /&gt;
Plasma can be started using a display manager or from the console.&lt;br /&gt;
&lt;br /&gt;
=== Using a display manager ===&lt;br /&gt;
&lt;br /&gt;
When Plasma is installed via the {{Pkg|plasma}} meta-package, this has already been setup using {{Pkg|sddm}}.&lt;br /&gt;
&lt;br /&gt;
* Select &#039;&#039;Plasma&#039;&#039; to launch a new session in Xorg&lt;br /&gt;
* Select &#039;&#039;Plasma (Wayland)&#039;&#039; to launch a new session in Wayland&lt;br /&gt;
&lt;br /&gt;
=== From the console ===&lt;br /&gt;
&lt;br /&gt;
The Xorg session can be launched by installing {{Pkg|xinit}} and appending &amp;lt;code&amp;gt;exec startplasma-x11&amp;lt;/code&amp;gt; to your &amp;lt;code&amp;gt;.xinitrc&amp;lt;/code&amp;gt; file. Then just start X.&lt;br /&gt;
{{Cmd|xinit}}&lt;br /&gt;
&lt;br /&gt;
For the Wayland session run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
XDG_SESSION_TYPE=wayland dbus-run-session startplasma-wayland&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
* [[Flatpak]]&lt;br /&gt;
&lt;br /&gt;
[[category:Desktop]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=17197</id>
		<title>Upgrading Qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=17197"/>
		<updated>2020-04-10T23:12:22Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When Qt gets upgraded between major versions, we have to rebuild some packages due to ABI changes and private API usages. The following is a list of packages to bump on every major (e.g. 5.12.x to 5.14.x) upgrade:&lt;br /&gt;
&lt;br /&gt;
* py3-qt5&lt;br /&gt;
* kio-extras&lt;br /&gt;
* kdeclarative&lt;br /&gt;
* kwayland&lt;br /&gt;
* kwayland-integration&lt;br /&gt;
* plasma-framework&lt;br /&gt;
* breeze&lt;br /&gt;
* plasma-integration&lt;br /&gt;
* qqc2-desktop-style&lt;br /&gt;
* kwin&lt;br /&gt;
* kaidan - compiles it&#039;s QML files&lt;br /&gt;
* ruqola - compiles it&#039;s QML files&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Bluetooth_audio&amp;diff=17147</id>
		<title>Bluetooth audio</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Bluetooth_audio&amp;diff=17147"/>
		<updated>2020-03-28T16:41:51Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: Removed obsolete section about editing Bluetooth config&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PulseAudio ==&lt;br /&gt;
&lt;br /&gt;
Before you can connect your device to Bluetooth speakers or headphones, you&#039;ll have to make sure {{Pkg|pulseaudio-bluez}} is installed.&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=17141</id>
		<title>Upgrading Qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=17141"/>
		<updated>2020-03-27T14:04:58Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When Qt gets upgraded between major versions, we have to rebuild some packages due to ABI changes and private API usages. The following is a list of packages to bump on every major (e.g. 5.12.x to 5.14.x) upgrade:&lt;br /&gt;
&lt;br /&gt;
* py3-qt5&lt;br /&gt;
* kio-extras&lt;br /&gt;
* kdeclarative&lt;br /&gt;
* kwayland&lt;br /&gt;
* kwayland-integration&lt;br /&gt;
* plasma-framework&lt;br /&gt;
* breeze&lt;br /&gt;
* plasma-integration&lt;br /&gt;
* qqc2-desktop-style&lt;br /&gt;
* kwin&lt;br /&gt;
* kaidan - compiles it&#039;s QML files&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=16941</id>
		<title>Upgrading Qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Upgrading_Qt&amp;diff=16941"/>
		<updated>2020-02-25T09:08:05Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: Created page with &amp;quot;When Qt gets upgraded between major versions, we have to rebuild some packages due to ABI changes and private API usages. The following is a list of packages to bump on every...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When Qt gets upgraded between major versions, we have to rebuild some packages due to ABI changes and private API usages. The following is a list of packages to bump on every major (e.g. 5.12.x to 5.14.x) upgrade:&lt;br /&gt;
&lt;br /&gt;
* py3-qt5&lt;br /&gt;
* kio-extras&lt;br /&gt;
* kdeclarative&lt;br /&gt;
* kwayland&lt;br /&gt;
* kwayland-integration&lt;br /&gt;
* plasma-framework&lt;br /&gt;
* breeze&lt;br /&gt;
* plasma-integration&lt;br /&gt;
* qqc2-desktop-style&lt;br /&gt;
* kwin&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Setting_up_disks_manually&amp;diff=16868</id>
		<title>Setting up disks manually</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Setting_up_disks_manually&amp;diff=16868"/>
		<updated>2020-02-09T19:30:36Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: /* Custom partitioning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft|Some information on this page may be incomplete or outdate.}}&lt;br /&gt;
&lt;br /&gt;
You may have complex needs that aren&#039;t handled automatically by the [[Alpine Setup Scripts]]. In those cases, you&#039;ll need to prepare your disks manually.&lt;br /&gt;
&lt;br /&gt;
It is possible to have one or more of RAID, encryption, and/or LVM on your {{Path|/}} (root) volume. However, the Alpine init script only knows how to handle them when they&#039;re layered in that order, and your initram and extlinux.conf file in the {{Path|/boot}} partition are configured properly.&lt;br /&gt;
&lt;br /&gt;
Your {{Path|/boot}} cannot reside on an encrypted or LVM volume, at least not with Alpine&#039;s default bootloader (extlinux). (Grub2 can deal with {{Path|/boot}} being on an LVM volume.) The usual practice is to create a small partition for {{Path|/boot}}, and then devote the rest of your disk to a separate partition on which you layer one or more of RAID, encryption, and/or LVM.&lt;br /&gt;
&lt;br /&gt;
Sometimes {{Path|/boot}} is also setup as a mirrored (RAID1) volume, however this is just for post-init access. That way, when you write a new kernel or bootloader config file to {{Path|/boot}}, it gets written to multiple physical partitions. During the pre-init, bootloader phase, only one of those partitions will be read from.&lt;br /&gt;
&lt;br /&gt;
So, typical setups might look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
One-disk system&lt;br /&gt;
---------------&lt;br /&gt;
  +------------------------------------------------+&lt;br /&gt;
  |  small partition (32--100M), holding           |&lt;br /&gt;
  |  only /boot, filesystem needn&#039;t be journaled   |&lt;br /&gt;
  +------------------------------------------------+&lt;br /&gt;
  |  rest of disk in second partition              |&lt;br /&gt;
  |  +------------------------------------------+  |&lt;br /&gt;
  |  | cryptsetup volume                        |  |&lt;br /&gt;
  |  |  +-------------------------------------+ |  |&lt;br /&gt;
  |  |  |  LVM PV, containing single VG,      | |  |&lt;br /&gt;
  |  |  |  containing multiple LVs, holding   | |  |&lt;br /&gt;
  |  |  |  /, /home, swap, etc                | |  |&lt;br /&gt;
  |  |  +-------------------------------------+ |  |&lt;br /&gt;
  |  +------------------------------------------+  |&lt;br /&gt;
  +------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two-disk system&lt;br /&gt;
---------------&lt;br /&gt;
  +------------------------------------------------+  +------------------------------------------------+&lt;br /&gt;
  |  small partition (32--100M), holding           |  |  small partition (32--100M), holding           | These 2 partitions might&lt;br /&gt;
  |  only /boot, filesystem needn&#039;t be journaled   |  |  only /boot, filesystem needn&#039;t be journaled   | form a mirrored (RAID1)&lt;br /&gt;
  +------------------------------------------------+  +------------------------------------------------+ volume&lt;br /&gt;
  |  rest of disk in second partition              |  |  rest of disk in second partition              |&lt;br /&gt;
  | T================================================================================================T | These 2 partitions form&lt;br /&gt;
  | T +--------------------------------------------------------------------------------------------+ T | a second mirrored&lt;br /&gt;
  | T | cryptsetup volume                                                                          | T | (RAID1) volume&lt;br /&gt;
  | T |  +---------------------------------------------------------------------------------------+ | T |&lt;br /&gt;
  | T |  | LVM PV, containing single VG,                                                         | | T |&lt;br /&gt;
  | T |  | containing multiple LVs, holding                                                      | | T |&lt;br /&gt;
  | T |  | /, /home, swap, etc                                                                   | | T |&lt;br /&gt;
  | T |  +---------------------------------------------------------------------------------------+ | T |&lt;br /&gt;
  | T +--------------------------------------------------------------------------------------------+ T |&lt;br /&gt;
  | T================================================================================================T |&lt;br /&gt;
  |                                                |  |                                                |&lt;br /&gt;
  +------------------------------------------------+  +------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a three-disk system, the {{Path|/boot}} would still be RAID1, but the larger partition might in that case be RAID5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RAID ===&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; will automatically build a RAID array if you supply the &#039;&#039;&#039;-r&#039;&#039;&#039; switch, or if you specify more than one device.&lt;br /&gt;
&lt;br /&gt;
If you instead want to build your RAID array manually, see [[Setting up a software RAID array]]. Then you can add additional layers of encryption and/or LVM, or just assemble the RAID array, and supply the {{Path|/dev/md&amp;lt;i&amp;gt;i&amp;lt;/i&amp;gt;}} device directly to [[setup-disk]]. When you&#039;re finished, be sure to disassemble the RAID array before rebooting.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; sees that you&#039;re using RAID---either because you gave it the &amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt; switch, or multiple devices, or a {{Path|/dev/md&amp;lt;i&amp;gt;i&amp;lt;/i&amp;gt;}} device---then it will setup your initramfs and extlinux.conf file properly. However, in other cases, such as when you&#039;re also using encryption, or you invoke &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; with a mounted directory argument, these might not be properly setup for RAID. In that case, you may need to manually edit/rebuild them. The following assumes that &amp;lt;code&amp;gt;$MNT&amp;lt;/code&amp;gt; holds the root directory you&#039;re installing into:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=echo &amp;quot;/sbin/mdadm&amp;quot; &amp;gt; $MNT/etc/mkinitfs/files.d/raid&lt;br /&gt;
echo &amp;quot;/etc/mdadm.conf&amp;quot; &amp;gt;&amp;gt; $MNT/etc/mkinitfs/files.d/raid&lt;br /&gt;
&amp;amp;#35; edit $MNT/etc/mkinitfs/mkinitfs.conf to make sure features=&amp;quot;...&amp;quot;&lt;br /&gt;
&amp;amp;#35; includes raid (this field is space-separated and quoted)&lt;br /&gt;
mkinitfs -c $MNT/etc/mkinitfs/mkinitfs.conf -b $MNT&lt;br /&gt;
&amp;amp;#35; edit $MNT/etc/update-extlinux.conf to make sure modules=... contains&lt;br /&gt;
&amp;amp;#35; raid1 or raid456 (whichever your / is on; this field is comma-separated)&lt;br /&gt;
&amp;amp;#35; also check the root= setting&lt;br /&gt;
extlinux --raid --install $MNT/boot --update&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Todo|Does adding the &amp;lt;code&amp;gt;--update&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;extlinux ...&amp;lt;/code&amp;gt; suffice to make {{Path|/boot/extlinux.conf}} be regenerated? Or do we need to manually tweak that file, or run &amp;lt;code&amp;gt;update-extlinux&amp;lt;/code&amp;gt;, as well?}}&lt;br /&gt;
&lt;br /&gt;
You might also need to manually tweak {{Path|$MNT/etc/fstab}}. And you might need to copy {{Path|/usr/share/syslinux/mbr.bin}} to your disk&#039;s MBR.&lt;br /&gt;
&lt;br /&gt;
=== Encryption ===&lt;br /&gt;
&lt;br /&gt;
See [[Setting up encrypted volumes with LUKS]]. Then you can add an additional layer of LVM, or just unlock the volume you&#039;ve created (using &amp;lt;code&amp;gt;cryptsetup luksOpen ...&amp;lt;/code&amp;gt;), and supply the {{Path|/dev/mapper/&amp;lt;i&amp;gt;something&amp;lt;/i&amp;gt;}} device directly to [[setup-disk]]. When you&#039;re finished, be sure to relock the volume (using &amp;lt;code&amp;gt;cryptsetup luksClose ...&amp;lt;/code&amp;gt;) before rebooting.&lt;br /&gt;
&lt;br /&gt;
If you install your {{Path|/}} (root) on an encrypted volume, you&#039;ll need to manually edit/rebuild your initram and your extlinux.conf file. The following assumes that &amp;lt;code&amp;gt;$MNT&amp;lt;/code&amp;gt; holds the root directory you&#039;re installing into, that you&#039;ve created the cryptvolume on the device {{Path|/dev/md2}}, and that you want to unlock the encrypted volume into a virtual volume named &amp;quot;crypt&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=&amp;amp;#35; edit $MNT/etc/mkinitfs/mkinitfs.conf to make sure features=&amp;quot;...&amp;quot;&lt;br /&gt;
&amp;amp;#35; includes cryptsetup (this field is space-separated and quoted)&lt;br /&gt;
mkinitfs -c $MNT/etc/mkinitfs/mkinitfs.conf -b $MNT&lt;br /&gt;
&amp;amp;#35; edit $MNT/etc/update-extlinux.conf to make sure default_kernel_opts=&amp;quot;...&amp;quot;&lt;br /&gt;
&amp;amp;#35; contains cryptroot=/dev/md1 and cryptdm=crypt (this field is also space-separated and quoted)&lt;br /&gt;
&amp;amp;#35; also check the root= setting&lt;br /&gt;
extlinux --install $MNT/boot --update&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Todo|Does adding the &amp;lt;code&amp;gt;--update&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;extlinux ...&amp;lt;/code&amp;gt; suffice to make {{Path|/boot/extlinux.conf}} be regenerated? Or do we need to manually tweak that file, or run &amp;lt;code&amp;gt;update-extlinux&amp;lt;/code&amp;gt;, as well?}}&lt;br /&gt;
&lt;br /&gt;
You might also need to manually tweak {{Path|$MNT/etc/fstab}}.&lt;br /&gt;
&lt;br /&gt;
=== LVM ===&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; will automatically build and use volumes in a LVM group if you supply the &#039;&#039;&#039;-L&#039;&#039;&#039; switch.&lt;br /&gt;
&lt;br /&gt;
If you instead want to build your LVM system manually, see [[Setting up Logical Volumes with LVM]]. Then &amp;lt;code&amp;gt;vgchange -ay&amp;lt;/code&amp;gt;, format and mount your volumes, and supply the root mountpoint to [[setup-disk]]. When you&#039;re finished, be sure to&lt;br /&gt;
{{Cmd|umount ...&lt;br /&gt;
vgchange -an}}&lt;br /&gt;
before rebooting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; sees that you&#039;re using LVM---perhaps because you gave it the &amp;lt;code&amp;gt;-L&amp;lt;/code&amp;gt; switch---then it will setup your initram and extlinux.conf file properly. However, in other cases, these might not be properly setup. In that case, you may need to manually edit/rebuild them. The following assumes that &amp;lt;code&amp;gt;$MNT&amp;lt;/code&amp;gt; holds the root directory you&#039;re installing into:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=&amp;amp;#35; edit $MNT/etc/mkinitfs/mkinitfs.conf to make sure features=&amp;quot;...&amp;quot;&lt;br /&gt;
&amp;amp;#35; includes lvm (this field is space-separated and quoted)&lt;br /&gt;
mkinitfs -c $MNT/etc/mkinitfs/mkinitfs.conf -b $MNT&lt;br /&gt;
&amp;amp;#35; edit $MNT/etc/update-extlinux.conf to make sure root= is set correctly&lt;br /&gt;
extlinux --install $MNT/boot --update&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Todo|Does adding the &amp;lt;code&amp;gt;--update&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;extlinux ...&amp;lt;/code&amp;gt; suffice to make {{Path|/boot/extlinux.conf}} be regenerated? Or do we need to manually tweak that file, or run &amp;lt;code&amp;gt;update-extlinux&amp;lt;/code&amp;gt;, as well?}}&lt;br /&gt;
&lt;br /&gt;
You might also need to manually tweak {{Path|$MNT/etc/fstab}}.&lt;br /&gt;
&lt;br /&gt;
=== Custom partitioning ===&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; will by default set up a root partition, a separate /boot partition and a swap. If you want a different layout you can manually create the partitions, filesystems and mount them up on {{Path|/mnt}} (or any other mount point) and then run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|setup-disk /mnt}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; will install your running system on the mounted root, detect your file system layout and generate a fstab.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re going for MBR, you are responsible for making the proper partition bootable and make sure the MBR is OK for extlinux. If you&#039;re going for EFI, make sure you set &amp;lt;code&amp;gt;BOOTLOADER=grub&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;USE_EFI=1&amp;lt;/code&amp;gt; and {{Pkg|grub-efi}} and {{Pkg|efibootmgr}} are installed before running &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See also [https://github.com/itoffshore/alpine-linux-scripts setup-partitions]&lt;br /&gt;
&lt;br /&gt;
=== Dual-booting ===&lt;br /&gt;
See [[Installing Alpine on HDD dualbooting|Install to HDD with dual-boot]]&lt;br /&gt;
&lt;br /&gt;
=== Other needs ===&lt;br /&gt;
* [[Installing Alpine Linux in a chroot]]&lt;br /&gt;
* [[Replacing non-Alpine Linux with Alpine remotely]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 Create partition with with type &amp;quot;Linux&amp;quot; (83).&lt;br /&gt;
 apk_add e2fsprogs rsync&lt;br /&gt;
 mkfs.ext3 /dev/hda1&lt;br /&gt;
 mount -t ext3 /dev/hda1 /mnt&lt;br /&gt;
 ROOT=/mnt apk_add uclibc busybox apk-tools alpine-baselayout alpine-conf&lt;br /&gt;
 # Install busybox links&lt;br /&gt;
 mkdir /mnt/proc &amp;amp;&amp;amp; mount --bind /proc /mnt/proc &amp;amp;&amp;amp; chroot /mnt /bin/busybox --install -s &amp;amp;&amp;amp; umount /mnt/proc&lt;br /&gt;
 # Copy the apk repository&lt;br /&gt;
 rsync -ruav /media/cdrom/apks /mnt&lt;br /&gt;
 mkdir /mnt/etc/apk &amp;amp;&amp;amp; echo &amp;quot;APK_PATH=file://apks&amp;quot; &amp;gt; /mnt/etc/apk/apk.conf&lt;br /&gt;
 # Copy the hd/ext3 initramfs image, kernel and kernel modules&lt;br /&gt;
 rsync -ruav /media/cdrom/kernel/generic/hd-ext3.gz /media/cdrom/kernel/generic/bzImage /mnt&lt;br /&gt;
 rsync -ruav /lib/modules/* /mnt/lib/modules/&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Setting up the RAID ==&lt;br /&gt;
Set up a raid array as described [[Setting up a software RAID1 array|here]].&lt;br /&gt;
In this document two raid arrays are configured: md0 for swap (512MB) and md1 for /var. &lt;br /&gt;
&lt;br /&gt;
== Create filesystem ==&lt;br /&gt;
We need to install the software to create the filesystem (&amp;quot;format&amp;quot; the partition).&lt;br /&gt;
 apk_add e2fsprogs&lt;br /&gt;
&lt;br /&gt;
If you use an Alpine release older than 1.3.8 you will need to manually create a link to /etc/mtab.&lt;br /&gt;
 ln -fs /proc/mounts /etc/mtab&lt;br /&gt;
&lt;br /&gt;
Create the filesystem. The -j option makes it ext&#039;&#039;&#039;3&#039;&#039;&#039;. Without the -j option it will become non-journaling ext&#039;&#039;&#039;2&#039;&#039;&#039;. This step might take some time if your partition is big.&lt;br /&gt;
 mke2fs -j /dev/md1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now edit /etc/fstab and add your new partitions. Mine looks like this:&lt;br /&gt;
 none            /proc           proc    defaults 0 0&lt;br /&gt;
 none            /sys            sysfs   defaults 0 0&lt;br /&gt;
 udev            /dev            tmpfs   size=100k 0 0&lt;br /&gt;
 none            /dev/pts        devpts  defaults 0 0&lt;br /&gt;
 tmpfs           /dev/shm        tmpfs   defaults 0 0&lt;br /&gt;
 /dev/cdrom      /media/cdrom    iso9660 ro 0 0&lt;br /&gt;
 /dev/fd0        /media/floppy   vfat    noauto  0 0&lt;br /&gt;
 /dev/usba1      /media/usb      vfat    noauto  0 0&lt;br /&gt;
 none            /proc/bus/usb   usbfs noauto 0 0&lt;br /&gt;
  &lt;br /&gt;
 /dev/md0        swap            swap    defaults 0 0&lt;br /&gt;
 /dev/md1        /var            ext3    defaults 0 0&lt;br /&gt;
&lt;br /&gt;
== Move the data ==&lt;br /&gt;
Now you should stop all services running that put anything in /var (syslog for example). If you have booted on a clean installation and not run setup-alpine, then no services should be running. However, some packages might have created dirs in /var so we need to backup /var mount the new and move all backed up dirs back to the raided /var.&lt;br /&gt;
&lt;br /&gt;
 mv /var /var.tmp&lt;br /&gt;
 mkdir /var&lt;br /&gt;
 mount /var&lt;br /&gt;
 mv /var.tmp/* /var&lt;br /&gt;
 rmdir /var.tmp&lt;br /&gt;
&lt;br /&gt;
Verify that everyting looks ok with the &#039;&#039;df&#039;&#039; utility.&lt;br /&gt;
 ~ $ df&lt;br /&gt;
 Filesystem           1k-blocks      Used Available Use% Mounted on&lt;br /&gt;
 none                    255172     23544    231628   9% /&lt;br /&gt;
 udev                       100         0       100   0% /dev&lt;br /&gt;
 /dev/cdrom              142276    142276         0 100% /media/cdrom&lt;br /&gt;
 /dev/md1              37977060    181056  35866876   1% /var&lt;br /&gt;
&lt;br /&gt;
== Survive reboots ==&lt;br /&gt;
Now we have everything up and running. We need to make sure that everything will be restored during next reboot.&lt;br /&gt;
&lt;br /&gt;
Create an initscript that will mount /var for you during boot. I call it /etc/init.d/mountdisk and it looks like this:&lt;br /&gt;
 #!/sbin/runscript&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
         ebegin &amp;quot;Mounting /var&amp;quot;&lt;br /&gt;
         mount /var&lt;br /&gt;
         eend $?&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
         ebegin &amp;quot;Unmounting /var&amp;quot;&lt;br /&gt;
         umount /var&lt;br /&gt;
         eend $?&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Make it exectutable:&lt;br /&gt;
 chmod +x /etc/init.d/mountdisk&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Since Alpine-1.7.3 there is a &#039;&#039;localmount&#039;&#039; script shipped so you will not need to create your own &#039;&#039;mountdisk&#039;&#039; script.&lt;br /&gt;
&lt;br /&gt;
And that /var is mounted *after* raid is created. The -k option will make alpine to unmount the /Var partition during boot. Also add start of swap too boot&lt;br /&gt;
 rc_add -k -s 06 mountdisk&lt;br /&gt;
 rc_add -k -s 06 swap&lt;br /&gt;
&lt;br /&gt;
The /dev/md* device nodes will not be created automatically so we need to put the on floppy too.&lt;br /&gt;
 lbu include /dev/md*&lt;br /&gt;
&lt;br /&gt;
If you have users on the server and want /home to be permanent, you can create a directory /var/home and create links to /var/home.&lt;br /&gt;
 mkdir /var/home&lt;br /&gt;
 mv /home/* /var/home/&lt;br /&gt;
 ln -s /var/home/* /home/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; You cannot just replace /home with a link that points to /var/home since the base has a /home directory. When the boot tries to copy the config from floppy it will fail because of the already existing /home directory.&lt;br /&gt;
&lt;br /&gt;
Make sure the links are stored to floppy:&lt;br /&gt;
 lbu include /home/*&lt;br /&gt;
&lt;br /&gt;
Also remember to move any newly created users to /var/home and create a link:&lt;br /&gt;
 adduser bob&lt;br /&gt;
 mv /home/bob /var/home/&lt;br /&gt;
 ln -s /var/home/bob /home/bob&lt;br /&gt;
 lbu include /home/bob&lt;br /&gt;
&lt;br /&gt;
Save to floppy:&lt;br /&gt;
 lbu commit floppy&lt;br /&gt;
&lt;br /&gt;
== Test it works ==&lt;br /&gt;
Reboot computer. Now should the raid start and /var should be mounted. Check with df:&lt;br /&gt;
 ~ $ df&lt;br /&gt;
 Filesystem           1k-blocks      Used Available Use% Mounted on&lt;br /&gt;
 none                    255172     23976    231196   9% /&lt;br /&gt;
 mdev                       100         0       100   0% /dev&lt;br /&gt;
 /dev/cdrom              140932    140932         0 100% /media/cdrom&lt;br /&gt;
 /dev/md1              37977060    180984  35866948   1% /var&lt;br /&gt;
&lt;br /&gt;
== Upgrades ==&lt;br /&gt;
Since the package database is placed on disk, you cannot update by simply replacing the CDROM. You will have to either run the upgrade on the new CDROM or run &#039;&#039;apk_add -u ... &amp;amp;&amp;amp; update-conf&#039;&#039; manually.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting up swap ==&lt;br /&gt;
&lt;br /&gt;
# create partition with type &amp;quot;linux swap&amp;quot; (82) (If you&#039;re going to use an LVM logical volume for swap, skip this step and &amp;lt;code&amp;gt;lvcreate&amp;lt;/code&amp;gt; that instead.)&lt;br /&gt;
# &amp;lt;code&amp;gt;mkswap /dev/sda2&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;echo -e &amp;quot;/dev/sda2 none swap sw 0 0&amp;quot; &amp;gt;&amp;gt; /mnt/etc/fstab&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;swapon /dev/sda2&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;rc-service swap start&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Then {{Cmd|free -m}} will show how much swap space is available (in MB).&lt;br /&gt;
&lt;br /&gt;
If you prefer maximum speed, you don&#039;t need configure any raid devices for swap. Just add 2 swap partitions on different disks and linux will stripe them automatically. The downside is that at the moment one disk fails, the system will go down. For better reliability, put swap on RAID1. &lt;br /&gt;
&lt;br /&gt;
{{Todo|Instructions for cryptswap?}}&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
* [https://beta.docs.alpinelinux.org/user-handbook/0.1a/Installing/manual.html#_finalizing beta.docs.alpinelinux.org] &#039;&#039;([http://archive.md/2KQPQ archive])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Storage]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Setting_up_disks_manually&amp;diff=16867</id>
		<title>Setting up disks manually</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Setting_up_disks_manually&amp;diff=16867"/>
		<updated>2020-02-09T19:11:50Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: /* Custom partitioning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft|Some information on this page may be incomplete or outdate.}}&lt;br /&gt;
&lt;br /&gt;
You may have complex needs that aren&#039;t handled automatically by the [[Alpine Setup Scripts]]. In those cases, you&#039;ll need to prepare your disks manually.&lt;br /&gt;
&lt;br /&gt;
It is possible to have one or more of RAID, encryption, and/or LVM on your {{Path|/}} (root) volume. However, the Alpine init script only knows how to handle them when they&#039;re layered in that order, and your initram and extlinux.conf file in the {{Path|/boot}} partition are configured properly.&lt;br /&gt;
&lt;br /&gt;
Your {{Path|/boot}} cannot reside on an encrypted or LVM volume, at least not with Alpine&#039;s default bootloader (extlinux). (Grub2 can deal with {{Path|/boot}} being on an LVM volume.) The usual practice is to create a small partition for {{Path|/boot}}, and then devote the rest of your disk to a separate partition on which you layer one or more of RAID, encryption, and/or LVM.&lt;br /&gt;
&lt;br /&gt;
Sometimes {{Path|/boot}} is also setup as a mirrored (RAID1) volume, however this is just for post-init access. That way, when you write a new kernel or bootloader config file to {{Path|/boot}}, it gets written to multiple physical partitions. During the pre-init, bootloader phase, only one of those partitions will be read from.&lt;br /&gt;
&lt;br /&gt;
So, typical setups might look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
One-disk system&lt;br /&gt;
---------------&lt;br /&gt;
  +------------------------------------------------+&lt;br /&gt;
  |  small partition (32--100M), holding           |&lt;br /&gt;
  |  only /boot, filesystem needn&#039;t be journaled   |&lt;br /&gt;
  +------------------------------------------------+&lt;br /&gt;
  |  rest of disk in second partition              |&lt;br /&gt;
  |  +------------------------------------------+  |&lt;br /&gt;
  |  | cryptsetup volume                        |  |&lt;br /&gt;
  |  |  +-------------------------------------+ |  |&lt;br /&gt;
  |  |  |  LVM PV, containing single VG,      | |  |&lt;br /&gt;
  |  |  |  containing multiple LVs, holding   | |  |&lt;br /&gt;
  |  |  |  /, /home, swap, etc                | |  |&lt;br /&gt;
  |  |  +-------------------------------------+ |  |&lt;br /&gt;
  |  +------------------------------------------+  |&lt;br /&gt;
  +------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Two-disk system&lt;br /&gt;
---------------&lt;br /&gt;
  +------------------------------------------------+  +------------------------------------------------+&lt;br /&gt;
  |  small partition (32--100M), holding           |  |  small partition (32--100M), holding           | These 2 partitions might&lt;br /&gt;
  |  only /boot, filesystem needn&#039;t be journaled   |  |  only /boot, filesystem needn&#039;t be journaled   | form a mirrored (RAID1)&lt;br /&gt;
  +------------------------------------------------+  +------------------------------------------------+ volume&lt;br /&gt;
  |  rest of disk in second partition              |  |  rest of disk in second partition              |&lt;br /&gt;
  | T================================================================================================T | These 2 partitions form&lt;br /&gt;
  | T +--------------------------------------------------------------------------------------------+ T | a second mirrored&lt;br /&gt;
  | T | cryptsetup volume                                                                          | T | (RAID1) volume&lt;br /&gt;
  | T |  +---------------------------------------------------------------------------------------+ | T |&lt;br /&gt;
  | T |  | LVM PV, containing single VG,                                                         | | T |&lt;br /&gt;
  | T |  | containing multiple LVs, holding                                                      | | T |&lt;br /&gt;
  | T |  | /, /home, swap, etc                                                                   | | T |&lt;br /&gt;
  | T |  +---------------------------------------------------------------------------------------+ | T |&lt;br /&gt;
  | T +--------------------------------------------------------------------------------------------+ T |&lt;br /&gt;
  | T================================================================================================T |&lt;br /&gt;
  |                                                |  |                                                |&lt;br /&gt;
  +------------------------------------------------+  +------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In a three-disk system, the {{Path|/boot}} would still be RAID1, but the larger partition might in that case be RAID5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RAID ===&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; will automatically build a RAID array if you supply the &#039;&#039;&#039;-r&#039;&#039;&#039; switch, or if you specify more than one device.&lt;br /&gt;
&lt;br /&gt;
If you instead want to build your RAID array manually, see [[Setting up a software RAID array]]. Then you can add additional layers of encryption and/or LVM, or just assemble the RAID array, and supply the {{Path|/dev/md&amp;lt;i&amp;gt;i&amp;lt;/i&amp;gt;}} device directly to [[setup-disk]]. When you&#039;re finished, be sure to disassemble the RAID array before rebooting.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; sees that you&#039;re using RAID---either because you gave it the &amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt; switch, or multiple devices, or a {{Path|/dev/md&amp;lt;i&amp;gt;i&amp;lt;/i&amp;gt;}} device---then it will setup your initramfs and extlinux.conf file properly. However, in other cases, such as when you&#039;re also using encryption, or you invoke &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; with a mounted directory argument, these might not be properly setup for RAID. In that case, you may need to manually edit/rebuild them. The following assumes that &amp;lt;code&amp;gt;$MNT&amp;lt;/code&amp;gt; holds the root directory you&#039;re installing into:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=echo &amp;quot;/sbin/mdadm&amp;quot; &amp;gt; $MNT/etc/mkinitfs/files.d/raid&lt;br /&gt;
echo &amp;quot;/etc/mdadm.conf&amp;quot; &amp;gt;&amp;gt; $MNT/etc/mkinitfs/files.d/raid&lt;br /&gt;
&amp;amp;#35; edit $MNT/etc/mkinitfs/mkinitfs.conf to make sure features=&amp;quot;...&amp;quot;&lt;br /&gt;
&amp;amp;#35; includes raid (this field is space-separated and quoted)&lt;br /&gt;
mkinitfs -c $MNT/etc/mkinitfs/mkinitfs.conf -b $MNT&lt;br /&gt;
&amp;amp;#35; edit $MNT/etc/update-extlinux.conf to make sure modules=... contains&lt;br /&gt;
&amp;amp;#35; raid1 or raid456 (whichever your / is on; this field is comma-separated)&lt;br /&gt;
&amp;amp;#35; also check the root= setting&lt;br /&gt;
extlinux --raid --install $MNT/boot --update&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Todo|Does adding the &amp;lt;code&amp;gt;--update&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;extlinux ...&amp;lt;/code&amp;gt; suffice to make {{Path|/boot/extlinux.conf}} be regenerated? Or do we need to manually tweak that file, or run &amp;lt;code&amp;gt;update-extlinux&amp;lt;/code&amp;gt;, as well?}}&lt;br /&gt;
&lt;br /&gt;
You might also need to manually tweak {{Path|$MNT/etc/fstab}}. And you might need to copy {{Path|/usr/share/syslinux/mbr.bin}} to your disk&#039;s MBR.&lt;br /&gt;
&lt;br /&gt;
=== Encryption ===&lt;br /&gt;
&lt;br /&gt;
See [[Setting up encrypted volumes with LUKS]]. Then you can add an additional layer of LVM, or just unlock the volume you&#039;ve created (using &amp;lt;code&amp;gt;cryptsetup luksOpen ...&amp;lt;/code&amp;gt;), and supply the {{Path|/dev/mapper/&amp;lt;i&amp;gt;something&amp;lt;/i&amp;gt;}} device directly to [[setup-disk]]. When you&#039;re finished, be sure to relock the volume (using &amp;lt;code&amp;gt;cryptsetup luksClose ...&amp;lt;/code&amp;gt;) before rebooting.&lt;br /&gt;
&lt;br /&gt;
If you install your {{Path|/}} (root) on an encrypted volume, you&#039;ll need to manually edit/rebuild your initram and your extlinux.conf file. The following assumes that &amp;lt;code&amp;gt;$MNT&amp;lt;/code&amp;gt; holds the root directory you&#039;re installing into, that you&#039;ve created the cryptvolume on the device {{Path|/dev/md2}}, and that you want to unlock the encrypted volume into a virtual volume named &amp;quot;crypt&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=&amp;amp;#35; edit $MNT/etc/mkinitfs/mkinitfs.conf to make sure features=&amp;quot;...&amp;quot;&lt;br /&gt;
&amp;amp;#35; includes cryptsetup (this field is space-separated and quoted)&lt;br /&gt;
mkinitfs -c $MNT/etc/mkinitfs/mkinitfs.conf -b $MNT&lt;br /&gt;
&amp;amp;#35; edit $MNT/etc/update-extlinux.conf to make sure default_kernel_opts=&amp;quot;...&amp;quot;&lt;br /&gt;
&amp;amp;#35; contains cryptroot=/dev/md1 and cryptdm=crypt (this field is also space-separated and quoted)&lt;br /&gt;
&amp;amp;#35; also check the root= setting&lt;br /&gt;
extlinux --install $MNT/boot --update&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Todo|Does adding the &amp;lt;code&amp;gt;--update&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;extlinux ...&amp;lt;/code&amp;gt; suffice to make {{Path|/boot/extlinux.conf}} be regenerated? Or do we need to manually tweak that file, or run &amp;lt;code&amp;gt;update-extlinux&amp;lt;/code&amp;gt;, as well?}}&lt;br /&gt;
&lt;br /&gt;
You might also need to manually tweak {{Path|$MNT/etc/fstab}}.&lt;br /&gt;
&lt;br /&gt;
=== LVM ===&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; will automatically build and use volumes in a LVM group if you supply the &#039;&#039;&#039;-L&#039;&#039;&#039; switch.&lt;br /&gt;
&lt;br /&gt;
If you instead want to build your LVM system manually, see [[Setting up Logical Volumes with LVM]]. Then &amp;lt;code&amp;gt;vgchange -ay&amp;lt;/code&amp;gt;, format and mount your volumes, and supply the root mountpoint to [[setup-disk]]. When you&#039;re finished, be sure to&lt;br /&gt;
{{Cmd|umount ...&lt;br /&gt;
vgchange -an}}&lt;br /&gt;
before rebooting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; sees that you&#039;re using LVM---perhaps because you gave it the &amp;lt;code&amp;gt;-L&amp;lt;/code&amp;gt; switch---then it will setup your initram and extlinux.conf file properly. However, in other cases, these might not be properly setup. In that case, you may need to manually edit/rebuild them. The following assumes that &amp;lt;code&amp;gt;$MNT&amp;lt;/code&amp;gt; holds the root directory you&#039;re installing into:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|1=&amp;amp;#35; edit $MNT/etc/mkinitfs/mkinitfs.conf to make sure features=&amp;quot;...&amp;quot;&lt;br /&gt;
&amp;amp;#35; includes lvm (this field is space-separated and quoted)&lt;br /&gt;
mkinitfs -c $MNT/etc/mkinitfs/mkinitfs.conf -b $MNT&lt;br /&gt;
&amp;amp;#35; edit $MNT/etc/update-extlinux.conf to make sure root= is set correctly&lt;br /&gt;
extlinux --install $MNT/boot --update&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Todo|Does adding the &amp;lt;code&amp;gt;--update&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;extlinux ...&amp;lt;/code&amp;gt; suffice to make {{Path|/boot/extlinux.conf}} be regenerated? Or do we need to manually tweak that file, or run &amp;lt;code&amp;gt;update-extlinux&amp;lt;/code&amp;gt;, as well?}}&lt;br /&gt;
&lt;br /&gt;
You might also need to manually tweak {{Path|$MNT/etc/fstab}}.&lt;br /&gt;
&lt;br /&gt;
=== Custom partitioning ===&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; will by default set up a root partition, a separate /boot partition and a swap. If you want a different layout you can manually create the partitions, filesystems and mount them up on {{Path|/mnt}} (or any other mount point) and then run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|setup-disk /mnt}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; will install your running system on the mounted root, detect your file system layout and generate a fstab.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re going for MBR, you are responsible for making the proper partition bootable and make sure the MBR is OK for extlinux. If you&#039;re going for EFI, make sure you set &amp;lt;code&amp;gt;BOOTLOADER=grub&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;USE_EFI=1&amp;lt;/code&amp;gt; and {{Pkg|grub-efi}} is installed before running &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See also [https://github.com/itoffshore/alpine-linux-scripts setup-partitions]&lt;br /&gt;
&lt;br /&gt;
=== Dual-booting ===&lt;br /&gt;
See [[Installing Alpine on HDD dualbooting|Install to HDD with dual-boot]]&lt;br /&gt;
&lt;br /&gt;
=== Other needs ===&lt;br /&gt;
* [[Installing Alpine Linux in a chroot]]&lt;br /&gt;
* [[Replacing non-Alpine Linux with Alpine remotely]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 Create partition with with type &amp;quot;Linux&amp;quot; (83).&lt;br /&gt;
 apk_add e2fsprogs rsync&lt;br /&gt;
 mkfs.ext3 /dev/hda1&lt;br /&gt;
 mount -t ext3 /dev/hda1 /mnt&lt;br /&gt;
 ROOT=/mnt apk_add uclibc busybox apk-tools alpine-baselayout alpine-conf&lt;br /&gt;
 # Install busybox links&lt;br /&gt;
 mkdir /mnt/proc &amp;amp;&amp;amp; mount --bind /proc /mnt/proc &amp;amp;&amp;amp; chroot /mnt /bin/busybox --install -s &amp;amp;&amp;amp; umount /mnt/proc&lt;br /&gt;
 # Copy the apk repository&lt;br /&gt;
 rsync -ruav /media/cdrom/apks /mnt&lt;br /&gt;
 mkdir /mnt/etc/apk &amp;amp;&amp;amp; echo &amp;quot;APK_PATH=file://apks&amp;quot; &amp;gt; /mnt/etc/apk/apk.conf&lt;br /&gt;
 # Copy the hd/ext3 initramfs image, kernel and kernel modules&lt;br /&gt;
 rsync -ruav /media/cdrom/kernel/generic/hd-ext3.gz /media/cdrom/kernel/generic/bzImage /mnt&lt;br /&gt;
 rsync -ruav /lib/modules/* /mnt/lib/modules/&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Setting up the RAID ==&lt;br /&gt;
Set up a raid array as described [[Setting up a software RAID1 array|here]].&lt;br /&gt;
In this document two raid arrays are configured: md0 for swap (512MB) and md1 for /var. &lt;br /&gt;
&lt;br /&gt;
== Create filesystem ==&lt;br /&gt;
We need to install the software to create the filesystem (&amp;quot;format&amp;quot; the partition).&lt;br /&gt;
 apk_add e2fsprogs&lt;br /&gt;
&lt;br /&gt;
If you use an Alpine release older than 1.3.8 you will need to manually create a link to /etc/mtab.&lt;br /&gt;
 ln -fs /proc/mounts /etc/mtab&lt;br /&gt;
&lt;br /&gt;
Create the filesystem. The -j option makes it ext&#039;&#039;&#039;3&#039;&#039;&#039;. Without the -j option it will become non-journaling ext&#039;&#039;&#039;2&#039;&#039;&#039;. This step might take some time if your partition is big.&lt;br /&gt;
 mke2fs -j /dev/md1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now edit /etc/fstab and add your new partitions. Mine looks like this:&lt;br /&gt;
 none            /proc           proc    defaults 0 0&lt;br /&gt;
 none            /sys            sysfs   defaults 0 0&lt;br /&gt;
 udev            /dev            tmpfs   size=100k 0 0&lt;br /&gt;
 none            /dev/pts        devpts  defaults 0 0&lt;br /&gt;
 tmpfs           /dev/shm        tmpfs   defaults 0 0&lt;br /&gt;
 /dev/cdrom      /media/cdrom    iso9660 ro 0 0&lt;br /&gt;
 /dev/fd0        /media/floppy   vfat    noauto  0 0&lt;br /&gt;
 /dev/usba1      /media/usb      vfat    noauto  0 0&lt;br /&gt;
 none            /proc/bus/usb   usbfs noauto 0 0&lt;br /&gt;
  &lt;br /&gt;
 /dev/md0        swap            swap    defaults 0 0&lt;br /&gt;
 /dev/md1        /var            ext3    defaults 0 0&lt;br /&gt;
&lt;br /&gt;
== Move the data ==&lt;br /&gt;
Now you should stop all services running that put anything in /var (syslog for example). If you have booted on a clean installation and not run setup-alpine, then no services should be running. However, some packages might have created dirs in /var so we need to backup /var mount the new and move all backed up dirs back to the raided /var.&lt;br /&gt;
&lt;br /&gt;
 mv /var /var.tmp&lt;br /&gt;
 mkdir /var&lt;br /&gt;
 mount /var&lt;br /&gt;
 mv /var.tmp/* /var&lt;br /&gt;
 rmdir /var.tmp&lt;br /&gt;
&lt;br /&gt;
Verify that everyting looks ok with the &#039;&#039;df&#039;&#039; utility.&lt;br /&gt;
 ~ $ df&lt;br /&gt;
 Filesystem           1k-blocks      Used Available Use% Mounted on&lt;br /&gt;
 none                    255172     23544    231628   9% /&lt;br /&gt;
 udev                       100         0       100   0% /dev&lt;br /&gt;
 /dev/cdrom              142276    142276         0 100% /media/cdrom&lt;br /&gt;
 /dev/md1              37977060    181056  35866876   1% /var&lt;br /&gt;
&lt;br /&gt;
== Survive reboots ==&lt;br /&gt;
Now we have everything up and running. We need to make sure that everything will be restored during next reboot.&lt;br /&gt;
&lt;br /&gt;
Create an initscript that will mount /var for you during boot. I call it /etc/init.d/mountdisk and it looks like this:&lt;br /&gt;
 #!/sbin/runscript&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
         ebegin &amp;quot;Mounting /var&amp;quot;&lt;br /&gt;
         mount /var&lt;br /&gt;
         eend $?&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
         ebegin &amp;quot;Unmounting /var&amp;quot;&lt;br /&gt;
         umount /var&lt;br /&gt;
         eend $?&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Make it exectutable:&lt;br /&gt;
 chmod +x /etc/init.d/mountdisk&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Since Alpine-1.7.3 there is a &#039;&#039;localmount&#039;&#039; script shipped so you will not need to create your own &#039;&#039;mountdisk&#039;&#039; script.&lt;br /&gt;
&lt;br /&gt;
And that /var is mounted *after* raid is created. The -k option will make alpine to unmount the /Var partition during boot. Also add start of swap too boot&lt;br /&gt;
 rc_add -k -s 06 mountdisk&lt;br /&gt;
 rc_add -k -s 06 swap&lt;br /&gt;
&lt;br /&gt;
The /dev/md* device nodes will not be created automatically so we need to put the on floppy too.&lt;br /&gt;
 lbu include /dev/md*&lt;br /&gt;
&lt;br /&gt;
If you have users on the server and want /home to be permanent, you can create a directory /var/home and create links to /var/home.&lt;br /&gt;
 mkdir /var/home&lt;br /&gt;
 mv /home/* /var/home/&lt;br /&gt;
 ln -s /var/home/* /home/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; You cannot just replace /home with a link that points to /var/home since the base has a /home directory. When the boot tries to copy the config from floppy it will fail because of the already existing /home directory.&lt;br /&gt;
&lt;br /&gt;
Make sure the links are stored to floppy:&lt;br /&gt;
 lbu include /home/*&lt;br /&gt;
&lt;br /&gt;
Also remember to move any newly created users to /var/home and create a link:&lt;br /&gt;
 adduser bob&lt;br /&gt;
 mv /home/bob /var/home/&lt;br /&gt;
 ln -s /var/home/bob /home/bob&lt;br /&gt;
 lbu include /home/bob&lt;br /&gt;
&lt;br /&gt;
Save to floppy:&lt;br /&gt;
 lbu commit floppy&lt;br /&gt;
&lt;br /&gt;
== Test it works ==&lt;br /&gt;
Reboot computer. Now should the raid start and /var should be mounted. Check with df:&lt;br /&gt;
 ~ $ df&lt;br /&gt;
 Filesystem           1k-blocks      Used Available Use% Mounted on&lt;br /&gt;
 none                    255172     23976    231196   9% /&lt;br /&gt;
 mdev                       100         0       100   0% /dev&lt;br /&gt;
 /dev/cdrom              140932    140932         0 100% /media/cdrom&lt;br /&gt;
 /dev/md1              37977060    180984  35866948   1% /var&lt;br /&gt;
&lt;br /&gt;
== Upgrades ==&lt;br /&gt;
Since the package database is placed on disk, you cannot update by simply replacing the CDROM. You will have to either run the upgrade on the new CDROM or run &#039;&#039;apk_add -u ... &amp;amp;&amp;amp; update-conf&#039;&#039; manually.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting up swap ==&lt;br /&gt;
&lt;br /&gt;
# create partition with type &amp;quot;linux swap&amp;quot; (82) (If you&#039;re going to use an LVM logical volume for swap, skip this step and &amp;lt;code&amp;gt;lvcreate&amp;lt;/code&amp;gt; that instead.)&lt;br /&gt;
# &amp;lt;code&amp;gt;mkswap /dev/sda2&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;echo -e &amp;quot;/dev/sda2 none swap sw 0 0&amp;quot; &amp;gt;&amp;gt; /mnt/etc/fstab&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;swapon /dev/sda2&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;rc-service swap start&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Then {{Cmd|free -m}} will show how much swap space is available (in MB).&lt;br /&gt;
&lt;br /&gt;
If you prefer maximum speed, you don&#039;t need configure any raid devices for swap. Just add 2 swap partitions on different disks and linux will stripe them automatically. The downside is that at the moment one disk fails, the system will go down. For better reliability, put swap on RAID1. &lt;br /&gt;
&lt;br /&gt;
{{Todo|Instructions for cryptswap?}}&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
* [https://beta.docs.alpinelinux.org/user-handbook/0.1a/Installing/manual.html#_finalizing beta.docs.alpinelinux.org] &#039;&#039;([http://archive.md/2KQPQ archive])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Storage]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Bluetooth_audio&amp;diff=16765</id>
		<title>Bluetooth audio</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Bluetooth_audio&amp;diff=16765"/>
		<updated>2019-12-31T15:40:11Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: /* PulseAudio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PulseAudio ==&lt;br /&gt;
&lt;br /&gt;
Before you can connect your device to Bluetooth speakers or headphones, you&#039;ll have to make sure {{Pkg|pulseaudio-bluez}} is installed.&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;/etc/bluetooth/main.conf&amp;lt;/code&amp;gt; and add &amp;lt;code&amp;gt;Enable=Source,Sink,Media,Socket&amp;lt;/code&amp;gt; under the &amp;lt;code&amp;gt;[General]&amp;lt;/code&amp;gt; section, then restart the Bluetooth service &amp;lt;code&amp;gt;# rc-service bluetooth restart&amp;lt;/code&amp;gt;.&lt;br /&gt;
Once you connect to the Bluetooth device, a new output will appear in the audio settings.&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Bluetooth_audio&amp;diff=16764</id>
		<title>Bluetooth audio</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Bluetooth_audio&amp;diff=16764"/>
		<updated>2019-12-31T15:39:55Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PulseAudio ==&lt;br /&gt;
&lt;br /&gt;
Before you can connect your device to Bluetooth speakers or headphones, you&#039;ll have to make sure {{Pkg|pulseaudio-bluez}} is installed.&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;/etc/bluetooth/main.conf&amp;lt;/code&amp;gt; and add &amp;lt;code&amp;gt;Enable=Source,Sink,Media,Socket&amp;lt;/code&amp;gt; under the &amp;lt;code&amp;gt;[General]&amp;lt;/code&amp;gt; section, then restart the Bluetooth service `&amp;lt;code&amp;gt;# rc-service bluetooth restart&amp;lt;/code&amp;gt;.&lt;br /&gt;
Once you connect to the Bluetooth device, a new output will appear in the audio settings.&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Bluetooth_audio&amp;diff=16763</id>
		<title>Bluetooth audio</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Bluetooth_audio&amp;diff=16763"/>
		<updated>2019-12-31T15:39:09Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: Created page with &amp;quot;== PulseAudio ==  Before you can connect your device to Bluetooth speakers or headphones, you&amp;#039;ll have to make sure {{Pkg|pulseaudio-bluez}} is installed.  Edit &amp;lt;code&amp;gt;/etc/blue...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PulseAudio ==&lt;br /&gt;
&lt;br /&gt;
Before you can connect your device to Bluetooth speakers or headphones, you&#039;ll have to make sure {{Pkg|pulseaudio-bluez}} is installed.&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;/etc/bluetooth/main.conf&amp;lt;/code&amp;gt; and add &amp;lt;code&amp;gt;Enable=Source,Sink,Media,Socket&amp;lt;/code&amp;gt; under the &amp;lt;code&amp;gt;[General]&amp;lt;/code&amp;gt; section.&lt;br /&gt;
Once you connect to the Bluetooth device, a new output will appear in the audio settings.&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Pine64_A64_LTS&amp;diff=16718</id>
		<title>Pine64 A64 LTS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Pine64_A64_LTS&amp;diff=16718"/>
		<updated>2019-12-19T14:15:48Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft|It doesn&#039;t boot yet}}&lt;br /&gt;
&lt;br /&gt;
Since the 3.10.0 release, Alpine Linux includes [https://denx.de/ u-boot] support for the [https://pine64.org/ Pine64] A64LTS. Since the 3.11.0 release, Alpine Linux includes a kernel that is new enough to boot it. This page describes how to install the system.&lt;br /&gt;
&lt;br /&gt;
The generic (u-boot) ARM image should be used. Make sure your sdcard is empty before you install Alpine Linux, as all it&#039;s contents will be removed!&lt;br /&gt;
&lt;br /&gt;
# download the [http://dl-cdn.alpinelinux.org/alpine/v3.11/releases/aarch64/ generic ARM image] and unpack it somewhere&lt;br /&gt;
# write u-boot to the sdcard &amp;lt;code&amp;gt;cd &amp;lt;unpacked folder&amp;gt;/u-boot/pine64-lts &amp;amp;&amp;amp; dd if=u-boot-sunxi-with-spl.bin of=/path/to/sdcard bs=1024 seek=8&amp;lt;/code&amp;gt;&lt;br /&gt;
# create a new partition on the sdcard starting from sector 2048, set it as bootable&lt;br /&gt;
# format it to ext4 (or any other filesystem that u-boot supports booting from)&lt;br /&gt;
# decompress (&amp;lt;code&amp;gt;gunzip&amp;lt;/code&amp;gt;)the kernel image (&amp;lt;code&amp;gt;boot/vmlinuz-lts&amp;lt;/code&amp;gt;) as the device&#039;s u-boot can&#039;t boot from a compressed kernel&lt;br /&gt;
# copy over the &amp;lt;code&amp;gt;apks&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;boot&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;extlinux&amp;lt;/code&amp;gt; folders from the extracted archive to the new partition&lt;br /&gt;
&lt;br /&gt;
Alpine Linux should now boot on your device.&lt;br /&gt;
&lt;br /&gt;
[[category:ARM]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Pine64_A64_LTS&amp;diff=16716</id>
		<title>Pine64 A64 LTS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Pine64_A64_LTS&amp;diff=16716"/>
		<updated>2019-12-18T13:21:52Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft|It doesn&#039;t boot yet}}&lt;br /&gt;
&lt;br /&gt;
Since the 3.10.0 release, Alpine Linux includes [https://denx.de/ u-boot] support for the [https://pine64.org/ Pine64] A64LTS. Since the 3.11.0 release, Alpine Linux includes a kernel that is new enough to boot it. This page describes how to install the system.&lt;br /&gt;
&lt;br /&gt;
The generic (u-boot) ARM image should be used. Make sure your sdcard is empty before you install Alpine Linux, as all it&#039;s contents will be removed!&lt;br /&gt;
&lt;br /&gt;
# download the [http://dl-cdn.alpinelinux.org/alpine/v3.11/releases/aarch64/ generic ARM image] and unpack it somewhere&lt;br /&gt;
# write u-boot to the sdcard &amp;lt;code&amp;gt;cd &amp;lt;unpacked folder&amp;gt;/u-boot/pine64-lts &amp;amp;&amp;amp; dd if=u-boot-sunxi-with-spl.bin of=/path/to/sdcard bs=1024 seek=8&amp;lt;/code&amp;gt;&lt;br /&gt;
# create a new partition on the sdcard starting from sector 2048, set it as bootable&lt;br /&gt;
# format it to ext4 (or any other filesystem that u-boot supports booting from)&lt;br /&gt;
# copy over the &amp;lt;code&amp;gt;apks&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;boot&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;extlinux&amp;lt;/code&amp;gt; folders from the extracted archive to the new partition&lt;br /&gt;
&lt;br /&gt;
Alpine Linux should now boot on your device.&lt;br /&gt;
&lt;br /&gt;
[[category:ARM]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=KDE&amp;diff=16715</id>
		<title>KDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=KDE&amp;diff=16715"/>
		<updated>2019-12-14T15:36:19Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: /* From the console */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
KDE is a software project comprising a desktop environment known as Plasma, a collection of libraries and frameworks known as KDE Frameworks, and several applications known as KDE Applications. Their [https://userbase.kde.org/Welcome_to_KDE_UserBase UserBase wiki] has detailed information about most KDE Applications.&lt;br /&gt;
&lt;br /&gt;
Note that the {{Pkg|plasma}} package isn&#039;t available for the &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt; architectures due to the {{Pkg|kdeplasma-addons}} dependency not being available there. The rest of Plasma can however be installed separately to get a functional desktop.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
=== Plasma ===&lt;br /&gt;
&lt;br /&gt;
Before installation, make sure your graphical environment is setup. Don&#039;t be fooled by the name of the command, this is also required for Wayland sessions.&lt;br /&gt;
{{Cmd|setup-xorg-base}}&lt;br /&gt;
&lt;br /&gt;
Install the {{Pkg|plasma}} meta-package. This will install the required Plasma packages and {{Pkg|sddm}} and pre-configure it to use the Breeze theme. Alternatively a more minimal installation can be done by installing {{Pkg|plasma-desktop}}.&lt;br /&gt;
&lt;br /&gt;
=== KDE Applications ===&lt;br /&gt;
&lt;br /&gt;
To install the full set of KDE Applications, install {{Pkg|kde-applications}}. You can also choose to install a more limited set of applications by installing any of the subpackages:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|kde-applications-accessibility}}&lt;br /&gt;
* {{Pkg|kde-applications-admin}}&lt;br /&gt;
* {{Pkg|kde-applications-base}}&lt;br /&gt;
* {{Pkg|kde-applications-edu}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-games}}&lt;br /&gt;
* {{Pkg|kde-applications-graphics}}&lt;br /&gt;
* {{Pkg|kde-applications-multimedia}}&lt;br /&gt;
* {{Pkg|kde-applications-network}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-pim}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-sdk}}&lt;br /&gt;
* {{Pkg|kde-applications-utils}}&lt;br /&gt;
* {{Pkg|kde-applications-webdev}}&lt;br /&gt;
&lt;br /&gt;
= Starting Plasma =&lt;br /&gt;
&lt;br /&gt;
Plasma can be started using a display manager or from the console.&lt;br /&gt;
&lt;br /&gt;
=== Using a display manager ===&lt;br /&gt;
&lt;br /&gt;
When Plasma is installed via the {{Pkg|plasma}} meta-package, this has already been setup using {{Pkg|sddm}}.&lt;br /&gt;
&lt;br /&gt;
* Select &#039;&#039;Plasma&#039;&#039; to launch a new session in Xorg&lt;br /&gt;
* Select &#039;&#039;Plasma (Wayland)&#039;&#039; to launch a new session in Wayland&lt;br /&gt;
&lt;br /&gt;
=== From the console ===&lt;br /&gt;
&lt;br /&gt;
The Xorg session can be launched by installing {{Pkg|xinit}} and appending &amp;lt;code&amp;gt;exec startkde&amp;lt;/code&amp;gt; to your &amp;lt;code&amp;gt;.xinitrc&amp;lt;/code&amp;gt; file. Then just start X.&lt;br /&gt;
{{Cmd|xinit}}&lt;br /&gt;
&lt;br /&gt;
For the Wayland session run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
XDG_SESSION_TYPE=wayland dbus-run-session startplasma-wayland&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
* [[Flatpak]]&lt;br /&gt;
&lt;br /&gt;
[[category:Desktop]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=KDE&amp;diff=16535</id>
		<title>KDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=KDE&amp;diff=16535"/>
		<updated>2019-10-20T16:44:52Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
KDE is a software project comprising a desktop environment known as Plasma, a collection of libraries and frameworks known as KDE Frameworks, and several applications known as KDE Applications. Their [https://userbase.kde.org/Welcome_to_KDE_UserBase UserBase wiki] has detailed information about most KDE Applications.&lt;br /&gt;
&lt;br /&gt;
Note that the {{Pkg|plasma}} package isn&#039;t available for the &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt; architectures due to the {{Pkg|kdeplasma-addons}} dependency not being available there. The rest of Plasma can however be installed separately to get a functional desktop.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
=== Plasma ===&lt;br /&gt;
&lt;br /&gt;
Before installation, make sure your graphical environment is setup. Don&#039;t be fooled by the name of the command, this is also required for Wayland sessions.&lt;br /&gt;
{{Cmd|setup-xorg-base}}&lt;br /&gt;
&lt;br /&gt;
Install the {{Pkg|plasma}} meta-package. This will install the required Plasma packages and {{Pkg|sddm}} and pre-configure it to use the Breeze theme. Alternatively a more minimal installation can be done by installing {{Pkg|plasma-desktop}}.&lt;br /&gt;
&lt;br /&gt;
=== KDE Applications ===&lt;br /&gt;
&lt;br /&gt;
To install the full set of KDE Applications, install {{Pkg|kde-applications}}. You can also choose to install a more limited set of applications by installing any of the subpackages:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|kde-applications-accessibility}}&lt;br /&gt;
* {{Pkg|kde-applications-admin}}&lt;br /&gt;
* {{Pkg|kde-applications-base}}&lt;br /&gt;
* {{Pkg|kde-applications-edu}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-games}}&lt;br /&gt;
* {{Pkg|kde-applications-graphics}}&lt;br /&gt;
* {{Pkg|kde-applications-multimedia}}&lt;br /&gt;
* {{Pkg|kde-applications-network}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-pim}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-sdk}}&lt;br /&gt;
* {{Pkg|kde-applications-utils}}&lt;br /&gt;
* {{Pkg|kde-applications-webdev}}&lt;br /&gt;
&lt;br /&gt;
= Starting Plasma =&lt;br /&gt;
&lt;br /&gt;
Plasma can be started using a display manager or from the console.&lt;br /&gt;
&lt;br /&gt;
=== Using a display manager ===&lt;br /&gt;
&lt;br /&gt;
When Plasma is installed via the {{Pkg|plasma}} meta-package, this has already been setup using {{Pkg|sddm}}.&lt;br /&gt;
&lt;br /&gt;
* Select &#039;&#039;Plasma&#039;&#039; to launch a new session in Xorg&lt;br /&gt;
* Select &#039;&#039;Plasma (Wayland)&#039;&#039; to launch a new session in Wayland&lt;br /&gt;
&lt;br /&gt;
=== From the console ===&lt;br /&gt;
&lt;br /&gt;
The Xorg session can be launched by installing {{Pkg|xinit}} and appending &amp;lt;code&amp;gt;exec startkde&amp;lt;/code&amp;gt; to your &amp;lt;code&amp;gt;.xinitrc&amp;lt;/code&amp;gt; file. Then just start X.&lt;br /&gt;
{{Cmd|xinit}}&lt;br /&gt;
&lt;br /&gt;
For the Wayland session run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
XDG_SESSION_TYPE=wayland dbus-run-session startplasmacompositor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Desktop]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=KDE&amp;diff=16534</id>
		<title>KDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=KDE&amp;diff=16534"/>
		<updated>2019-10-20T16:42:50Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
KDE is a software project comprising a desktop environment known as Plasma, a collection of libraries and frameworks known as KDE Frameworks, and several applications known as KDE Applications. Their [https://userbase.kde.org/Welcome_to_KDE_UserBase UserBase wiki] has detailed information about most KDE Applications.&lt;br /&gt;
&lt;br /&gt;
Note that the {{Pkg|plasma}} package isn&#039;t available for the &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt; architectures due to the {{Pkg|kdeplasma-addons}} dependency not being available there. The rest of Plasma can however be installed separately to get a functional desktop.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
=== Plasma ===&lt;br /&gt;
&lt;br /&gt;
Before installation, make sure Xorg is setup.&lt;br /&gt;
{{Cmd|setup-xorg-base}}&lt;br /&gt;
&lt;br /&gt;
Install the {{Pkg|plasma}} meta-package. This will install the required Plasma packages and {{Pkg|sddm}} and pre-configure it to use the Breeze theme. Alternatively a more minimal installation can be done by installing {{Pkg|plasma-desktop}}.&lt;br /&gt;
&lt;br /&gt;
=== KDE Applications ===&lt;br /&gt;
&lt;br /&gt;
To install the full set of KDE Applications, install {{Pkg|kde-applications}}. You can also choose to install a more limited set of applications by installing any of the subpackages:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|kde-applications-accessibility}}&lt;br /&gt;
* {{Pkg|kde-applications-admin}}&lt;br /&gt;
* {{Pkg|kde-applications-base}}&lt;br /&gt;
* {{Pkg|kde-applications-edu}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-games}}&lt;br /&gt;
* {{Pkg|kde-applications-graphics}}&lt;br /&gt;
* {{Pkg|kde-applications-multimedia}}&lt;br /&gt;
* {{Pkg|kde-applications-network}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-pim}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-sdk}}&lt;br /&gt;
* {{Pkg|kde-applications-utils}}&lt;br /&gt;
* {{Pkg|kde-applications-webdev}}&lt;br /&gt;
&lt;br /&gt;
= Starting Plasma =&lt;br /&gt;
&lt;br /&gt;
Plasma can be started using a display manager or from the console.&lt;br /&gt;
&lt;br /&gt;
=== Using a display manager ===&lt;br /&gt;
&lt;br /&gt;
When Plasma is installed via the {{Pkg|plasma}} meta-package, this has already been setup using {{Pkg|sddm}}.&lt;br /&gt;
&lt;br /&gt;
* Select &#039;&#039;Plasma&#039;&#039; to launch a new session in Xorg&lt;br /&gt;
* Select &#039;&#039;Plasma (Wayland)&#039;&#039; to launch a new session in Wayland&lt;br /&gt;
&lt;br /&gt;
=== From the console ===&lt;br /&gt;
&lt;br /&gt;
The Xorg session can be launched by installing {{Pkg|xinit}} and appending &amp;lt;code&amp;gt;exec startkde&amp;lt;/code&amp;gt; to your &amp;lt;code&amp;gt;.xinitrc&amp;lt;/code&amp;gt; file. Then just start X.&lt;br /&gt;
{{Cmd|xinit}}&lt;br /&gt;
&lt;br /&gt;
For the Wayland session run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
XDG_SESSION_TYPE=wayland dbus-run-session startplasmacompositor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Desktop]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Pine64_A64_LTS&amp;diff=16241</id>
		<title>Pine64 A64 LTS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Pine64_A64_LTS&amp;diff=16241"/>
		<updated>2019-08-23T12:45:00Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft|It doesn&#039;t boot yet}}&lt;br /&gt;
&lt;br /&gt;
Since the 3.10.0 release, Alpine Linux includes u-boot support for the Pine64 A64LTS. The &amp;lt;code&amp;gt;linux-vanilla&amp;lt;/code&amp;gt; kernel is still too old to boot it, however this page describes how to install the system for once the kernel is upgraded.&lt;br /&gt;
&lt;br /&gt;
The generic ARM image should be used. Make sure your sdcard is empty before you install Alpine Linux, as all it&#039;s contents will be removed!&lt;br /&gt;
&lt;br /&gt;
# download the generic ARM image and unpack it somewhere&lt;br /&gt;
# write u-boot to the sdcard &amp;lt;code&amp;gt;&amp;lt;unpacked folder&amp;gt;/u-boot/pine64-lts/dd if=u-boot-sunxi-with-spl.bin of=/path/to/sdcard bs=1024 seek=8&amp;lt;/code&amp;gt;&lt;br /&gt;
# create a new partition on the sdcard starting from sector 2048, set it as bootable&lt;br /&gt;
# format it to ext4 (or any other filesystem that u-boot supports booting from)&lt;br /&gt;
# copy over the &amp;lt;code&amp;gt;apk&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;boot&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;extlinux&amp;lt;/code&amp;gt; folders from the extracted archive to the new partition&lt;br /&gt;
&lt;br /&gt;
Alpine Linux should now boot on your device.&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=KDE&amp;diff=16058</id>
		<title>KDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=KDE&amp;diff=16058"/>
		<updated>2019-07-13T21:57:36Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE is a software project comprising a desktop environment known as Plasma, a collection of libraries and frameworks known as KDE Frameworks, and several applications known as KDE Applications. Their [https://userbase.kde.org/Welcome_to_KDE_UserBase UserBase wiki] has detailed information about most KDE Applications.&lt;br /&gt;
&lt;br /&gt;
Note that Plasma isn&#039;t available for the &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt; architectures due to the {{Pkg|qt5-qtwebengine}} dependency not being available there. KDE Frameworks however is and so are several KDE Applications.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
=== Plasma ===&lt;br /&gt;
&lt;br /&gt;
Before installation, make sure Xorg is setup.&lt;br /&gt;
{{Cmd|setup-xorg-base}}&lt;br /&gt;
&lt;br /&gt;
Install the {{Pkg|plasma}} meta-package. This will install the required Plasma packages and {{Pkg|sddm}} and pre-configure it to use the Breeze theme. Alternatively a more minimal installation can be done by installing {{Pkg|plasma-desktop}}.&lt;br /&gt;
&lt;br /&gt;
=== KDE Applications ===&lt;br /&gt;
&lt;br /&gt;
To install the full set of KDE Applications, install {{Pkg|kde-applications}}. You can also choose to install a more limited set of applications by installing any of the subpackages:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|kde-applications-accessibility}}&lt;br /&gt;
* {{Pkg|kde-applications-admin}}&lt;br /&gt;
* {{Pkg|kde-applications-base}}&lt;br /&gt;
* {{Pkg|kde-applications-edu}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-games}}&lt;br /&gt;
* {{Pkg|kde-applications-graphics}}&lt;br /&gt;
* {{Pkg|kde-applications-multimedia}}&lt;br /&gt;
* {{Pkg|kde-applications-network}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-pim}}, not available for &amp;lt;code&amp;gt;ppc64le&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;s390x&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{Pkg|kde-applications-sdk}}&lt;br /&gt;
* {{Pkg|kde-applications-utils}}&lt;br /&gt;
* {{Pkg|kde-applications-webdev}}&lt;br /&gt;
&lt;br /&gt;
= Starting Plasma =&lt;br /&gt;
&lt;br /&gt;
Plasma can be started using a display manager or from the console.&lt;br /&gt;
&lt;br /&gt;
=== Using a display manager ===&lt;br /&gt;
&lt;br /&gt;
When Plasma is installed via the {{Pkg|plasma}} meta-package, this has already been setup using {{Pkg|sddm}}.&lt;br /&gt;
&lt;br /&gt;
* Select &#039;&#039;Plasma&#039;&#039; to launch a new session in Xorg&lt;br /&gt;
* Select &#039;&#039;Plasma (Wayland)&#039;&#039; to launch a new session in Wayland&lt;br /&gt;
&lt;br /&gt;
=== From the console ===&lt;br /&gt;
&lt;br /&gt;
The Xorg session can be launched by installing {{Pkg|xinit}} and appending &amp;lt;code&amp;gt;exec startkde&amp;lt;/code&amp;gt; to your &amp;lt;code&amp;gt;.xinitrc&amp;lt;/code&amp;gt; file. Then just start X.&lt;br /&gt;
{{Cmd|xinit}}&lt;br /&gt;
&lt;br /&gt;
For the Wayland session run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
XDG_SESSION_TYPE=wayland dbus-run-session startplasmacompositor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Create_UEFI_boot_USB&amp;diff=16040</id>
		<title>Create UEFI boot USB</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Create_UEFI_boot_USB&amp;diff=16040"/>
		<updated>2019-07-04T14:49:43Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note | These manual steps aren&#039;t required anymore, as the latest release images can just be written to an USB like normal and will support UEFI booting}}&lt;br /&gt;
&lt;br /&gt;
This article explains how to create an UEFI boot USB with parted and gummiboot.&lt;br /&gt;
&lt;br /&gt;
In this example we will use {{Path|/dev/sdX}}. This will be different depending on your system.&lt;br /&gt;
&lt;br /&gt;
== Create GPT boot partition ==&lt;br /&gt;
&lt;br /&gt;
Install {{Pkg|parted}}&lt;br /&gt;
{{Cmd | apk add parted }}&lt;br /&gt;
&lt;br /&gt;
Create a single UEFI boot partitions.&lt;br /&gt;
{{warning| This will erase all content of your {{Path|/dev/sdX}}. Make sure that you use correct device.}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd | parted --script /dev/sdX mklabel gpt&lt;br /&gt;
 parted --script --align{{=}}optimal /dev/sdX mkpart ESP fat32 1MiB 100%&lt;br /&gt;
 parted --script /dev/sdX set 1 boot on }}&lt;br /&gt;
&lt;br /&gt;
== Create fat32 filesystem ==&lt;br /&gt;
&lt;br /&gt;
Create a fat32 system with the name `Alpine`.&lt;br /&gt;
&lt;br /&gt;
{{Cmd | mkfs.vfat -n ALPINE /dev/sdX1 }}&lt;br /&gt;
&lt;br /&gt;
== Copy content of ISO image to filesystem ==&lt;br /&gt;
&lt;br /&gt;
It is possible to mount the iso image and copy files with {{codeline|cp}} or {{codeline|rsync}} and it is also possible to use {{codeline|7z}} to extract content from the iso. In this example I will use the {{codeline|uniso}} utility from {{Pkg|alpine-conf}} package.&lt;br /&gt;
&lt;br /&gt;
{{Cmd | mount -t vfat /dev/sdX1 /mnt&lt;br /&gt;
 cd /mnt&lt;br /&gt;
 uniso &amp;lt; /path/to/alpine-3.8.2-x86_64.iso }}&lt;br /&gt;
&lt;br /&gt;
== Unmount the partition ==&lt;br /&gt;
Finally umount the disk&lt;br /&gt;
{{Cmd | cd ~ &amp;amp;&amp;amp; umount /mnt}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=NetworkManager&amp;diff=16036</id>
		<title>NetworkManager</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=NetworkManager&amp;diff=16036"/>
		<updated>2019-07-01T14:31:44Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: Created page with &amp;quot;NetworkManager is a program that provides automatic detection and configuration for systems to connect to networks.  = Installation = NetworkManager is in the repositories and...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NetworkManager is a program that provides automatic detection and configuration for systems to connect to networks.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
NetworkManager is in the repositories and can be installed with the {{Pkg|networkmanager}} package. It comes with a command line interface and a curses-based interface, &amp;lt;code&amp;gt;nmcli&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;nmtui&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
Additional interfaces:&lt;br /&gt;
* {{Pkg|plasma-nm}} for Plasma integration and applet&lt;br /&gt;
* {{Pkg|network-manager-applet}} for a GTK system tray applet&lt;br /&gt;
&lt;br /&gt;
Start the daemon after installation:&lt;br /&gt;
&amp;lt;pre&amp;gt;rc-service networkmanager start&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wireless networks ==&lt;br /&gt;
NetworkManager supports wireless networks through {{Pkg|iwd}}. After installation, enable the server and restart NetworkManager:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rc-service iwd start&lt;br /&gt;
rc-service networkmanager restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN support ==&lt;br /&gt;
Since version 1.16, NetworkManager has support for Wireguard[https://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/NEWS?id=1.16.0].&lt;br /&gt;
&lt;br /&gt;
Support for other VPN types is provided by plugins. They are provided in the following packages:&lt;br /&gt;
* {{Pkg|networkmanager-openvpn}} for OpenVPN&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=LVM_on_LUKS&amp;diff=16027</id>
		<title>LVM on LUKS</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=LVM_on_LUKS&amp;diff=16027"/>
		<updated>2019-06-26T13:27:24Z</updated>

		<summary type="html">&lt;p&gt;PureTryOut: Improve formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
This documentation describes how to set up Alpine Linux using a logical volume (LV), that is installed in an encrypted partition. To encrypt the partition the logical volume manager (LVM) the volume group (VG) is installed in, the Device Mapper crypt (dm-crypt) module and Linux Unified Key Setup (LUKS) is used.&lt;br /&gt;
&lt;br /&gt;
Note that you must install the &amp;lt;code&amp;gt;/boot/&amp;lt;/code&amp;gt; directory on an unecrypted partition to boot correctly.&lt;br /&gt;
&lt;br /&gt;
== Hard Disk Device Name ==&lt;br /&gt;
&lt;br /&gt;
The following documentation uses the &amp;lt;code&amp;gt;vda&amp;lt;/code&amp;gt; device as installation destination. If your environment uses a different device name for your hard disk, use the corresponding device names in the examples.&lt;br /&gt;
&lt;br /&gt;
= Setting up Alpine Linux Using LVM on Top of a LUKS Partition =&lt;br /&gt;
&lt;br /&gt;
To install Alpine Linux in logical volumes running on top of a LUKS encrypted partition, you cannot use the [[Installation|official installation]] procedure. The installation requires several manual steps you must run in the Alpine Linux Live CD environment.&lt;br /&gt;
&lt;br /&gt;
== Preparing the Temporary Installation Environment ==&lt;br /&gt;
&lt;br /&gt;
Before you begin to install Alpine Linux, prepare the temporary environment:&lt;br /&gt;
&lt;br /&gt;
{{Note|All settings in this section apply only to the temporary environment and not to the later installed Alpine Linux on your hard disk.}}&lt;br /&gt;
&lt;br /&gt;
Boot the latest Alpine Linux Installation CD. At the login prompt, use the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; user without password to log in.&lt;br /&gt;
&lt;br /&gt;
Optionally, set the keyboard language:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# setup-keymap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: The default keyboard mapping is &amp;lt;code&amp;gt;us-us&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure the network interface:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# setup-interfaces&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: If you set a static IP address, additionally configure DNS be able to resolve host names:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# setup-dns&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enable the network interface. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# ifup eth0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set an apk repository and update the cache:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# setup-apkrepos&lt;br /&gt;
# apk update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install the following packages required to set up LVM and LUKS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add lvm2 cryptsetup e2fsprogs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionally, install and start the &amp;lt;code&amp;gt;haveged&amp;lt;/code&amp;gt; service for unpredictable random numbers used for encryption:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add haveged&lt;br /&gt;
# rc-service haveged start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating the Partition Layout ==&lt;br /&gt;
&lt;br /&gt;
Linux requires an unencrypted &amp;lt;code&amp;gt;/boot/&amp;lt;/code&amp;gt; partition to boot. You can assign the remaining space for the encrypted LVM physical volume (PV).&lt;br /&gt;
&lt;br /&gt;
Start the &amp;lt;code&amp;gt;fdisk&amp;lt;/code&amp;gt; utility to set up partitions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# fdisk /dev/vda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the &amp;lt;code&amp;gt;/boot/&amp;lt;/code&amp;gt; partition:&lt;br /&gt;
* Enter &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; &amp;amp;rarr; &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; &amp;amp;rarr; &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; &amp;amp;rarr; &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; &amp;amp;rarr; &amp;lt;code&amp;gt;+100m&amp;lt;/code&amp;gt; to create a new 100 MB primary partition.&lt;br /&gt;
&lt;br /&gt;
Set the &amp;lt;code&amp;gt;/boot/&amp;lt;/code&amp;gt; partition active:&lt;br /&gt;
* Enter &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; &amp;amp;rarr; &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Create the LVM PV partition:&lt;br /&gt;
* Enter &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; &amp;amp;rarr; &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; &amp;amp;rarr; &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; to start creating the next partition. Press &amp;lt;code&amp;gt;Enter&amp;lt;/code&amp;gt; to select the default start cylinder. Enter the size of partition. For example, &amp;lt;code&amp;gt;512m&amp;lt;/code&amp;gt; for 512 MB or &amp;lt;code&amp;gt;5g&amp;lt;/code&amp;gt; for 5 GB. Alternatively press &amp;lt;code&amp;gt;Enter&amp;lt;/code&amp;gt; to set the maximum available size.&lt;br /&gt;
&lt;br /&gt;
Set the partition type for the LVM PV:&lt;br /&gt;
* Enter &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; &amp;amp;rarr; &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; &amp;amp;rarr; &amp;lt;code&amp;gt;8e&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To verify the settings, press &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;. The output shows, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Device Boot     Start       End     Blocks   Id System&lt;br /&gt;
 /dev/vda1   *          1       100      50368+  83 Linux&lt;br /&gt;
 /dev/vda2            101     10402    5192208   8e Linux LVM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; to save the changes.&lt;br /&gt;
&lt;br /&gt;
Optionally, wipe the LVM PV partition with random values:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# haveged -n 0 | dd of=/dev/vda2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on the size of the partition, this process can take several minutes to hours.&lt;br /&gt;
&lt;br /&gt;
== Encrypting the LVM Physical Volume Partition == &lt;br /&gt;
&lt;br /&gt;
To encrypt the partition which will later contain the LVM PV:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# cryptsetup luksFormat /dev/vda2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you prefer setting an individual hashing algorithm and hashing schema:&lt;br /&gt;
&lt;br /&gt;
* To run a benchmark:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# cryptsetup benchmark&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To encrypt the partition using individual settings, enter, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# cryptsetup -v -c serpent-xts-plain64 -s 512 --hash whirlpool --iter-time 5000 --use-random luksFormat /dev/vda2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating the Logical Volumes and File Systems ==&lt;br /&gt;
&lt;br /&gt;
Open the LUKS partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# cryptsetup open --type luks /dev/vda2 lvmcrypt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the PV on &amp;lt;code&amp;gt;/dev/vda&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# pvcreate /dev/mapper/lvmcrypt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the &amp;lt;code&amp;gt;vg0&amp;lt;/code&amp;gt; LVM VG in the &amp;lt;code&amp;gt;/dev/mapper/lvmcrypt&amp;lt;/code&amp;gt; PV:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# vgcreate vg0 /dev/mapper/lvmcrypt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the LVs:&lt;br /&gt;
&lt;br /&gt;
: In the following you will create a LV for the root partition. However, you can use the same command with a different LV name to create further LVs for other mount points you want to create.&lt;br /&gt;
&lt;br /&gt;
* To create a 2 GB LV named &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;vg0&amp;lt;/code&amp;gt; VG:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# lvcreate -L 2G vg0 -n root&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a 512 MB swap LV:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# lvcreate -L 512M vg0 -n swap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The LVs created in the previous steps are automatically marked active. To verify, enter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# lvscan&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Format the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; LV using the ext4 file system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# mkfs.ext4 /dev/vg0/root&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you created further LVs in the previous step, create the file systems on them using the same command with the path to the LV.&lt;br /&gt;
&lt;br /&gt;
Format the swap LV:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# mkswap /dev/vg0/swap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mounting the File Systems ==&lt;br /&gt;
&lt;br /&gt;
Before you can install Alpine Linux, you must mount the partitions and LVs. Mount the root LV to the &amp;lt;code&amp;gt;/mnt/&amp;lt;/code&amp;gt; directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# mount -t ext4 /dev/vg0/root /mnt/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you created further partitions or LVs, create the mount points within the &amp;lt;code&amp;gt;/mnt/&amp;lt;/code&amp;gt; directory and mount the devices.&lt;br /&gt;
&lt;br /&gt;
== Installing Alpine Linux ==&lt;br /&gt;
&lt;br /&gt;
In this step you will install Alpine Linux in the &amp;lt;code&amp;gt;/mnt/&amp;lt;/code&amp;gt; directory, which contains the mounted file system structure:&lt;br /&gt;
&lt;br /&gt;
Install Alpine Linux:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# setup-disk -m sys /mnt/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The installer downloads the latest packages to install the base installation. Additionally, the installer automatically creates the entries for the mount points in the &amp;lt;code&amp;gt;fstab&amp;lt;/code&amp;gt; file, which are currently mounted in the &amp;lt;code&amp;gt;/mnt/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
{{Note|The automatic writing of the master boot record (MBR) fails in this step. You will write the MBR later manually to the disk.}}&lt;br /&gt;
&lt;br /&gt;
To enable the operating system to decrypt the PV at boot time, create the &amp;lt;code&amp;gt;/mnt/etc/crypttab&amp;lt;/code&amp;gt; file. Enter the following line into the file to decrypt the &amp;lt;code&amp;gt;/dev/vda2&amp;lt;/code&amp;gt; partition using the &amp;lt;code&amp;gt;luks&amp;lt;/code&amp;gt; module and map it to the &amp;lt;code&amp;gt;lvmcrypt&amp;lt;/code&amp;gt; name:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;lvmcrypt    /dev/vda2    none    luks&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The swap LV is not automatically added to the &amp;lt;code&amp;gt;fstab&amp;lt;/code&amp;gt; file. To add it manually, add the following line to the &amp;lt;code&amp;gt;/mnt/etc/fstab&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev/vg0/swap    swap    swap    defaults    0 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;lt;code&amp;gt;/mnt/etc/mkinitfs/mkinitfs.conf&amp;lt;/code&amp;gt; file and append the &amp;lt;code&amp;gt;cryptsetup&amp;lt;/code&amp;gt; module to the &amp;lt;code&amp;gt;features&amp;lt;/code&amp;gt; parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;features=&amp;quot;ata base ide scsi usb virtio ext4 lvm &amp;lt;u&amp;gt;cryptsetup&amp;lt;/u&amp;gt;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|Alpine Linux uses the &amp;lt;code&amp;gt;en-us&amp;lt;/code&amp;gt; keyboard mapping by default when prompting for the password to decrypt the partition at boot time. If you changed the keyboard mapping in the temporary environment and want to use it at the boot password prompt, be sure to also add the &amp;lt;code&amp;gt;keymap&amp;lt;code&amp;gt; feature to the list above.}}&lt;br /&gt;
&lt;br /&gt;
Rebuild the initial RAM disk:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# mkinitfs -c /mnt/etc/mkinitfs/mkinitfs.conf -b /mnt/ $(ls /mnt/lib/modules/)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command uses the settings from the &amp;lt;code&amp;gt;mkinitfs.conf&amp;lt;/code&amp;gt; file set in the &amp;lt;code&amp;gt;-c&amp;lt;/code&amp;gt; parameter to generate the RAM disk. The command is executed in the &amp;lt;code&amp;gt;/mnt/&amp;lt;/code&amp;gt; directory and the RAM disk is generated using the modules for the installed kernel. Without setting the kernel version using the &amp;lt;code&amp;gt;$(ls /mnt/lib/modules/&amp;lt;/code&amp;gt;) option, &amp;lt;code&amp;gt;mkinitfs&amp;lt;/code&amp;gt; tries to generate the RAM disk using the kernel version installed in the temporary environment, which can differ from the latest one installed by the &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; utility.&lt;br /&gt;
&lt;br /&gt;
== Installing a bootloader ==&lt;br /&gt;
=== Syslinux ===&lt;br /&gt;
&lt;br /&gt;
Format the &amp;lt;code&amp;gt;/dev/vda1&amp;lt;/code&amp;gt; device for the &amp;lt;code&amp;gt;/boot/&amp;lt;/code&amp;gt; partition using the ext4 file system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# mkfs.ext4 /dev/vda1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/mnt/boot/&amp;lt;/code&amp;gt; directory and mount the &amp;lt;code&amp;gt;/dev/vda1&amp;lt;/code&amp;gt; partition in this directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /mnt/boot/&lt;br /&gt;
# mount -t ext4 /dev/vda1 /mnt/boot/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install the Syslinux package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# apk add syslinux&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;lt;code&amp;gt;/mnt/etc/update-extlinux.conf&amp;lt;/code&amp;gt; file and append the following kernel options to the &amp;lt;code&amp;gt;default_kernel_opts&amp;lt;/code&amp;gt; parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;default_kernel_opts=&amp;quot;... &amp;lt;u&amp;gt;cryptroot=/dev/vda2 cryptdm=lvmcrypt&amp;lt;/u&amp;gt;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: The &amp;lt;code&amp;gt;cryptroot&amp;lt;/code&amp;gt; parameter sets the name of the device that contains the root file system. The &amp;lt;code&amp;gt;cryptdm&amp;lt;/code&amp;gt; parameter sets the name of the mapping previously set in the &amp;lt;code&amp;gt;crypttab&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Because the &amp;lt;code&amp;gt;update-extlinux&amp;lt;/code&amp;gt; utility operators only on the &amp;lt;code&amp;gt;/boot/&amp;lt;/code&amp;gt; directory, temporarily change the root to the &amp;lt;code&amp;gt;/mnt/&amp;lt;/code&amp;gt; directory and update the boot loader configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# chroot /mnt/&lt;br /&gt;
# update-extlinux&lt;br /&gt;
# exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Ignore the errors the &amp;lt;code&amp;gt;update-extlinux&amp;lt;/code&amp;gt; utility displays.&lt;br /&gt;
&lt;br /&gt;
Write the MBR to the &amp;lt;code&amp;gt;/dev/vda&amp;lt;/code&amp;gt; device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# dd bs=440 count=1 conv=notrunc if=/mnt/usr/share/syslinux/mbr.bin of=/dev/vda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Grub on EFI ===&lt;br /&gt;
&lt;br /&gt;
Format the &amp;lt;code&amp;gt;/dev/vda1&amp;lt;/code&amp;gt; device for the &amp;lt;code&amp;gt;/boot/&amp;lt;/code&amp;gt; partition using the FAT32 file system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add dosfstools&lt;br /&gt;
# mkfs.fat -F32 /dev/vda1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/mnt/boot/&amp;lt;/code&amp;gt; directory and mount the &amp;lt;code&amp;gt;/dev/vda1&amp;lt;/code&amp;gt; partition in this directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /mnt/boot/&lt;br /&gt;
# mount /dev/vda1 /mnt/boot/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;lt;code&amp;gt;/mnt/etc/default/grub&amp;lt;/code&amp;gt; file and add the following kernel options to the &amp;lt;code&amp;gt;GRUB_CMDLINE_LINUX_DEFAULT&amp;lt;/code&amp;gt; parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cryptroot=/dev/vda2 cryptdm=lvmcrypt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;cryptroot&amp;lt;/code&amp;gt; parameter sets the name of the device that contains the root file system. The &amp;lt;code&amp;gt;cryptdm&amp;lt;/code&amp;gt; parameter sets the name of the mapping previously set in the &amp;lt;code&amp;gt;crypttab&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Mount the required filesystems for the Grub EFI installer to the installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mount -t proc /proc /mnt/proc&lt;br /&gt;
# mount --rbind /dev /mnt/dev&lt;br /&gt;
# mount --make-rslave /mnt/dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then chroot in and use &amp;lt;code&amp;gt;grub-install&amp;lt;/code&amp;gt; to install Grub.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# (chroot) chroot /mnt&lt;br /&gt;
# (chroot) apk add grub grub-efi efibootmgr&lt;br /&gt;
# (chroot) grub-install --target=x86_64-efi --efi-directory=/boot&lt;br /&gt;
# (chroot) grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
# (chroot) exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unmounting the Volumes and Partitions ==&lt;br /&gt;
&lt;br /&gt;
Umount &amp;lt;code&amp;gt;/mnt/boot/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/mnt/&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# umount /mnt/boot/&lt;br /&gt;
# umount /mnt/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you mounted further partitions or LVs below &amp;lt;code&amp;gt;/mnt/&amp;lt;/code&amp;gt;, you must first unmount all of them before you can unmount &amp;lt;code&amp;gt;/mnt/&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
Disable the swap partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# swapoff -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deactivate the VG:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# vgchange -a n&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Close the &amp;lt;code&amp;gt;lvmcrypt&amp;lt;/code&amp;gt; device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# cryptsetup luksClose lvmcrypt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reboot the system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== General Procedure ==&lt;br /&gt;
&lt;br /&gt;
In case your system fails to boot, you can verify the settings and fix incorrect configurations.&lt;br /&gt;
&lt;br /&gt;
Reboot and do the steps in [[#Preparing_the_Temporary_Installation_Environment|Prepare the temporary installation environment]] again.&lt;br /&gt;
&lt;br /&gt;
Activate the VGs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# vgchange -a y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[#Mounting_the_File_Systems|Mount the file systems]]&lt;br /&gt;
&lt;br /&gt;
Verify that you run the steps described in the [[#Installing_Alpine_Linux|Installing Alpine Linux]] section correctly. Update the configuration if necessary.&lt;br /&gt;
&lt;br /&gt;
[[#Unmounting_the_Volumes_and_Partitions|Unmount the volumes and partitions]]&lt;br /&gt;
&lt;br /&gt;
= Hardening =&lt;br /&gt;
&lt;br /&gt;
* To harden, you should disable DMA[https://old.iseclab.org/papers/acsac2012dma.pdf] and install a hardened version of AES (TRESOR[https://www1.informatik.uni-erlangen.de/tresor] or Loop-Amnesia[http://moongate.ydns.eu/amnesia.html]) since by default cryptsetup with luks uses AES by default.&lt;br /&gt;
* Disable DMA in the BIOS and set the password for the BIOS according to Wikipedia.[https://en.wikipedia.org/wiki/DMA_attack]&lt;br /&gt;
* Blacklist kernel modules that use DMA and any unused expansion modules (FireWire, CardBus, ExpressCard, Thunderbolt, USB 3.0, PCI Express and hotplug modules) that use DMA.&lt;br /&gt;
&lt;br /&gt;
[[Category:Storage]]&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>PureTryOut</name></author>
	</entry>
</feed>