<?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=Viridian</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=Viridian"/>
	<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/wiki/Special:Contributions/Viridian"/>
	<updated>2026-04-28T07:47:59Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Installing_Alpine_in_a_virtual_machine&amp;diff=21667</id>
		<title>Installing Alpine in a virtual machine</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Installing_Alpine_in_a_virtual_machine&amp;diff=21667"/>
		<updated>2022-03-20T17:30:56Z</updated>

		<summary type="html">&lt;p&gt;Viridian: /* VMware */ Link also to ESXi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will walk you through how to setup a virtual machine for AlpineLinux installation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= VirtualBox =&lt;br /&gt;
&lt;br /&gt;
This guide describes a standard install of Alpine within a Virtual Box VM. (virtual machine)&lt;br /&gt;
&lt;br /&gt;
Oracle VM [http://virtualbox.org VirtualBox] runs one or more virtual x86 or x64 guests on a host computer.&amp;lt;BR&amp;gt;&lt;br /&gt;
This enables you to install and test Alpine on your main computer almost as you would any other program.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
== Install Virtual Box on host ==&lt;br /&gt;
&lt;br /&gt;
First you&#039;ll need to download and install Virtual Box on your host computer. Either from the official homepage (for Windows, OS X or Solaris) or from your distribution’s repository (for Linux). &lt;br /&gt;
&lt;br /&gt;
Virtual Box consists of two components: &lt;br /&gt;
&lt;br /&gt;
* VirtualBox platform package&lt;br /&gt;
* Oracle VM VirtualBox Extension Pack&lt;br /&gt;
&lt;br /&gt;
Install both and start VirtualBox to check for proper operation. If you have problems, consult the VirtualBox user manual or one of the support sites for Virtual Box.&lt;br /&gt;
&lt;br /&gt;
== Download Alpine ==&lt;br /&gt;
&lt;br /&gt;
Download the [https://www.alpinelinux.org/downloads/ Virtual Alpine ISO], which is optimized for virtual systems, from the Alpine Download section. Save it in a location where you can find it easily. &lt;br /&gt;
&lt;br /&gt;
== Setting up virtual PC ==&lt;br /&gt;
&lt;br /&gt;
Start Virtual Box. You will see a mostly empty window with a couple symbols in the upper left corner. The leftmost icon is a multi pointed star. If you hover your mouse over it, the tooltip will say “New”. &lt;br /&gt;
&lt;br /&gt;
Click on the multi pointed star to create a new machine. A window will pop up, asking you some questions about the virtual (guest) computer you want to create.&lt;br /&gt;
&lt;br /&gt;
# Name: Choose anything you like. e.g. “Alpine”.&lt;br /&gt;
# Type: Linux&lt;br /&gt;
# Version: Other Linux, either 64 bit or 32 bit. Choose 64 bit if you downloaded the x86_64 Alpine-ISO, or 32 bit if you downloaded the x86 Alpine-ISO.&lt;br /&gt;
# Use the default values for the other questions, simply click “next” or “create” until the dialogue finishes.&lt;br /&gt;
&lt;br /&gt;
You will see a new entry in Virtual Box, called Alpine (or the name you chose during step 1 in the dialogue above). Click on it for more information about your guest.&lt;br /&gt;
&lt;br /&gt;
One of the entries should read Mass storage, and offer an IDE controller with a primary master (the virtual hard disc) and a secondary master (the virtual optical drive). &lt;br /&gt;
&lt;br /&gt;
Click on the secondary master. A context menu will pop up. Select the entry “choose image” and open the Alpine ISO you downloaded earlier.&lt;br /&gt;
&lt;br /&gt;
Once that is done, click on the green start arrow on the menu bar.&lt;br /&gt;
&lt;br /&gt;
== Install Alpine on the virtual computer ==&lt;br /&gt;
&lt;br /&gt;
Follow the steps described in the [[Installation#Installation_Handbook|Installation Handbook]], just as if you were installing Alpine on a real PC.&lt;br /&gt;
&lt;br /&gt;
{{Tip|Do not reboot your virtual box after the installation. Instead, shut down the virtual machine, remove the Alpine ISO from the virtual optical drive, then restart the virtual machine.}}&lt;br /&gt;
&lt;br /&gt;
== Install drivers for Virtual Box ==&lt;br /&gt;
&lt;br /&gt;
Once you successfully reboot into the Alpine VM, there are two steps left:&lt;br /&gt;
&lt;br /&gt;
# Enable the [[Enable_Community_Repository|Community Respository]]&lt;br /&gt;
# Enable [[VirtualBox_shared_folders|VirtualBox shared folders]]&lt;br /&gt;
&lt;br /&gt;
These two steps install all drivers that other programs might request, and activate several comfort functions.&lt;br /&gt;
&lt;br /&gt;
{{Note|The Virtualbox webcam driver is not present in the kernel provided with the Virtual Alpine ISO. To use the webcam whilst keeping the installation footprint small, install the &amp;lt;code&amp;gt;linux-firmware-none&amp;lt;/code&amp;gt; package using &amp;lt;b&amp;gt;apk&amp;lt;/b&amp;gt;, then install the &amp;lt;code&amp;gt;linux-lts&amp;lt;/code&amp;gt; package to download a kernel with the appropriate drivers without pulling in hundreds of MB of uneeded firmware files. Uninstall the &amp;lt;code&amp;gt;linux-virt&amp;lt;/code&amp;gt; package and reboot to use the new kernel.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= KVM / QEMU =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= VMware =&lt;br /&gt;
&lt;br /&gt;
See instructions for installing Alpine on [[Install_Alpine_on_VMware|VMware]] and [[Install_Alpine_on_VMware_ESXi|VMware ESXi]].&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Post installation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtualization]]&lt;/div&gt;</summary>
		<author><name>Viridian</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Installing_Alpine_in_a_virtual_machine&amp;diff=21666</id>
		<title>Installing Alpine in a virtual machine</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Installing_Alpine_in_a_virtual_machine&amp;diff=21666"/>
		<updated>2022-03-20T17:30:05Z</updated>

		<summary type="html">&lt;p&gt;Viridian: /* VMware */ for now, link to the VMware page to aid navigation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will walk you through how to setup a virtual machine for AlpineLinux installation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= VirtualBox =&lt;br /&gt;
&lt;br /&gt;
This guide describes a standard install of Alpine within a Virtual Box VM. (virtual machine)&lt;br /&gt;
&lt;br /&gt;
Oracle VM [http://virtualbox.org VirtualBox] runs one or more virtual x86 or x64 guests on a host computer.&amp;lt;BR&amp;gt;&lt;br /&gt;
This enables you to install and test Alpine on your main computer almost as you would any other program.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
== Install Virtual Box on host ==&lt;br /&gt;
&lt;br /&gt;
First you&#039;ll need to download and install Virtual Box on your host computer. Either from the official homepage (for Windows, OS X or Solaris) or from your distribution’s repository (for Linux). &lt;br /&gt;
&lt;br /&gt;
Virtual Box consists of two components: &lt;br /&gt;
&lt;br /&gt;
* VirtualBox platform package&lt;br /&gt;
* Oracle VM VirtualBox Extension Pack&lt;br /&gt;
&lt;br /&gt;
Install both and start VirtualBox to check for proper operation. If you have problems, consult the VirtualBox user manual or one of the support sites for Virtual Box.&lt;br /&gt;
&lt;br /&gt;
== Download Alpine ==&lt;br /&gt;
&lt;br /&gt;
Download the [https://www.alpinelinux.org/downloads/ Virtual Alpine ISO], which is optimized for virtual systems, from the Alpine Download section. Save it in a location where you can find it easily. &lt;br /&gt;
&lt;br /&gt;
== Setting up virtual PC ==&lt;br /&gt;
&lt;br /&gt;
Start Virtual Box. You will see a mostly empty window with a couple symbols in the upper left corner. The leftmost icon is a multi pointed star. If you hover your mouse over it, the tooltip will say “New”. &lt;br /&gt;
&lt;br /&gt;
Click on the multi pointed star to create a new machine. A window will pop up, asking you some questions about the virtual (guest) computer you want to create.&lt;br /&gt;
&lt;br /&gt;
# Name: Choose anything you like. e.g. “Alpine”.&lt;br /&gt;
# Type: Linux&lt;br /&gt;
# Version: Other Linux, either 64 bit or 32 bit. Choose 64 bit if you downloaded the x86_64 Alpine-ISO, or 32 bit if you downloaded the x86 Alpine-ISO.&lt;br /&gt;
# Use the default values for the other questions, simply click “next” or “create” until the dialogue finishes.&lt;br /&gt;
&lt;br /&gt;
You will see a new entry in Virtual Box, called Alpine (or the name you chose during step 1 in the dialogue above). Click on it for more information about your guest.&lt;br /&gt;
&lt;br /&gt;
One of the entries should read Mass storage, and offer an IDE controller with a primary master (the virtual hard disc) and a secondary master (the virtual optical drive). &lt;br /&gt;
&lt;br /&gt;
Click on the secondary master. A context menu will pop up. Select the entry “choose image” and open the Alpine ISO you downloaded earlier.&lt;br /&gt;
&lt;br /&gt;
Once that is done, click on the green start arrow on the menu bar.&lt;br /&gt;
&lt;br /&gt;
== Install Alpine on the virtual computer ==&lt;br /&gt;
&lt;br /&gt;
Follow the steps described in the [[Installation#Installation_Handbook|Installation Handbook]], just as if you were installing Alpine on a real PC.&lt;br /&gt;
&lt;br /&gt;
{{Tip|Do not reboot your virtual box after the installation. Instead, shut down the virtual machine, remove the Alpine ISO from the virtual optical drive, then restart the virtual machine.}}&lt;br /&gt;
&lt;br /&gt;
== Install drivers for Virtual Box ==&lt;br /&gt;
&lt;br /&gt;
Once you successfully reboot into the Alpine VM, there are two steps left:&lt;br /&gt;
&lt;br /&gt;
# Enable the [[Enable_Community_Repository|Community Respository]]&lt;br /&gt;
# Enable [[VirtualBox_shared_folders|VirtualBox shared folders]]&lt;br /&gt;
&lt;br /&gt;
These two steps install all drivers that other programs might request, and activate several comfort functions.&lt;br /&gt;
&lt;br /&gt;
{{Note|The Virtualbox webcam driver is not present in the kernel provided with the Virtual Alpine ISO. To use the webcam whilst keeping the installation footprint small, install the &amp;lt;code&amp;gt;linux-firmware-none&amp;lt;/code&amp;gt; package using &amp;lt;b&amp;gt;apk&amp;lt;/b&amp;gt;, then install the &amp;lt;code&amp;gt;linux-lts&amp;lt;/code&amp;gt; package to download a kernel with the appropriate drivers without pulling in hundreds of MB of uneeded firmware files. Uninstall the &amp;lt;code&amp;gt;linux-virt&amp;lt;/code&amp;gt; package and reboot to use the new kernel.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= KVM / QEMU =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= VMware =&lt;br /&gt;
&lt;br /&gt;
See instructions for [[Install_Alpine_on_VMware|installing Alpine on VMware]].&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Post installation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtualization]]&lt;/div&gt;</summary>
		<author><name>Viridian</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Install_Alpine_on_VMware_Workstation&amp;diff=21665</id>
		<title>Install Alpine on VMware Workstation</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Install_Alpine_on_VMware_Workstation&amp;diff=21665"/>
		<updated>2022-03-20T17:28:45Z</updated>

		<summary type="html">&lt;p&gt;Viridian: Add settings info, fix formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There&#039;s at least 2 ways you can setup Alpine on a VMware box.&lt;br /&gt;
&lt;br /&gt;
== Option 1: sys mode, traditional hard-disk install (preferable for a dev box) ==&lt;br /&gt;
&lt;br /&gt;
# Create a virtual machine (Linux, other 3.x kernel 64 bit)&lt;br /&gt;
## Add a hard drive with your desired size&lt;br /&gt;
## Add a CD/DVD to the VM that points to the Alpine ISO you downloaded&lt;br /&gt;
## Disable &amp;quot;UEFI secure boot&amp;quot; in Settings -&amp;gt; Advanced&lt;br /&gt;
# Boot the VM and log in with username &amp;quot;root&amp;quot;&lt;br /&gt;
## run &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;&lt;br /&gt;
## choose &#039;&#039;&#039;sys&#039;&#039;&#039; when asked about the disk mode ([[Installation#System_Disk_Mode|sys mode]] will install Alpine to the disk)&lt;br /&gt;
## choose the default hard disk mounted by VMware&lt;br /&gt;
## reboot after the installation is complete&lt;br /&gt;
&lt;br /&gt;
== Option 2: USB mode, no data preserved between reboots ==&lt;br /&gt;
&lt;br /&gt;
# Create a virtual machine (Linux, other 3.x kernel 64 bit)&lt;br /&gt;
## add a small hard drive, e.g. 100MB for saving configs (like an usb stick)&lt;br /&gt;
## Add a CD/DVD to the VM that points to the Alpine ISO you downloaded&lt;br /&gt;
# boot into the VM&lt;br /&gt;
# press F2 on boot to enter the BIOS &lt;br /&gt;
## change the boot order so that it boots from CD, then HD, then floppy (or whatever - as long as CD is first)&lt;br /&gt;
# boot the machine&lt;br /&gt;
# now run the following commands:&lt;br /&gt;
## &amp;lt;code&amp;gt;mkfs.vfat /dev/sda&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;mount /dev/sda /media/usb&amp;lt;/code&amp;gt; (Or try: &amp;lt;code&amp;gt;mount -t vfat /dev/sda /media/usb&amp;lt;/code&amp;gt;)&lt;br /&gt;
## &amp;lt;code&amp;gt;grep /dev/sda /proc/mounts &amp;gt;&amp;gt; /etc/fstab&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; (select no disk, save configs to &#039;usb&#039;)&lt;br /&gt;
## &amp;lt;code&amp;gt;lbu ci usb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the VM hangs at the boot prompt, reboot the VM, and when the boot prompt appears again, type &amp;lt;code&amp;gt;pax_nouderef&amp;lt;/code&amp;gt; (i.e. append it to the kernel options) and press Enter. This should allow normal boot-up. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to reboot and it should retain your settings because they were saved to your &amp;quot;usb-disk&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== VMware Tools ==&lt;br /&gt;
&lt;br /&gt;
More info on this page: [[Open-vm-tools]]&lt;br /&gt;
&lt;br /&gt;
For VMware Tools support you need to install the package [https://pkgs.alpinelinux.org/package/edge/community/x86_64/open-vm-tools open-vm-tools].&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtualization]]&lt;/div&gt;</summary>
		<author><name>Viridian</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Alpine_configuration_management_scripts&amp;diff=21640</id>
		<title>Alpine configuration management scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Alpine_configuration_management_scripts&amp;diff=21640"/>
		<updated>2022-03-17T08:49:32Z</updated>

		<summary type="html">&lt;p&gt;Viridian: Mention setup-alpine also supports FTP URLs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Feature descriptions for available Alpine Linux setup scripts ({{Path|/sbin/setup-*}}).&lt;br /&gt;
&lt;br /&gt;
These scripts can be installed by using &amp;lt;code&amp;gt;apk&amp;lt;/code&amp;gt; to install the &amp;lt;code&amp;gt;alpine-conf&amp;lt;/code&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have an Alpine Linux install, you can find and examine the scripts in their [https://github.com/alpinelinux/alpine-conf git repository].&lt;br /&gt;
&lt;br /&gt;
== setup-alpine ==&lt;br /&gt;
&lt;br /&gt;
This is the main Alpine configuration and installation script.&lt;br /&gt;
&lt;br /&gt;
The script interactively walks the user through executing several auxiliary &amp;lt;code&amp;gt;setup-*&amp;lt;/code&amp;gt; scripts, in the order shown below.&lt;br /&gt;
&lt;br /&gt;
The bracketed options represent example configuration choices, formatted as they may be supplied when manually calling the auxiliary setup scripts, or using a &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; &amp;quot;answerfile&amp;quot; (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;setup-keymap&amp;lt;/code&amp;gt; [us us]&lt;br /&gt;
# [[#setup-hostname|setup-hostname]] [-n alpine-test]&lt;br /&gt;
# [[#setup-interfaces|setup-interfaces]] [-i &amp;lt; interfaces-file]&lt;br /&gt;
# &amp;lt;code&amp;gt;/etc/init.d/networking --quiet start &amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
# if none of the networking interfaces were configured using dhcp, then: &amp;lt;code&amp;gt;[[#setup-dns|setup-dns]]&amp;lt;/code&amp;gt; [-d example.com -n &amp;quot;192.168.0.1 [...]&amp;quot;]&lt;br /&gt;
# set the root password&lt;br /&gt;
# if not in quick mode, then: &amp;lt;code&amp;gt;[[#setup-timezone|setup-timezone]]&amp;lt;/code&amp;gt; [-z UTC | -z America/New_York | -p EST+5]&lt;br /&gt;
# enable the new hostname (&amp;lt;code&amp;gt;/etc/init.d/hostname --quiet restart&amp;lt;/code&amp;gt;)&lt;br /&gt;
# add &amp;lt;code&amp;gt;networking&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;urandom&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;boot&#039;&#039;&#039; rc level, and &amp;lt;code&amp;gt;acpid&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;crond&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;default&#039;&#039;&#039; rc level, and start the &#039;&#039;&#039;boot&#039;&#039;&#039; and &#039;&#039;&#039;default&#039;&#039;&#039; rc services&lt;br /&gt;
# extract the fully-qualified domain name and hostname from {{Path|/etc/resolv.conf}} and &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;, and update {{Path|/etc/hosts}}&lt;br /&gt;
# &amp;lt;code&amp;gt;[[#setup-proxy|setup-proxy]]&amp;lt;/code&amp;gt; [-q &amp;lt;nowiki&amp;gt;&amp;quot;http://webproxy:8080&amp;quot;&amp;lt;/nowiki&amp;gt;], and activate proxy if it was configured&lt;br /&gt;
# &amp;lt;code&amp;gt;setup-apkrepos&amp;lt;/code&amp;gt; [-r (to select a mirror randomly)]&lt;br /&gt;
# if not in quick mode, then: &amp;lt;code&amp;gt;[[#setup-sshd|setup-sshd]]&amp;lt;/code&amp;gt; [-c openssh | dropbear | none]&lt;br /&gt;
# if not in quick mode, then: &amp;lt;code&amp;gt;setup-ntp&amp;lt;/code&amp;gt; [-c chrony | openntpd | busybox | none]&lt;br /&gt;
# if not in quick mode, then: &amp;lt;code&amp;gt;DEFAULT_DISK=none&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;[[#setup-disk|setup-disk]]&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;-q&amp;lt;/code&amp;gt; [-m data /dev/sda] (see [[Installation#Installation_Overview]] about the disk modes)&lt;br /&gt;
# if installation mode selected during setup-disk was &amp;quot;data&amp;quot; instead of &amp;quot;sys&amp;quot;, then: &amp;lt;code&amp;gt;setup-lbu&amp;lt;/code&amp;gt; [/media/sdb1]&lt;br /&gt;
# if installation mode selected during setup-disk was &amp;quot;data&amp;quot; instead of &amp;quot;sys&amp;quot;, then: &amp;lt;code&amp;gt;setup-apkcache&amp;lt;/code&amp;gt; [/media/sdb1/cache | none]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; itself accepts the following command-line switches:&lt;br /&gt;
&lt;br /&gt;
{{Define|-h|Shows the up-to-date usage help message.}}&lt;br /&gt;
&lt;br /&gt;
{{Define|-a|Create an overlay file: this creates a temporary directory and saves its location in ROOT; however, the script doesn&#039;t export this variable so I think this feature isn&#039;t currently functional.}}&lt;br /&gt;
;-c &amp;lt;var&amp;gt;answerfile&amp;lt;/var&amp;gt;&lt;br /&gt;
:Create a new answerfile with default choices. You can edit the file and then invoke &amp;lt;code&amp;gt;setup-alpine -f &amp;lt;var&amp;gt;answerfile&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
;-f &amp;lt;var&amp;gt;answerfile&amp;lt;/var&amp;gt;&lt;br /&gt;
:Use an existing answerfile, which may override some or all of the interactive prompts. You can also specify a HTTP(S) or FTP URL for &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; to [https://gitlab.alpinelinux.org/alpine/alpine-conf/-/merge_requests/22 download] an answerfile from. Doing so will spin up a temporary networking config if one is not already active.&lt;br /&gt;
{{Define|-q|Run in &amp;quot;quick mode&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-hostname ==&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;setup-hostname&amp;lt;/code&amp;gt; [-h] [-n hostname]&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-h&#039;&#039;&#039; &amp;lt;var&amp;gt;Show help&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-n&#039;&#039;&#039; &amp;lt;var&amp;gt;Specify hostname&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This script allows quick and easy setup of the system hostname by writing it to {{Path|/etc/hostname}}.  The script prevents you from writing an invalid hostname (such as one that used invalid characters or starts with a &#039;-&#039; or is too long).&lt;br /&gt;
The script can be invoked manually or is called as part of the &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-interfaces ==&lt;br /&gt;
{{Cmd|setup-interfaces [-i &amp;amp;lt; &amp;lt;var&amp;gt;interfaces-file&amp;lt;/var&amp;gt;]}}&lt;br /&gt;
&lt;br /&gt;
Note that the contents of &amp;lt;var&amp;gt;interfaces-file&amp;lt;/var&amp;gt; has to be supplied as stdin, rather than naming the file as an additional argument. The contents should have the format of {{Path|/etc/network/interfaces}}, such as:&lt;br /&gt;
&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
     hostname alpine-test&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-dns ==&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;setup-dns&amp;lt;/code&amp;gt; [-h] [-d domain name] [-n name server]&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-h&#039;&#039;&#039; &amp;lt;var&amp;gt;Show help&amp;lt;/var&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-d&#039;&#039;&#039; &amp;lt;var&amp;gt;specify search domain name&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-n&#039;&#039;&#039; &amp;lt;var&amp;gt;name server IP&amp;lt;/var&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The setup-dns script is stored in {{Path|/sbin/setup-dns}} and allows quick and simple setup of DNS servers (and a DNS search domain if required).  Simply running &amp;lt;code&amp;gt;setup-dns&amp;lt;/code&amp;gt; will allow interactive use of the script, or the options can be specified.&lt;br /&gt;
&lt;br /&gt;
The information fed to this script is written to {{Path|/etc/resolv.conf}}&lt;br /&gt;
&lt;br /&gt;
Example usage (with 192.168.0.1 being the local router/dns-forwarder): {{Cmd|setup-dns -d example.org -n 192.168.0.1}}&lt;br /&gt;
&lt;br /&gt;
Example {{Path|/etc/resolv.conf}}:&lt;br /&gt;
&lt;br /&gt;
 search example.org&lt;br /&gt;
 nameserver 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
It can be run manually but is also invoked in the &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; script unless interfaces are configured for DHCP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-timezone ==&lt;br /&gt;
:&amp;lt;code&amp;gt;setup-timezone&amp;lt;/code&amp;gt; [-z UTC | -z America/New_York | -p EST+5]&lt;br /&gt;
&lt;br /&gt;
Can pre-select the timezone using either of these switches:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-z&#039;&#039;&#039; &amp;lt;var&amp;gt;subfolder of&amp;lt;/var&amp;gt; {{Path|/usr/share/zoneinfo}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-p&#039;&#039;&#039; &amp;lt;var&amp;gt;POSIX TZ format&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-proxy ==&lt;br /&gt;
:&amp;lt;code&amp;gt;setup-proxy&amp;lt;/code&amp;gt; [-hq] [PROXYURL]&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-h&#039;&#039;&#039; &amp;lt;var&amp;gt;Show help&amp;lt;/var&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-q&#039;&#039;&#039; &amp;lt;var&amp;gt;Quiet mode&amp;lt;/var&amp;gt; prevents changes from taking effect until after reboot&lt;br /&gt;
&lt;br /&gt;
This script requests the system proxy to use in the form &amp;lt;code&amp;gt;http://&amp;lt;proxyurl&amp;gt;:&amp;lt;port&amp;gt;&amp;lt;/code&amp;gt; for example:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://10.0.0.1:8080&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To set no system proxy use &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;.&lt;br /&gt;
This script exports the following environmental variables: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;http_proxy=$proxyurl&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;https_proxy=$proxyurl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ftp_proxy=$proxyurl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;$proxyurl&amp;lt;/code&amp;gt; is the value input.  &lt;br /&gt;
If &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; was chosen then the value it is set to a blank value (and so no proxy is used).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-apkrepos ==&lt;br /&gt;
:&amp;lt;code&amp;gt;setup-apkrepos&amp;lt;/code&amp;gt; [-fhr] [REPO...]&lt;br /&gt;
&lt;br /&gt;
Setup &amp;lt;code&amp;gt;apk&amp;lt;/code&amp;gt; repositories.&lt;br /&gt;
&lt;br /&gt;
options:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-f&#039;&#039;&#039;  &amp;lt;var&amp;gt;Detect and add fastest mirror&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-r&#039;&#039;&#039;  &amp;lt;var&amp;gt;Add a random mirror and do not prompt&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-1&#039;&#039;&#039;  &amp;lt;var&amp;gt;Add first mirror on the list (normally a CDN)&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is run as part of the &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-sshd ==&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;setup-sshd&amp;lt;/code&amp;gt; [-h] [-c choice of SSH daemon]&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-h&#039;&#039;&#039; &amp;lt;var&amp;gt;Show help&amp;lt;/var&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-c&#039;&#039;&#039; &amp;lt;var&amp;gt;SSH daemon&amp;lt;/var&amp;gt; where SSH daemon can be one of the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;openssh&amp;lt;/code&amp;gt; install the {{Pkg|openSSH}} daemon&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dropbear&amp;lt;/code&amp;gt; install the {{Pkg|dropbear}} daemon&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; Do not install an SSH daemon&lt;br /&gt;
&lt;br /&gt;
Example usage: {{Cmd|setup-sshd -c dropbear}}&lt;br /&gt;
&lt;br /&gt;
The setup-sshd script is stored in {{Path|/sbin/setup-sshd}} and allows quick and simple setup of either the OpenSSH or Dropbear SSH daemon &amp;amp; client. &lt;br /&gt;
It can be run manually but is also invoked in the &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-ntp ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;From [https://en.wikipedia.org/wiki/Network_Time_Protocol Wikipedia]&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Network Time Protocol (NTP)&#039;&#039;&#039; is a networking protocol for clock synchronization between computer systems over packet-switched, variable-latency data networks. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|usage: setup-ntp [-h] [-c choice of NTP daemon]&lt;br /&gt;
&lt;br /&gt;
Setup NTP time synchronization&lt;br /&gt;
&lt;br /&gt;
options:&lt;br /&gt;
 -h  Show this help&lt;br /&gt;
 -c  Choice of NTP daemon: busybox openntpd chrony none}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setup-ntp&amp;lt;/code&amp;gt; script is stored in {{Path|/sbin/setup-ntp}} and allows quick and simple setup of the NTP client,&lt;br /&gt;
It can be run manually but is also invoked in the &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-disk ==&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;DEFAULT_DISK=none setup-disk -q&amp;lt;/code&amp;gt; [-m data | sys] [&amp;lt;var&amp;gt;mountpoint directory&amp;lt;/var&amp;gt; | /dev/sda ...]&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;sys&amp;quot; mode, it&#039;s an installer, it permanently installs Alpine on the disk, in &amp;quot;data&amp;quot; mode, it provides a larger and persistent /var volume.&lt;br /&gt;
&lt;br /&gt;
This script accepts the following command-line switches:&lt;br /&gt;
&lt;br /&gt;
;-k &amp;lt;var&amp;gt;kernel flavor&amp;lt;/var&amp;gt;&lt;br /&gt;
;-o &amp;lt;var&amp;gt;apkovl file&amp;lt;/var&amp;gt;&lt;br /&gt;
:Restore system from &amp;lt;var&amp;gt;apkovl file&amp;lt;/var&amp;gt;&lt;br /&gt;
;-m data | sys&lt;br /&gt;
:Don&#039;t prompt for installation mode. With &#039;&#039;&#039;-m data&#039;&#039;&#039;, the supplied devices are formatted to use as a {{Path|/var}} volume.&lt;br /&gt;
{{Define|-r|Use RAID1 with a single disk (degraded mode)}}&lt;br /&gt;
{{Define|-L|Create and use volumes in a LVM group}}&lt;br /&gt;
;-s &amp;lt;var&amp;gt;swap size in MB&amp;lt;/var&amp;gt;&lt;br /&gt;
:Use 0 to disable swap&lt;br /&gt;
{{Define|-q|Exit quietly if no disks are found}}&lt;br /&gt;
{{Define|-v|Verbose mode}}&lt;br /&gt;
&lt;br /&gt;
The script also honors the following environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BOOT_SIZE&amp;lt;/code&amp;gt;&lt;br /&gt;
:Size of the boot partition in MB; defaults to 100. Only used if &#039;&#039;&#039;-m sys&#039;&#039;&#039; is specified or interactively selected.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SWAP_SIZE&amp;lt;/code&amp;gt;&lt;br /&gt;
:Size of the swap volume in MB; set to 0 to disable swap. If not specified, will default to twice RAM, up to 4096, but won&#039;t be more than 1/3 the size of the smallest disk, and if less than 64 will just be 0. Only used if &#039;&#039;&#039;-m sys&#039;&#039;&#039; is specified or interactively selected.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ROOTFS&amp;lt;/code&amp;gt;&lt;br /&gt;
:Filesystem to use for the / volume; defaults to ext4. Only used if &#039;&#039;&#039;-m sys&#039;&#039;&#039; is specified or interactively selected. Supported filesystems are: ext2 ext3 ext4 [[Btrfs|btrfs]] xfs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BOOTFS&amp;lt;/code&amp;gt;&lt;br /&gt;
:Filesystem to use for the /boot volume; defaults to ext4. Only used if &#039;&#039;&#039;-m sys&#039;&#039;&#039; is specified or interactively selected. Supported filesystems are: ext2 ext3 ext4 [[Btrfs|btrfs]] xfs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;VARFS&amp;lt;/code&amp;gt;&lt;br /&gt;
:Filesystem to use for the /var volume; defaults to ext4. Only used if &#039;&#039;&#039;-m data&#039;&#039;&#039; is specified or interactively selected. Supported filesystems are: ext2 ext3 ext4 [[Btrfs|btrfs]] xfs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SYSROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
:Mountpoint to use when creating volumes and doing traditional disk install (&#039;&#039;&#039;-m sys&#039;&#039;&#039;). Defaults to {{Path|/mnt}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MBR&amp;lt;/code&amp;gt;&lt;br /&gt;
:Path of MBR binary code, defaults to {{Path|/usr/share/syslinux/mbr.bin}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BOOTLOADER&amp;lt;/code&amp;gt;&lt;br /&gt;
:Bootloader to use, defaults to syslinux. Supported bootloaders are: grub syslinux zipl.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DISKLABEL&amp;lt;/code&amp;gt;&lt;br /&gt;
:Disklabel to use, defaults to dos. Supported disklabels are: dos gpt eckd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Writes to /tmp/ovlfiles, /tmp/alpine-install-diskmode.out, and /tmp/sfdisk.out but that never seems to be used elsewhere. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Partitioning ===&lt;br /&gt;
&lt;br /&gt;
If you have complex partitioning needs, that go beyond above alpine-disk options, you can partition, format, and mount your volumes manually, and then just supply the root mountpoint to &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt;. Doing so implicitly behaves as though &#039;&#039;&#039;-m sys&#039;&#039;&#039; had also been specified.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up disks manually]] for more information.&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. The array will always be [https://en.m.wikipedia.org/wiki/Standard_RAID_levels#RAID_1 RAID1] (and [https://raid.wiki.kernel.org/index.php/RAID_superblock_formats#The_version-0.90_Superblock_Format --metadata=0.90]) for the /boot volumes, but will be [https://en.m.wikipedia.org/wiki/Standard_RAID_levels#RAID_5 RAID5] (and [https://raid.wiki.kernel.org/index.php/RAID_superblock_formats#The_version-1_Superblock_Format --metadata=1.2] for non-boot volumes when 3 or more devices are supplied.&lt;br /&gt;
&lt;br /&gt;
If you instead want to build your RAID array manually, see [[Setting up a software RAID array]]. Then format and mount the disks, and supply the root mountpoint to &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt;.&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. The group and volumes created by the script will have the following names:&lt;br /&gt;
&lt;br /&gt;
* volume group: &#039;&#039;&#039;vg0&#039;&#039;&#039;&lt;br /&gt;
* swap volume: &#039;&#039;&#039;lv_swap&#039;&#039;&#039; (only created when swap size &amp;gt; 0)&lt;br /&gt;
* root volume: &#039;&#039;&#039;lv_root&#039;&#039;&#039; (only created when &#039;&#039;&#039;-m sys&#039;&#039;&#039; is specified or interactively selected)&lt;br /&gt;
* var volume: &#039;&#039;&#039;lv_var&#039;&#039;&#039; (only created when &#039;&#039;&#039;-m data&#039;&#039;&#039; is specified or interactively selected)&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;lv_var&#039;&#039;&#039; or &#039;&#039;&#039;lv_root&#039;&#039;&#039; volumes are created to occupy all remaining space in the volume group.&lt;br /&gt;
&lt;br /&gt;
If you need to change any of these settings, you can use &amp;lt;code&amp;gt;vgrename&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lvrename&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lvreduce&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;lvresize&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you instead want to build your LVM system manually, see [[Setting up Logical Volumes with LVM]]. Then format and mount the disks, and supply the root mountpoint to &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=Setup-Disk Usage=&lt;br /&gt;
&lt;br /&gt;
usage: setup-disk [-hqr] [-k kernelflavor] [-m MODE] [-o apkovl] [-s SWAPSIZE]&lt;br /&gt;
		  [MOUNTPOINT | DISKDEV...]&lt;br /&gt;
&lt;br /&gt;
Install alpine on harddisk.&lt;br /&gt;
&lt;br /&gt;
If MOUNTPOINT is specified, then do a traditional disk install with MOUNTPOINT&lt;br /&gt;
as root.&lt;br /&gt;
&lt;br /&gt;
If DISKDEV is specified, then use the specified disk(s) without asking. If&lt;br /&gt;
multiple disks are specified then set them up in a RAID array. If there are&lt;br /&gt;
mode than 2 disks, then use raid level 5 instead of raid level 1.&lt;br /&gt;
&lt;br /&gt;
options:&lt;br /&gt;
 -h  Show this help&lt;br /&gt;
 -m  Use disk for MODE without asking, where MODE is either &#039;data&#039; or &#039;root&#039;&lt;br /&gt;
 -o  Restore system from given apkovl file&lt;br /&gt;
 -k  Use kernelflavor instead of $KERNEL_FLAVOR&lt;br /&gt;
 -L  Use LVM to manage partitions&lt;br /&gt;
 -q  Exit quietly if no disks are found&lt;br /&gt;
 -r  Enable software RAID1 with single disk&lt;br /&gt;
 -s  Use SWAPSIZE MB instead of $SWAP_SIZE MB for swap (Use 0 to disable swap)&lt;br /&gt;
 -v  Be more verbose about what is happening&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Disk Install Styles==&lt;br /&gt;
&lt;br /&gt;
You can select between &#039;sys&#039; or &#039;data&#039;.&lt;br /&gt;
&lt;br /&gt;
sys:&lt;br /&gt;
  This mode is a traditional disk install. The following partitions will be&lt;br /&gt;
  created on the disk: /boot, / (filesystem root) and swap.&lt;br /&gt;
    &lt;br /&gt;
  This mode may be used for development boxes, desktops, virtual servers, etc.&lt;br /&gt;
&lt;br /&gt;
data:&lt;br /&gt;
  This mode uses your disk(s) for data storage, not for the operating system.&lt;br /&gt;
  The system itself will run from tmpfs (RAM).&lt;br /&gt;
&lt;br /&gt;
  Use this mode if you only want to use the disk(s) for a mailspool, databases,&lt;br /&gt;
  logs, etc.&lt;br /&gt;
&lt;br /&gt;
none:&lt;br /&gt;
  Run without installing to disk.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-lbu ==&lt;br /&gt;
&lt;br /&gt;
This script will only be invoked for by &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; when installing &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; installation types (ramdisk)&lt;br /&gt;
&lt;br /&gt;
It configures where &amp;lt;code&amp;gt;lbu commit&amp;lt;/code&amp;gt; will store the .apkovl backup. See [[Alpine local backup]] for more information.&lt;br /&gt;
&lt;br /&gt;
When started, &amp;lt;code&amp;gt;setup-lbu&amp;lt;/code&amp;gt; will prompt where to store your data. The options it will prompt for will be taken from the directories found in &amp;lt;code&amp;gt;/media&amp;lt;/code&amp;gt; (except for &amp;lt;code&amp;gt;cdrom&amp;lt;/code&amp;gt;). [not sure how these are mounted: are they automatically mounted by setup-lbu? Does the user have to manually mount using another tty?]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-apkcache ==&lt;br /&gt;
&lt;br /&gt;
This script will only be invoked for by &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; when installing &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; installation types (ramdisk)&lt;br /&gt;
&lt;br /&gt;
It configures where to save the apk package files. The apkcache is where apk stores downloaded packages, such that the system does not need to download them again on each reboot, and doesn&#039;t have to depend on the network. See [[Local APK cache]] for a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
You should be able to use a partition that you set up in the previous steps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-bootable ==&lt;br /&gt;
This is a standalone script; it&#039;s not invoked by &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; but must be run manually.&lt;br /&gt;
&lt;br /&gt;
It allows to create boot media that boots the system running from RAM memory (diskless) like the installation images, but using a writable (i.e. not iso9660) filesystem. So that it can also serve to store local customizations (e.g. apkovl files and cached packages). &lt;br /&gt;
&lt;br /&gt;
First, the script copies files from an ISO image (as file on a CD/DVD/USB etc.) onto a USB-Stick/CompactFlash/SDCard etc., or harddisk partition. And then, it installs the syslinux bootloader to make the device bootable.&lt;br /&gt;
&lt;br /&gt;
However, its current syslinux installation seems to fail on non-FAT32 partitions. So in these cases, you may start over with a FAT32 filesystem, or rather with the desired filesystem and using &amp;lt;code&amp;gt;setup-bootable&amp;lt;/code&amp;gt; only with the &amp;lt;code&amp;gt;-u&amp;lt;/code&amp;gt; option, to skip the syslinux install, and then refer to the [[Create_a_Bootable_Device#Manually_copying_Alpine_files|manual method]] to fix the problem, or use one of the other bootloader options, instead.&lt;br /&gt;
&lt;br /&gt;
{{Tip| The [[Bootloaders]] page shows different ways to setup booting, and multi-boot menus!}}  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The setup-bootable script accepts the following arguments and command-line switches (you can run &amp;lt;code&amp;gt;setup-bootable -h&amp;lt;/code&amp;gt; to see a usage message).&lt;br /&gt;
&lt;br /&gt;
{{Cmd|setup-bootable &amp;lt;var&amp;gt;source&amp;lt;/var&amp;gt; [&amp;lt;var&amp;gt;dest&amp;lt;/var&amp;gt;]}}&lt;br /&gt;
&lt;br /&gt;
The argument &amp;lt;var&amp;gt;source&amp;lt;/var&amp;gt; can be a directory or an ISO (will be mounted to &amp;lt;code&amp;gt;MNT&amp;lt;/code&amp;gt; or {{Path|/mnt}}) or a URL (will be downloaded with &amp;lt;code&amp;gt;WGET&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;). The argument &amp;lt;var&amp;gt;dest&amp;lt;/var&amp;gt; can be a directory mountpoint, or will default to {{Path|/media/usb}} if not supplied.&lt;br /&gt;
&lt;br /&gt;
{{Define|-k|Keep alpine_dev in {{Path|syslinux.cfg}}; otherwise, replace with UUID.}}&lt;br /&gt;
{{Define|-u|Upgrade mode: keep existing {{Path|syslinux.cfg}} and don&#039;t run &amp;lt;code&amp;gt;syslinux&amp;lt;/code&amp;gt;}}&lt;br /&gt;
{{Define|-f|Overwrite {{Path|syslinux.cfg}} even if &#039;&#039;&#039;-u&#039;&#039;&#039; was specified.}}&lt;br /&gt;
{{Define|-s|Force the running of &amp;lt;code&amp;gt;syslinux&amp;lt;/code&amp;gt; even if &#039;&#039;&#039;-u&#039;&#039;&#039; was specified.}}&lt;br /&gt;
{{Define|-v|Verbose mode}}&lt;br /&gt;
&lt;br /&gt;
The script will ensure that &amp;lt;var&amp;gt;source&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;dest&amp;lt;/var&amp;gt; are available; will copy the contents of &amp;lt;var&amp;gt;source&amp;lt;/var&amp;gt; to &amp;lt;var&amp;gt;dest&amp;lt;/var&amp;gt;, ensuring first that there&#039;s enough space; and unless &#039;&#039;&#039;-u&#039;&#039;&#039; was specified, will make &amp;lt;var&amp;gt;dest&amp;lt;/var&amp;gt; bootable.&lt;br /&gt;
&lt;br /&gt;
Suppose the target device is /dev/sdXY, then this partition can be prepared for booting with&lt;br /&gt;
{{Cmd|# setup-bootable -v /media/&amp;lt;installation-media-device&amp;gt; /dev/sdXY&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For the manual way to set up boot media see [[Create_a_Bootable_Device#Manually_copying_Alpine_files|Manually_copying_Alpine_files]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-xorg-base ==&lt;br /&gt;
&lt;br /&gt;
This is a standalone script; it&#039;s not invoked by &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; but must be run manually.&lt;br /&gt;
&lt;br /&gt;
It configures a graphical environment, installing basic Xorg packages and udev (replacing mdev), and is also required for Wayland sessions.&lt;br /&gt;
&lt;br /&gt;
The script installs, among other packages, e.g.: &amp;lt;code&amp;gt;xorg-server xf86-input-libinput xinit udev&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Additional packages to install may be supplied as arguments.&lt;br /&gt;
{{cmd|setup-xorg-base [additional package(s) to install]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Video packages (optional) ====&lt;br /&gt;
&lt;br /&gt;
You may install specific xf86 xorg driver packages for your video card&#039;s chipset, as they may support specific features, effects and acceleration modes, and avoid error messages during X initialization.&lt;br /&gt;
&lt;br /&gt;
However, the most basic X features should work fine with just using the default kernel video-modesetting drivers.&lt;br /&gt;
&lt;br /&gt;
Info about the particular video cards that are installed in the computer may be found in the list of PCI devices:&lt;br /&gt;
{{cmd|# apk add pciutils&lt;br /&gt;
$ lspci}}&lt;br /&gt;
&lt;br /&gt;
To see available video driver packages run:&lt;br /&gt;
{{cmd|$ apk search xf86-video}}&lt;br /&gt;
&lt;br /&gt;
For example, &lt;br /&gt;
* For an Sis video chipset install &#039;xf86-video-sis&#039;.&lt;br /&gt;
{{Cmd|# apk add xf86-video-sis}}&lt;br /&gt;
&lt;br /&gt;
Others:&lt;br /&gt;
* For Intel video chipsets install &#039;xf86-video-intel&#039; and see [[Intel Video]].&lt;br /&gt;
{{Tip|In some cases, freezes on suspend/resume stop happening when changing the video port the monitor is connected to.}}&lt;br /&gt;
* For AMD Radeon Video see [[Radeon_Video]]&lt;br /&gt;
* For Alix1D use xf86-video-geode.&lt;br /&gt;
* In KVM/QEMU guests see [[QEMU#Using_Xorg_inside_Qemu|Xorg within KVM/QEMU]]&lt;br /&gt;
* In VirtualBox guests use xf86-video-vboxvideo, and install the [[VirtualBox_guest_additions|VirtualBox guest additions]] as well. They contain important parts for the driver.&lt;br /&gt;
* In VMware guests use xf86-video-vmware&lt;br /&gt;
* In Hyper-V guests use xf86-video-fbdev and install the [[Hyper-V_guest_services|Hyper-V guest services]] as well.&lt;br /&gt;
&lt;br /&gt;
==== Input packages ====&lt;br /&gt;
&lt;br /&gt;
If the &amp;lt;b&amp;gt;Numlock&amp;lt;/b&amp;gt; settings are not working, or getting &amp;lt;b&amp;gt;&#039;setleds not found&#039;&amp;lt;/b&amp;gt; errors:&lt;br /&gt;
&lt;br /&gt;
{{cmd|# apk add kbd}}&lt;br /&gt;
&lt;br /&gt;
If some input device is not working at all, the available xf86-input drivers can be listed with:&lt;br /&gt;
{{cmd|$ apk search xf86-input}}&lt;br /&gt;
&lt;br /&gt;
You probably at least want {{cmd| xf86-input-libinput}} or {{cmd| xf86-input-evdev}} &lt;br /&gt;
&lt;br /&gt;
libinput is for Wayland with wrapper for Xorg. evdev is Xorg only.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Typical legacy drivers (not packaged. at least as of 2/2022):&lt;br /&gt;
&lt;br /&gt;
{{cmd|# apk add xf86-input-mouse xf86-input-keyboard}}&lt;br /&gt;
&lt;br /&gt;
And for touchpad tapping support on many laptops, also:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add xf86-input-synaptics}}&lt;br /&gt;
&lt;br /&gt;
==== Configure xorg-server (optional) ====&lt;br /&gt;
&lt;br /&gt;
On most systems, xorg should be able to autodetect all devices. However you can still configure xorg-server by hand by launching:&lt;br /&gt;
{{Cmd|# Xorg -configure}}&lt;br /&gt;
This will create a `/root/xorg.conf.new` file. You can modify this file to fit your needs.&amp;lt;BR&amp;gt;&lt;br /&gt;
(When finished modifying and testing the above configuration file, move it to `/etc/X11/xorg.conf` for normal usage.)&lt;br /&gt;
&lt;br /&gt;
==== Keyboard Layout (optional) ====&lt;br /&gt;
&lt;br /&gt;
If you use a keyboard layout different than &amp;quot;us&amp;quot;, and you are using a window manager or desktop environment that does not support to configure the keyboard layout itself, then you need to&lt;br /&gt;
&lt;br /&gt;
* [[Enable_Community_Repository#Using_community_repositories|Enable the &amp;quot;community&amp;quot; repository]]&lt;br /&gt;
&lt;br /&gt;
and install setxkbmap:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add setxkbmap}}&lt;br /&gt;
&lt;br /&gt;
Then try&lt;br /&gt;
 # setxkbmap &amp;lt;%a language layout from /usr/share/X11/xkb/rules/xorg.lst%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to make it persistent add this section to /etc/X11/xorg.conf:&lt;br /&gt;
{{Cmd|Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
	Identifier	&amp;quot;Keyboard Default&amp;quot;&lt;br /&gt;
	MatchIsKeyboard	&amp;quot;yes&amp;quot;&lt;br /&gt;
	Option		&amp;quot;XkbLayout&amp;quot; &amp;quot;&amp;lt;%a language layout from /usr/share/X11/xkb/rules/xorg.lst%&amp;gt;&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another way to change the keymap when logging into X is to use ~/.xinitrc.  The following example loads a British keymap, simply add this line to the beginning of the file:&lt;br /&gt;
&amp;lt;code&amp;gt;setxkbmap gb &amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you need to create the ~/.xinitrc file, you may also want to add a second line like &amp;lt;code&amp;gt;exec openbox-session&amp;lt;/code&amp;gt; to still start the window manager with &amp;lt;code&amp;gt;startx&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xinit&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documentation needed ==&lt;br /&gt;
&lt;br /&gt;
=== setup-xen-dom0 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== setup-mta ===&lt;br /&gt;
Uses ssmtp.&lt;br /&gt;
&lt;br /&gt;
This is a standalone script; it&#039;s not invoked by &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; but must be run manually.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== setup-acf ===&lt;br /&gt;
This is a standalone script; it&#039;s not invoked by &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; but must be run manually.&lt;br /&gt;
&lt;br /&gt;
This script was named &amp;lt;code&amp;gt;setup-webconf&amp;lt;/code&amp;gt; before Alpine 1.9 beta 4.&lt;br /&gt;
&lt;br /&gt;
See [[:Category:ACF|ACF pages]] for more information.&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Post installation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Viridian</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Alpine_configuration_management_scripts&amp;diff=21639</id>
		<title>Alpine configuration management scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Alpine_configuration_management_scripts&amp;diff=21639"/>
		<updated>2022-03-17T08:48:09Z</updated>

		<summary type="html">&lt;p&gt;Viridian: Mention that setup-alpine can dl answerfiles&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Feature descriptions for available Alpine Linux setup scripts ({{Path|/sbin/setup-*}}).&lt;br /&gt;
&lt;br /&gt;
These scripts can be installed by using &amp;lt;code&amp;gt;apk&amp;lt;/code&amp;gt; to install the &amp;lt;code&amp;gt;alpine-conf&amp;lt;/code&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have an Alpine Linux install, you can find and examine the scripts in their [https://github.com/alpinelinux/alpine-conf git repository].&lt;br /&gt;
&lt;br /&gt;
== setup-alpine ==&lt;br /&gt;
&lt;br /&gt;
This is the main Alpine configuration and installation script.&lt;br /&gt;
&lt;br /&gt;
The script interactively walks the user through executing several auxiliary &amp;lt;code&amp;gt;setup-*&amp;lt;/code&amp;gt; scripts, in the order shown below.&lt;br /&gt;
&lt;br /&gt;
The bracketed options represent example configuration choices, formatted as they may be supplied when manually calling the auxiliary setup scripts, or using a &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; &amp;quot;answerfile&amp;quot; (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;setup-keymap&amp;lt;/code&amp;gt; [us us]&lt;br /&gt;
# [[#setup-hostname|setup-hostname]] [-n alpine-test]&lt;br /&gt;
# [[#setup-interfaces|setup-interfaces]] [-i &amp;lt; interfaces-file]&lt;br /&gt;
# &amp;lt;code&amp;gt;/etc/init.d/networking --quiet start &amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
# if none of the networking interfaces were configured using dhcp, then: &amp;lt;code&amp;gt;[[#setup-dns|setup-dns]]&amp;lt;/code&amp;gt; [-d example.com -n &amp;quot;192.168.0.1 [...]&amp;quot;]&lt;br /&gt;
# set the root password&lt;br /&gt;
# if not in quick mode, then: &amp;lt;code&amp;gt;[[#setup-timezone|setup-timezone]]&amp;lt;/code&amp;gt; [-z UTC | -z America/New_York | -p EST+5]&lt;br /&gt;
# enable the new hostname (&amp;lt;code&amp;gt;/etc/init.d/hostname --quiet restart&amp;lt;/code&amp;gt;)&lt;br /&gt;
# add &amp;lt;code&amp;gt;networking&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;urandom&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;boot&#039;&#039;&#039; rc level, and &amp;lt;code&amp;gt;acpid&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;crond&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;default&#039;&#039;&#039; rc level, and start the &#039;&#039;&#039;boot&#039;&#039;&#039; and &#039;&#039;&#039;default&#039;&#039;&#039; rc services&lt;br /&gt;
# extract the fully-qualified domain name and hostname from {{Path|/etc/resolv.conf}} and &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;, and update {{Path|/etc/hosts}}&lt;br /&gt;
# &amp;lt;code&amp;gt;[[#setup-proxy|setup-proxy]]&amp;lt;/code&amp;gt; [-q &amp;lt;nowiki&amp;gt;&amp;quot;http://webproxy:8080&amp;quot;&amp;lt;/nowiki&amp;gt;], and activate proxy if it was configured&lt;br /&gt;
# &amp;lt;code&amp;gt;setup-apkrepos&amp;lt;/code&amp;gt; [-r (to select a mirror randomly)]&lt;br /&gt;
# if not in quick mode, then: &amp;lt;code&amp;gt;[[#setup-sshd|setup-sshd]]&amp;lt;/code&amp;gt; [-c openssh | dropbear | none]&lt;br /&gt;
# if not in quick mode, then: &amp;lt;code&amp;gt;setup-ntp&amp;lt;/code&amp;gt; [-c chrony | openntpd | busybox | none]&lt;br /&gt;
# if not in quick mode, then: &amp;lt;code&amp;gt;DEFAULT_DISK=none&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;[[#setup-disk|setup-disk]]&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;-q&amp;lt;/code&amp;gt; [-m data /dev/sda] (see [[Installation#Installation_Overview]] about the disk modes)&lt;br /&gt;
# if installation mode selected during setup-disk was &amp;quot;data&amp;quot; instead of &amp;quot;sys&amp;quot;, then: &amp;lt;code&amp;gt;setup-lbu&amp;lt;/code&amp;gt; [/media/sdb1]&lt;br /&gt;
# if installation mode selected during setup-disk was &amp;quot;data&amp;quot; instead of &amp;quot;sys&amp;quot;, then: &amp;lt;code&amp;gt;setup-apkcache&amp;lt;/code&amp;gt; [/media/sdb1/cache | none]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; itself accepts the following command-line switches:&lt;br /&gt;
&lt;br /&gt;
{{Define|-h|Shows the up-to-date usage help message.}}&lt;br /&gt;
&lt;br /&gt;
{{Define|-a|Create an overlay file: this creates a temporary directory and saves its location in ROOT; however, the script doesn&#039;t export this variable so I think this feature isn&#039;t currently functional.}}&lt;br /&gt;
;-c &amp;lt;var&amp;gt;answerfile&amp;lt;/var&amp;gt;&lt;br /&gt;
:Create a new answerfile with default choices. You can edit the file and then invoke &amp;lt;code&amp;gt;setup-alpine -f &amp;lt;var&amp;gt;answerfile&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
;-f &amp;lt;var&amp;gt;answerfile&amp;lt;/var&amp;gt;&lt;br /&gt;
:Use an existing answerfile, which may override some or all of the interactive prompts. You can also specify a HTTP(S) URL for &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; to [https://gitlab.alpinelinux.org/alpine/alpine-conf/-/merge_requests/22 download] an answerfile from. Doing so will spin up a temporary networking config if one is not already active.&lt;br /&gt;
{{Define|-q|Run in &amp;quot;quick mode&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-hostname ==&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;setup-hostname&amp;lt;/code&amp;gt; [-h] [-n hostname]&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-h&#039;&#039;&#039; &amp;lt;var&amp;gt;Show help&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-n&#039;&#039;&#039; &amp;lt;var&amp;gt;Specify hostname&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This script allows quick and easy setup of the system hostname by writing it to {{Path|/etc/hostname}}.  The script prevents you from writing an invalid hostname (such as one that used invalid characters or starts with a &#039;-&#039; or is too long).&lt;br /&gt;
The script can be invoked manually or is called as part of the &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-interfaces ==&lt;br /&gt;
{{Cmd|setup-interfaces [-i &amp;amp;lt; &amp;lt;var&amp;gt;interfaces-file&amp;lt;/var&amp;gt;]}}&lt;br /&gt;
&lt;br /&gt;
Note that the contents of &amp;lt;var&amp;gt;interfaces-file&amp;lt;/var&amp;gt; has to be supplied as stdin, rather than naming the file as an additional argument. The contents should have the format of {{Path|/etc/network/interfaces}}, such as:&lt;br /&gt;
&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 &lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet dhcp&lt;br /&gt;
     hostname alpine-test&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-dns ==&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;setup-dns&amp;lt;/code&amp;gt; [-h] [-d domain name] [-n name server]&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-h&#039;&#039;&#039; &amp;lt;var&amp;gt;Show help&amp;lt;/var&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-d&#039;&#039;&#039; &amp;lt;var&amp;gt;specify search domain name&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-n&#039;&#039;&#039; &amp;lt;var&amp;gt;name server IP&amp;lt;/var&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The setup-dns script is stored in {{Path|/sbin/setup-dns}} and allows quick and simple setup of DNS servers (and a DNS search domain if required).  Simply running &amp;lt;code&amp;gt;setup-dns&amp;lt;/code&amp;gt; will allow interactive use of the script, or the options can be specified.&lt;br /&gt;
&lt;br /&gt;
The information fed to this script is written to {{Path|/etc/resolv.conf}}&lt;br /&gt;
&lt;br /&gt;
Example usage (with 192.168.0.1 being the local router/dns-forwarder): {{Cmd|setup-dns -d example.org -n 192.168.0.1}}&lt;br /&gt;
&lt;br /&gt;
Example {{Path|/etc/resolv.conf}}:&lt;br /&gt;
&lt;br /&gt;
 search example.org&lt;br /&gt;
 nameserver 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
It can be run manually but is also invoked in the &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; script unless interfaces are configured for DHCP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-timezone ==&lt;br /&gt;
:&amp;lt;code&amp;gt;setup-timezone&amp;lt;/code&amp;gt; [-z UTC | -z America/New_York | -p EST+5]&lt;br /&gt;
&lt;br /&gt;
Can pre-select the timezone using either of these switches:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-z&#039;&#039;&#039; &amp;lt;var&amp;gt;subfolder of&amp;lt;/var&amp;gt; {{Path|/usr/share/zoneinfo}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-p&#039;&#039;&#039; &amp;lt;var&amp;gt;POSIX TZ format&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-proxy ==&lt;br /&gt;
:&amp;lt;code&amp;gt;setup-proxy&amp;lt;/code&amp;gt; [-hq] [PROXYURL]&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-h&#039;&#039;&#039; &amp;lt;var&amp;gt;Show help&amp;lt;/var&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-q&#039;&#039;&#039; &amp;lt;var&amp;gt;Quiet mode&amp;lt;/var&amp;gt; prevents changes from taking effect until after reboot&lt;br /&gt;
&lt;br /&gt;
This script requests the system proxy to use in the form &amp;lt;code&amp;gt;http://&amp;lt;proxyurl&amp;gt;:&amp;lt;port&amp;gt;&amp;lt;/code&amp;gt; for example:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://10.0.0.1:8080&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To set no system proxy use &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;.&lt;br /&gt;
This script exports the following environmental variables: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;http_proxy=$proxyurl&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;https_proxy=$proxyurl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ftp_proxy=$proxyurl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;$proxyurl&amp;lt;/code&amp;gt; is the value input.  &lt;br /&gt;
If &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; was chosen then the value it is set to a blank value (and so no proxy is used).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-apkrepos ==&lt;br /&gt;
:&amp;lt;code&amp;gt;setup-apkrepos&amp;lt;/code&amp;gt; [-fhr] [REPO...]&lt;br /&gt;
&lt;br /&gt;
Setup &amp;lt;code&amp;gt;apk&amp;lt;/code&amp;gt; repositories.&lt;br /&gt;
&lt;br /&gt;
options:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-f&#039;&#039;&#039;  &amp;lt;var&amp;gt;Detect and add fastest mirror&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-r&#039;&#039;&#039;  &amp;lt;var&amp;gt;Add a random mirror and do not prompt&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-1&#039;&#039;&#039;  &amp;lt;var&amp;gt;Add first mirror on the list (normally a CDN)&amp;lt;/var&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is run as part of the &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-sshd ==&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;setup-sshd&amp;lt;/code&amp;gt; [-h] [-c choice of SSH daemon]&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-h&#039;&#039;&#039; &amp;lt;var&amp;gt;Show help&amp;lt;/var&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;-c&#039;&#039;&#039; &amp;lt;var&amp;gt;SSH daemon&amp;lt;/var&amp;gt; where SSH daemon can be one of the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;openssh&amp;lt;/code&amp;gt; install the {{Pkg|openSSH}} daemon&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dropbear&amp;lt;/code&amp;gt; install the {{Pkg|dropbear}} daemon&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; Do not install an SSH daemon&lt;br /&gt;
&lt;br /&gt;
Example usage: {{Cmd|setup-sshd -c dropbear}}&lt;br /&gt;
&lt;br /&gt;
The setup-sshd script is stored in {{Path|/sbin/setup-sshd}} and allows quick and simple setup of either the OpenSSH or Dropbear SSH daemon &amp;amp; client. &lt;br /&gt;
It can be run manually but is also invoked in the &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-ntp ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;From [https://en.wikipedia.org/wiki/Network_Time_Protocol Wikipedia]&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Network Time Protocol (NTP)&#039;&#039;&#039; is a networking protocol for clock synchronization between computer systems over packet-switched, variable-latency data networks. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|usage: setup-ntp [-h] [-c choice of NTP daemon]&lt;br /&gt;
&lt;br /&gt;
Setup NTP time synchronization&lt;br /&gt;
&lt;br /&gt;
options:&lt;br /&gt;
 -h  Show this help&lt;br /&gt;
 -c  Choice of NTP daemon: busybox openntpd chrony none}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setup-ntp&amp;lt;/code&amp;gt; script is stored in {{Path|/sbin/setup-ntp}} and allows quick and simple setup of the NTP client,&lt;br /&gt;
It can be run manually but is also invoked in the &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-disk ==&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;DEFAULT_DISK=none setup-disk -q&amp;lt;/code&amp;gt; [-m data | sys] [&amp;lt;var&amp;gt;mountpoint directory&amp;lt;/var&amp;gt; | /dev/sda ...]&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;sys&amp;quot; mode, it&#039;s an installer, it permanently installs Alpine on the disk, in &amp;quot;data&amp;quot; mode, it provides a larger and persistent /var volume.&lt;br /&gt;
&lt;br /&gt;
This script accepts the following command-line switches:&lt;br /&gt;
&lt;br /&gt;
;-k &amp;lt;var&amp;gt;kernel flavor&amp;lt;/var&amp;gt;&lt;br /&gt;
;-o &amp;lt;var&amp;gt;apkovl file&amp;lt;/var&amp;gt;&lt;br /&gt;
:Restore system from &amp;lt;var&amp;gt;apkovl file&amp;lt;/var&amp;gt;&lt;br /&gt;
;-m data | sys&lt;br /&gt;
:Don&#039;t prompt for installation mode. With &#039;&#039;&#039;-m data&#039;&#039;&#039;, the supplied devices are formatted to use as a {{Path|/var}} volume.&lt;br /&gt;
{{Define|-r|Use RAID1 with a single disk (degraded mode)}}&lt;br /&gt;
{{Define|-L|Create and use volumes in a LVM group}}&lt;br /&gt;
;-s &amp;lt;var&amp;gt;swap size in MB&amp;lt;/var&amp;gt;&lt;br /&gt;
:Use 0 to disable swap&lt;br /&gt;
{{Define|-q|Exit quietly if no disks are found}}&lt;br /&gt;
{{Define|-v|Verbose mode}}&lt;br /&gt;
&lt;br /&gt;
The script also honors the following environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BOOT_SIZE&amp;lt;/code&amp;gt;&lt;br /&gt;
:Size of the boot partition in MB; defaults to 100. Only used if &#039;&#039;&#039;-m sys&#039;&#039;&#039; is specified or interactively selected.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SWAP_SIZE&amp;lt;/code&amp;gt;&lt;br /&gt;
:Size of the swap volume in MB; set to 0 to disable swap. If not specified, will default to twice RAM, up to 4096, but won&#039;t be more than 1/3 the size of the smallest disk, and if less than 64 will just be 0. Only used if &#039;&#039;&#039;-m sys&#039;&#039;&#039; is specified or interactively selected.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ROOTFS&amp;lt;/code&amp;gt;&lt;br /&gt;
:Filesystem to use for the / volume; defaults to ext4. Only used if &#039;&#039;&#039;-m sys&#039;&#039;&#039; is specified or interactively selected. Supported filesystems are: ext2 ext3 ext4 [[Btrfs|btrfs]] xfs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BOOTFS&amp;lt;/code&amp;gt;&lt;br /&gt;
:Filesystem to use for the /boot volume; defaults to ext4. Only used if &#039;&#039;&#039;-m sys&#039;&#039;&#039; is specified or interactively selected. Supported filesystems are: ext2 ext3 ext4 [[Btrfs|btrfs]] xfs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;VARFS&amp;lt;/code&amp;gt;&lt;br /&gt;
:Filesystem to use for the /var volume; defaults to ext4. Only used if &#039;&#039;&#039;-m data&#039;&#039;&#039; is specified or interactively selected. Supported filesystems are: ext2 ext3 ext4 [[Btrfs|btrfs]] xfs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SYSROOT&amp;lt;/code&amp;gt;&lt;br /&gt;
:Mountpoint to use when creating volumes and doing traditional disk install (&#039;&#039;&#039;-m sys&#039;&#039;&#039;). Defaults to {{Path|/mnt}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MBR&amp;lt;/code&amp;gt;&lt;br /&gt;
:Path of MBR binary code, defaults to {{Path|/usr/share/syslinux/mbr.bin}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BOOTLOADER&amp;lt;/code&amp;gt;&lt;br /&gt;
:Bootloader to use, defaults to syslinux. Supported bootloaders are: grub syslinux zipl.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DISKLABEL&amp;lt;/code&amp;gt;&lt;br /&gt;
:Disklabel to use, defaults to dos. Supported disklabels are: dos gpt eckd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Writes to /tmp/ovlfiles, /tmp/alpine-install-diskmode.out, and /tmp/sfdisk.out but that never seems to be used elsewhere. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Partitioning ===&lt;br /&gt;
&lt;br /&gt;
If you have complex partitioning needs, that go beyond above alpine-disk options, you can partition, format, and mount your volumes manually, and then just supply the root mountpoint to &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt;. Doing so implicitly behaves as though &#039;&#039;&#039;-m sys&#039;&#039;&#039; had also been specified.&lt;br /&gt;
&lt;br /&gt;
See [[Setting up disks manually]] for more information.&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. The array will always be [https://en.m.wikipedia.org/wiki/Standard_RAID_levels#RAID_1 RAID1] (and [https://raid.wiki.kernel.org/index.php/RAID_superblock_formats#The_version-0.90_Superblock_Format --metadata=0.90]) for the /boot volumes, but will be [https://en.m.wikipedia.org/wiki/Standard_RAID_levels#RAID_5 RAID5] (and [https://raid.wiki.kernel.org/index.php/RAID_superblock_formats#The_version-1_Superblock_Format --metadata=1.2] for non-boot volumes when 3 or more devices are supplied.&lt;br /&gt;
&lt;br /&gt;
If you instead want to build your RAID array manually, see [[Setting up a software RAID array]]. Then format and mount the disks, and supply the root mountpoint to &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt;.&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. The group and volumes created by the script will have the following names:&lt;br /&gt;
&lt;br /&gt;
* volume group: &#039;&#039;&#039;vg0&#039;&#039;&#039;&lt;br /&gt;
* swap volume: &#039;&#039;&#039;lv_swap&#039;&#039;&#039; (only created when swap size &amp;gt; 0)&lt;br /&gt;
* root volume: &#039;&#039;&#039;lv_root&#039;&#039;&#039; (only created when &#039;&#039;&#039;-m sys&#039;&#039;&#039; is specified or interactively selected)&lt;br /&gt;
* var volume: &#039;&#039;&#039;lv_var&#039;&#039;&#039; (only created when &#039;&#039;&#039;-m data&#039;&#039;&#039; is specified or interactively selected)&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;lv_var&#039;&#039;&#039; or &#039;&#039;&#039;lv_root&#039;&#039;&#039; volumes are created to occupy all remaining space in the volume group.&lt;br /&gt;
&lt;br /&gt;
If you need to change any of these settings, you can use &amp;lt;code&amp;gt;vgrename&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lvrename&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lvreduce&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;lvresize&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you instead want to build your LVM system manually, see [[Setting up Logical Volumes with LVM]]. Then format and mount the disks, and supply the root mountpoint to &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=Setup-Disk Usage=&lt;br /&gt;
&lt;br /&gt;
usage: setup-disk [-hqr] [-k kernelflavor] [-m MODE] [-o apkovl] [-s SWAPSIZE]&lt;br /&gt;
		  [MOUNTPOINT | DISKDEV...]&lt;br /&gt;
&lt;br /&gt;
Install alpine on harddisk.&lt;br /&gt;
&lt;br /&gt;
If MOUNTPOINT is specified, then do a traditional disk install with MOUNTPOINT&lt;br /&gt;
as root.&lt;br /&gt;
&lt;br /&gt;
If DISKDEV is specified, then use the specified disk(s) without asking. If&lt;br /&gt;
multiple disks are specified then set them up in a RAID array. If there are&lt;br /&gt;
mode than 2 disks, then use raid level 5 instead of raid level 1.&lt;br /&gt;
&lt;br /&gt;
options:&lt;br /&gt;
 -h  Show this help&lt;br /&gt;
 -m  Use disk for MODE without asking, where MODE is either &#039;data&#039; or &#039;root&#039;&lt;br /&gt;
 -o  Restore system from given apkovl file&lt;br /&gt;
 -k  Use kernelflavor instead of $KERNEL_FLAVOR&lt;br /&gt;
 -L  Use LVM to manage partitions&lt;br /&gt;
 -q  Exit quietly if no disks are found&lt;br /&gt;
 -r  Enable software RAID1 with single disk&lt;br /&gt;
 -s  Use SWAPSIZE MB instead of $SWAP_SIZE MB for swap (Use 0 to disable swap)&lt;br /&gt;
 -v  Be more verbose about what is happening&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Disk Install Styles==&lt;br /&gt;
&lt;br /&gt;
You can select between &#039;sys&#039; or &#039;data&#039;.&lt;br /&gt;
&lt;br /&gt;
sys:&lt;br /&gt;
  This mode is a traditional disk install. The following partitions will be&lt;br /&gt;
  created on the disk: /boot, / (filesystem root) and swap.&lt;br /&gt;
    &lt;br /&gt;
  This mode may be used for development boxes, desktops, virtual servers, etc.&lt;br /&gt;
&lt;br /&gt;
data:&lt;br /&gt;
  This mode uses your disk(s) for data storage, not for the operating system.&lt;br /&gt;
  The system itself will run from tmpfs (RAM).&lt;br /&gt;
&lt;br /&gt;
  Use this mode if you only want to use the disk(s) for a mailspool, databases,&lt;br /&gt;
  logs, etc.&lt;br /&gt;
&lt;br /&gt;
none:&lt;br /&gt;
  Run without installing to disk.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-lbu ==&lt;br /&gt;
&lt;br /&gt;
This script will only be invoked for by &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; when installing &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; installation types (ramdisk)&lt;br /&gt;
&lt;br /&gt;
It configures where &amp;lt;code&amp;gt;lbu commit&amp;lt;/code&amp;gt; will store the .apkovl backup. See [[Alpine local backup]] for more information.&lt;br /&gt;
&lt;br /&gt;
When started, &amp;lt;code&amp;gt;setup-lbu&amp;lt;/code&amp;gt; will prompt where to store your data. The options it will prompt for will be taken from the directories found in &amp;lt;code&amp;gt;/media&amp;lt;/code&amp;gt; (except for &amp;lt;code&amp;gt;cdrom&amp;lt;/code&amp;gt;). [not sure how these are mounted: are they automatically mounted by setup-lbu? Does the user have to manually mount using another tty?]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-apkcache ==&lt;br /&gt;
&lt;br /&gt;
This script will only be invoked for by &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; when installing &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; installation types (ramdisk)&lt;br /&gt;
&lt;br /&gt;
It configures where to save the apk package files. The apkcache is where apk stores downloaded packages, such that the system does not need to download them again on each reboot, and doesn&#039;t have to depend on the network. See [[Local APK cache]] for a detailed explanation.&lt;br /&gt;
&lt;br /&gt;
You should be able to use a partition that you set up in the previous steps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-bootable ==&lt;br /&gt;
This is a standalone script; it&#039;s not invoked by &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; but must be run manually.&lt;br /&gt;
&lt;br /&gt;
It allows to create boot media that boots the system running from RAM memory (diskless) like the installation images, but using a writable (i.e. not iso9660) filesystem. So that it can also serve to store local customizations (e.g. apkovl files and cached packages). &lt;br /&gt;
&lt;br /&gt;
First, the script copies files from an ISO image (as file on a CD/DVD/USB etc.) onto a USB-Stick/CompactFlash/SDCard etc., or harddisk partition. And then, it installs the syslinux bootloader to make the device bootable.&lt;br /&gt;
&lt;br /&gt;
However, its current syslinux installation seems to fail on non-FAT32 partitions. So in these cases, you may start over with a FAT32 filesystem, or rather with the desired filesystem and using &amp;lt;code&amp;gt;setup-bootable&amp;lt;/code&amp;gt; only with the &amp;lt;code&amp;gt;-u&amp;lt;/code&amp;gt; option, to skip the syslinux install, and then refer to the [[Create_a_Bootable_Device#Manually_copying_Alpine_files|manual method]] to fix the problem, or use one of the other bootloader options, instead.&lt;br /&gt;
&lt;br /&gt;
{{Tip| The [[Bootloaders]] page shows different ways to setup booting, and multi-boot menus!}}  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The setup-bootable script accepts the following arguments and command-line switches (you can run &amp;lt;code&amp;gt;setup-bootable -h&amp;lt;/code&amp;gt; to see a usage message).&lt;br /&gt;
&lt;br /&gt;
{{Cmd|setup-bootable &amp;lt;var&amp;gt;source&amp;lt;/var&amp;gt; [&amp;lt;var&amp;gt;dest&amp;lt;/var&amp;gt;]}}&lt;br /&gt;
&lt;br /&gt;
The argument &amp;lt;var&amp;gt;source&amp;lt;/var&amp;gt; can be a directory or an ISO (will be mounted to &amp;lt;code&amp;gt;MNT&amp;lt;/code&amp;gt; or {{Path|/mnt}}) or a URL (will be downloaded with &amp;lt;code&amp;gt;WGET&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;). The argument &amp;lt;var&amp;gt;dest&amp;lt;/var&amp;gt; can be a directory mountpoint, or will default to {{Path|/media/usb}} if not supplied.&lt;br /&gt;
&lt;br /&gt;
{{Define|-k|Keep alpine_dev in {{Path|syslinux.cfg}}; otherwise, replace with UUID.}}&lt;br /&gt;
{{Define|-u|Upgrade mode: keep existing {{Path|syslinux.cfg}} and don&#039;t run &amp;lt;code&amp;gt;syslinux&amp;lt;/code&amp;gt;}}&lt;br /&gt;
{{Define|-f|Overwrite {{Path|syslinux.cfg}} even if &#039;&#039;&#039;-u&#039;&#039;&#039; was specified.}}&lt;br /&gt;
{{Define|-s|Force the running of &amp;lt;code&amp;gt;syslinux&amp;lt;/code&amp;gt; even if &#039;&#039;&#039;-u&#039;&#039;&#039; was specified.}}&lt;br /&gt;
{{Define|-v|Verbose mode}}&lt;br /&gt;
&lt;br /&gt;
The script will ensure that &amp;lt;var&amp;gt;source&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;dest&amp;lt;/var&amp;gt; are available; will copy the contents of &amp;lt;var&amp;gt;source&amp;lt;/var&amp;gt; to &amp;lt;var&amp;gt;dest&amp;lt;/var&amp;gt;, ensuring first that there&#039;s enough space; and unless &#039;&#039;&#039;-u&#039;&#039;&#039; was specified, will make &amp;lt;var&amp;gt;dest&amp;lt;/var&amp;gt; bootable.&lt;br /&gt;
&lt;br /&gt;
Suppose the target device is /dev/sdXY, then this partition can be prepared for booting with&lt;br /&gt;
{{Cmd|# setup-bootable -v /media/&amp;lt;installation-media-device&amp;gt; /dev/sdXY&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For the manual way to set up boot media see [[Create_a_Bootable_Device#Manually_copying_Alpine_files|Manually_copying_Alpine_files]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== setup-xorg-base ==&lt;br /&gt;
&lt;br /&gt;
This is a standalone script; it&#039;s not invoked by &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; but must be run manually.&lt;br /&gt;
&lt;br /&gt;
It configures a graphical environment, installing basic Xorg packages and udev (replacing mdev), and is also required for Wayland sessions.&lt;br /&gt;
&lt;br /&gt;
The script installs, among other packages, e.g.: &amp;lt;code&amp;gt;xorg-server xf86-input-libinput xinit udev&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Additional packages to install may be supplied as arguments.&lt;br /&gt;
{{cmd|setup-xorg-base [additional package(s) to install]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Video packages (optional) ====&lt;br /&gt;
&lt;br /&gt;
You may install specific xf86 xorg driver packages for your video card&#039;s chipset, as they may support specific features, effects and acceleration modes, and avoid error messages during X initialization.&lt;br /&gt;
&lt;br /&gt;
However, the most basic X features should work fine with just using the default kernel video-modesetting drivers.&lt;br /&gt;
&lt;br /&gt;
Info about the particular video cards that are installed in the computer may be found in the list of PCI devices:&lt;br /&gt;
{{cmd|# apk add pciutils&lt;br /&gt;
$ lspci}}&lt;br /&gt;
&lt;br /&gt;
To see available video driver packages run:&lt;br /&gt;
{{cmd|$ apk search xf86-video}}&lt;br /&gt;
&lt;br /&gt;
For example, &lt;br /&gt;
* For an Sis video chipset install &#039;xf86-video-sis&#039;.&lt;br /&gt;
{{Cmd|# apk add xf86-video-sis}}&lt;br /&gt;
&lt;br /&gt;
Others:&lt;br /&gt;
* For Intel video chipsets install &#039;xf86-video-intel&#039; and see [[Intel Video]].&lt;br /&gt;
{{Tip|In some cases, freezes on suspend/resume stop happening when changing the video port the monitor is connected to.}}&lt;br /&gt;
* For AMD Radeon Video see [[Radeon_Video]]&lt;br /&gt;
* For Alix1D use xf86-video-geode.&lt;br /&gt;
* In KVM/QEMU guests see [[QEMU#Using_Xorg_inside_Qemu|Xorg within KVM/QEMU]]&lt;br /&gt;
* In VirtualBox guests use xf86-video-vboxvideo, and install the [[VirtualBox_guest_additions|VirtualBox guest additions]] as well. They contain important parts for the driver.&lt;br /&gt;
* In VMware guests use xf86-video-vmware&lt;br /&gt;
* In Hyper-V guests use xf86-video-fbdev and install the [[Hyper-V_guest_services|Hyper-V guest services]] as well.&lt;br /&gt;
&lt;br /&gt;
==== Input packages ====&lt;br /&gt;
&lt;br /&gt;
If the &amp;lt;b&amp;gt;Numlock&amp;lt;/b&amp;gt; settings are not working, or getting &amp;lt;b&amp;gt;&#039;setleds not found&#039;&amp;lt;/b&amp;gt; errors:&lt;br /&gt;
&lt;br /&gt;
{{cmd|# apk add kbd}}&lt;br /&gt;
&lt;br /&gt;
If some input device is not working at all, the available xf86-input drivers can be listed with:&lt;br /&gt;
{{cmd|$ apk search xf86-input}}&lt;br /&gt;
&lt;br /&gt;
You probably at least want {{cmd| xf86-input-libinput}} or {{cmd| xf86-input-evdev}} &lt;br /&gt;
&lt;br /&gt;
libinput is for Wayland with wrapper for Xorg. evdev is Xorg only.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Typical legacy drivers (not packaged. at least as of 2/2022):&lt;br /&gt;
&lt;br /&gt;
{{cmd|# apk add xf86-input-mouse xf86-input-keyboard}}&lt;br /&gt;
&lt;br /&gt;
And for touchpad tapping support on many laptops, also:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add xf86-input-synaptics}}&lt;br /&gt;
&lt;br /&gt;
==== Configure xorg-server (optional) ====&lt;br /&gt;
&lt;br /&gt;
On most systems, xorg should be able to autodetect all devices. However you can still configure xorg-server by hand by launching:&lt;br /&gt;
{{Cmd|# Xorg -configure}}&lt;br /&gt;
This will create a `/root/xorg.conf.new` file. You can modify this file to fit your needs.&amp;lt;BR&amp;gt;&lt;br /&gt;
(When finished modifying and testing the above configuration file, move it to `/etc/X11/xorg.conf` for normal usage.)&lt;br /&gt;
&lt;br /&gt;
==== Keyboard Layout (optional) ====&lt;br /&gt;
&lt;br /&gt;
If you use a keyboard layout different than &amp;quot;us&amp;quot;, and you are using a window manager or desktop environment that does not support to configure the keyboard layout itself, then you need to&lt;br /&gt;
&lt;br /&gt;
* [[Enable_Community_Repository#Using_community_repositories|Enable the &amp;quot;community&amp;quot; repository]]&lt;br /&gt;
&lt;br /&gt;
and install setxkbmap:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add setxkbmap}}&lt;br /&gt;
&lt;br /&gt;
Then try&lt;br /&gt;
 # setxkbmap &amp;lt;%a language layout from /usr/share/X11/xkb/rules/xorg.lst%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to make it persistent add this section to /etc/X11/xorg.conf:&lt;br /&gt;
{{Cmd|Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
	Identifier	&amp;quot;Keyboard Default&amp;quot;&lt;br /&gt;
	MatchIsKeyboard	&amp;quot;yes&amp;quot;&lt;br /&gt;
	Option		&amp;quot;XkbLayout&amp;quot; &amp;quot;&amp;lt;%a language layout from /usr/share/X11/xkb/rules/xorg.lst%&amp;gt;&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another way to change the keymap when logging into X is to use ~/.xinitrc.  The following example loads a British keymap, simply add this line to the beginning of the file:&lt;br /&gt;
&amp;lt;code&amp;gt;setxkbmap gb &amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you need to create the ~/.xinitrc file, you may also want to add a second line like &amp;lt;code&amp;gt;exec openbox-session&amp;lt;/code&amp;gt; to still start the window manager with &amp;lt;code&amp;gt;startx&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;xinit&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documentation needed ==&lt;br /&gt;
&lt;br /&gt;
=== setup-xen-dom0 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== setup-mta ===&lt;br /&gt;
Uses ssmtp.&lt;br /&gt;
&lt;br /&gt;
This is a standalone script; it&#039;s not invoked by &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; but must be run manually.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== setup-acf ===&lt;br /&gt;
This is a standalone script; it&#039;s not invoked by &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; but must be run manually.&lt;br /&gt;
&lt;br /&gt;
This script was named &amp;lt;code&amp;gt;setup-webconf&amp;lt;/code&amp;gt; before Alpine 1.9 beta 4.&lt;br /&gt;
&lt;br /&gt;
See [[:Category:ACF|ACF pages]] for more information.&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Post installation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Viridian</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Post_installation&amp;diff=21638</id>
		<title>Post installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Post_installation&amp;diff=21638"/>
		<updated>2022-03-16T20:06:24Z</updated>

		<summary type="html">&lt;p&gt;Viridian: Fix formatting, improve wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Draft|Still might be missing some things but (i think) it is mostly complete}}&lt;br /&gt;
&lt;br /&gt;
{{Note|This [[Post installation|Post Installation]] wiki page has been created, however, its information is better to be kept in their (even already existing!) own and individually manageable (&amp;quot;authoritative&amp;quot;) topic pages and only directly referenced (linked) from the list in the [[Installation]] overview page. (Not to be duplicated here and to never get updated again!) If you would like to help with this process please go ahead.}}&lt;br /&gt;
&lt;br /&gt;
== General Notes ==&lt;br /&gt;
&lt;br /&gt;
* When &#039;&#039;&#039;#&#039;&#039;&#039; is displayed before a command, that means the command needs to be run with root privileges.&lt;br /&gt;
&lt;br /&gt;
* Anything in &amp;lt; &amp;gt; is likely just a placeholder that you need to replace (example: &amp;lt;editor&amp;gt; file.txt).&lt;br /&gt;
&lt;br /&gt;
* Some information in here might be a repeat of information in other wiki pages. If you find a section where that is the case, please add a link to the original wiki page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Network setup ==&lt;br /&gt;
&lt;br /&gt;
==== Wi-Fi ====&lt;br /&gt;
&lt;br /&gt;
* [[Wi-Fi]]&lt;br /&gt;
* [[NetworkManager]]&lt;br /&gt;
&lt;br /&gt;
==== Ethernet (Wired) ====&lt;br /&gt;
&lt;br /&gt;
{{Expand|Documentation on Ethernet (Wired) internet setup needs to be created/expanded, maybe information from other wiki&#039;s/docs might be helpful?}}&lt;br /&gt;
&lt;br /&gt;
* [[Ethernet|Ethernet]]&lt;br /&gt;
* [[NetworkManager]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating a new standard user account ==&lt;br /&gt;
&lt;br /&gt;
After installing Alpine by default you only get a root account. You will probably want to create an account that is not root,&lt;br /&gt;
&lt;br /&gt;
{{cmd|# adduser &amp;lt;YourUsername&amp;gt;}}&lt;br /&gt;
{{Note|replace &amp;lt;YourUsername&amp;gt; with the username of your choice}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will probably want to install &#039;&#039;&#039;doas&#039;&#039;&#039; so you can allow &amp;lt;YourUsername&amp;gt; to use root privileges:&lt;br /&gt;
&lt;br /&gt;
{{cmd|# apk add doas}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want your user to be able to use root privileges, first add them to the &#039;&#039;&#039;wheel&#039;&#039;&#039; group:&lt;br /&gt;
&lt;br /&gt;
{{cmd|# adduser &amp;lt;YourUsername&amp;gt; wheel}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will then want to allow members of the &#039;&#039;&#039;wheel&#039;&#039;&#039; group to use root privileges with &#039;&#039;&#039;doas&#039;&#039;&#039;. To do this, open the &#039;&#039;&#039;doas&#039;&#039;&#039; config file:&lt;br /&gt;
&lt;br /&gt;
{{cmd|# &amp;lt;editor&amp;gt; /etc/doas.d/doas.conf}}&lt;br /&gt;
&lt;br /&gt;
Add the following line and save the file:&lt;br /&gt;
&lt;br /&gt;
{{cmd|permit persist :wheel}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To switch to your new account, type &#039;&#039;&#039;exit&#039;&#039;&#039; in the shell and login as the new user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Groups ====&lt;br /&gt;
&lt;br /&gt;
Groups are needed for certain operations on your system (e.g &amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt; to manage your system audio). Below is a list of groups:&lt;br /&gt;
{{Note|may be incomplete, if you see a group missing please add it along with a description}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|disk:x:6:root,adm      Only if need usage with virtual machines and access to other partitions over new disks for&lt;br /&gt;
lp:x:7:lp              If you need use printing services and printers management&lt;br /&gt;
floppy:x:11:root       Backward compatible group, use only if need access to external special devices&lt;br /&gt;
audio:x:18:            Need for audio listening and management of sound volumes as normal user&lt;br /&gt;
cdrom:x:19:            For access to disk writers and mounting DVD, BR or CD-ROM disk as normal user&lt;br /&gt;
dialout:x:20:root      Need for dial private connections and use of modems as normal users&lt;br /&gt;
tape:x:26:root         Need this if planning to use special devices for backup. Rarely used on servers&lt;br /&gt;
video:x:27:root        For usage of cameras, more than one GPU special features, as normal user&lt;br /&gt;
netdev:x:28:           For network connections management as normal user&lt;br /&gt;
kvm:x:34:kvm           Only if as normal user will manage graphically virtual machines. Rarely used on servers&lt;br /&gt;
games:x:35:            Need if you want to play games also especially needed to share score between users&lt;br /&gt;
cdrw:x:80:             To write RW-DVD, RW-BR or RW-CD disk on a disk writing device&lt;br /&gt;
apache:x:81:           Need if you will perform development as normal user and want to publish locally on web server&lt;br /&gt;
usb:x:85:              Need to access to special USB devices, deprecated group&lt;br /&gt;
users:x:100:games      If you plan to used common files for all users, mandatory as desktop usage&lt;br /&gt;
input:x:23             Needed if you want your mouse and keyboard to work in a graphical desktop environment (xorg only? idk) }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add your user to a group use the following command:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# adduser &amp;lt;YourUsername&amp;gt; &amp;lt;group&amp;gt;}}&lt;br /&gt;
{{Note|you need to log out for the group change(s) to take effect}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Repositories ==&lt;br /&gt;
&lt;br /&gt;
The Alpine software repositories have three branches:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Main&#039;&#039;&#039;: Main packages are the Alpine software that have direct support and updates from the Alpine core and main team. They also have official special documentation, are always available for all releases and will have substitutions if some are not continued from upstream. Commonly, those packages are selected due to their responsibility and stability with respect to upstream availability. When those in &#039;&#039;testing&#039;&#039; perform well or are mature, they go to the &#039;&#039;main&#039;&#039; branch.&lt;br /&gt;
* &#039;&#039;&#039;Community&#039;&#039;&#039;: Community packages are those made by users in concert with the official developers and integrated into the Alpine packages. They are user supported. Support could end if the user ends support with respect to Alpine work. For example, could not include substitution in next release due to lack of support by the upstream author. They are in &#039;&#039;edge&#039;&#039;, and when accepted, go to the &#039;&#039;community&#039;&#039; branch.&lt;br /&gt;
* &#039;&#039;&#039;Edge&#039;&#039;&#039;: New packages come into testing repositories of the edge Alpine version and are those made by any contributor or manpower on Alpine. The edge contains unstable current development content. This branch has no release linked or related to Alpine. They are in &#039;&#039;testing&#039;&#039; and when accepted, go to the &#039;&#039;community&#039;&#039; branch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By default only the &#039;&#039;&#039;main&#039;&#039;&#039; repository is enabled. Most users will probably want to enable the &#039;&#039;&#039;community&#039;&#039;&#039; repository. To enable a repository, remove the &#039;&#039;&#039;#&#039;&#039;&#039; in front of the URL along with any blank space.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Example) Disabled:&lt;br /&gt;
{{cat|/etc/apk/repositories|#http://dl-cdn.alpinelinux.org/alpine/v3.15/community}}&lt;br /&gt;
&lt;br /&gt;
(Example) Enabled:&lt;br /&gt;
{{cat|/etc/apk/repositories|http://dl-cdn.alpinelinux.org/alpine/v3.15/community}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To edit the repositories, open the &amp;lt;code&amp;gt;/etc/apk/repositories&amp;lt;/code&amp;gt; file in a text editor:&lt;br /&gt;
&lt;br /&gt;
{{cmd|# &amp;lt;editor&amp;gt; /etc/apk/repositories}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example default configuration:&lt;br /&gt;
&lt;br /&gt;
{{cat|/etc/apk/repositories|#/media/cdrom/apks&lt;br /&gt;
http://dl-cdn.alpinelinux.org/alpine/v3.15/main&lt;br /&gt;
# http://dl-cdn.alpinelinux.org/alpine/v3.15/community&lt;br /&gt;
#http://dl-cdn.alpinelinux.org/alpine/edge/main&lt;br /&gt;
#http://dl-cdn.alpinelinux.org/alpine/edge/community&lt;br /&gt;
#http://dl-cdn.alpinelinux.org/alpine/edge/testing}}&lt;br /&gt;
&lt;br /&gt;
{{Note|The edge repositories contain unstable and/or possibly untested packages. Use at your own risk!}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To avoid having to manually update the verison in &#039;&#039;&#039;/etc/apk/repositories&#039;&#039;&#039; for each Alpine Linux update, change &#039;&#039;&#039;v3.15&#039;&#039;&#039; to &#039;&#039;&#039;latest-stable&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
{{cat|/etc/apk/repositories|#/media/cdrom/apks&lt;br /&gt;
http://dl-cdn.alpinelinux.org/alpine/latest-stable/main&lt;br /&gt;
http://dl-cdn.alpinelinux.org/alpine/latest-stable/community&lt;br /&gt;
#http://dl-cdn.alpinelinux.org/alpine/edge/main&lt;br /&gt;
#http://dl-cdn.alpinelinux.org/alpine/edge/community&lt;br /&gt;
#http://dl-cdn.alpinelinux.org/alpine/edge/testing}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Changing the repositories to latest-stable may initiate unexpected release upgrades. Do this at your own risk!}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [https://en.wikipedia.org/wiki/HTTPS#Technical security reasons], it may be a good idea to change the url&#039;s from &#039;&#039;&#039;http&#039;&#039;&#039; to &#039;&#039;&#039;https&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
{{cat|/etc/apk/repositories|#/media/cdrom/apks&lt;br /&gt;
https://dl-cdn.alpinelinux.org/alpine/v3.15/main&lt;br /&gt;
https://dl-cdn.alpinelinux.org/alpine/v3.15/community&lt;br /&gt;
#https://dl-cdn.alpinelinux.org/alpine/edge/main&lt;br /&gt;
#https://dl-cdn.alpinelinux.org/alpine/edge/community&lt;br /&gt;
#https://dl-cdn.alpinelinux.org/alpine/edge/testing}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Some Alpine Linux package mirrors may not support HTTPS. If that is the case, you will need to revert back or change mirrors.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have edited &#039;&#039;&#039;/etc/apk/repositories&#039;&#039;&#039;, sync the repositories with:&lt;br /&gt;
&lt;br /&gt;
{{cmd|# apk update}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing a Display Server (for graphical sessions) ==&lt;br /&gt;
&lt;br /&gt;
==== Xorg ====&lt;br /&gt;
Most desktop environments (DE) or Windows Managers (WM) require Xorg (also called: X11, X). While in the future many will fully migrate to [[Wayland]], currently Xorg is still widely used. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are two ways you can get Xorg installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By default Alpine Linux provides a script that will install Xorg. Run the following command to install Xorg:&lt;br /&gt;
{{cmd|# setup-xorg-base}}&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
{{cmd|# apk add xorg-server xorg-server-common xorg-server-dev xorgproto xorgxrdp xorgxrdp-dev}}&lt;br /&gt;
{{Note| the apk add method is probably incomplete}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Wayland ====&lt;br /&gt;
&#039;&#039;See also: [[Wayland]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Expand|Wayland documentation needs to be expanded}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fonts ==&lt;br /&gt;
&lt;br /&gt;
If you plan to use a graphical desktop environment, you may need/want to install fonts.&lt;br /&gt;
{{Note|depending on the desktop environment/window manager fonts may or may not be installed automatically or as dependencies}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See: [[Fonts|Fonts]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing a desktop environment or window manager ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See: [[Desktop environments and Window managers]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sound ==&lt;br /&gt;
&lt;br /&gt;
By default Alpine does not come with any sound management out of the box. These are your options:&lt;br /&gt;
&lt;br /&gt;
* [[PipeWire]]&lt;br /&gt;
* [[PulseAudio]]&lt;br /&gt;
* [[ALSA]]&lt;br /&gt;
&lt;br /&gt;
{{Note|If you are unsure, {{Pkg|pipewire}} is the recommended option}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Language support ==&lt;br /&gt;
&lt;br /&gt;
{{Expand}}&lt;br /&gt;
&lt;br /&gt;
* Fix unicode defaults: &amp;lt;code&amp;gt;sed -i &#039;s/#unicode=&amp;quot;NO&amp;quot;/#unicode=&amp;quot;NO&amp;quot;\nunicode=&amp;quot;YES&amp;quot;/&#039; /etc/rc.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;apk add musl-locales&amp;lt;/code&amp;gt; Installs a limited set of locales (languages) for musl (C library) generated console messages.&lt;br /&gt;
* Listing defined locales is possible with &amp;lt;code&amp;gt;locale -a&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cp /etc/profile.d/locale.sh /etc/profile.d/locale.sh.sh&amp;lt;/code&amp;gt; Copies the default locale settings. Then the custom override file can be edited &amp;lt;code&amp;gt;nano /etc/profile.d/locale.sh.sh&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;apk add lang&amp;lt;/code&amp;gt; Pulls in the translation packages of all installed packages.&lt;br /&gt;
* &amp;lt;code&amp;gt;apk list hunspell*&amp;lt;/code&amp;gt;  To list available hunspell dictionary packages.&lt;br /&gt;
* &amp;lt;code&amp;gt;apk list *-xy *-xy-*&amp;lt;/code&amp;gt;  To list translation packages for your specific (xy) language (for example, pt for Portuguese).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
&lt;br /&gt;
Some other miscellaneous things that might be useful:&lt;br /&gt;
&lt;br /&gt;
==== Basic tools ====&lt;br /&gt;
&lt;br /&gt;
Alpine is a minimalist Linux distribution. If you expected a behavior like other Linux distributions, the similarity to them will be minimal at best. To install a selection of commonly used packages, run: &lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add sed attr dialog bash bash-completion grep util-linux pciutils usbutils binutils findutils readline lsof less nano curl}}&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;$ export PAGER=less&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
==== I don&#039;t have permission to do anything in my user&#039;s home directory! ====&lt;br /&gt;
&lt;br /&gt;
By default the permissions of your new user(s) home directory may be limited to the root account. Run one of these commands to change that: &lt;br /&gt;
&lt;br /&gt;
{{cmd|# chown &amp;lt;YourUserName&amp;gt; /home/&amp;lt;YourUserName&amp;gt; &amp;amp;&amp;amp; chmod 700 /home/&amp;lt;YourUsername&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
{{cmd|# chown &amp;lt;YourUserName&amp;gt; /home/&amp;lt;YourUserName&amp;gt; &amp;amp;&amp;amp; chmod 750 /home/&amp;lt;YourUsername&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* [[Alpine newbie]]&lt;br /&gt;
* [[Comparison with other distros]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Newbie]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Viridian</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Alpine_Linux:FAQ&amp;diff=21637</id>
		<title>Alpine Linux:FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Alpine_Linux:FAQ&amp;diff=21637"/>
		<updated>2022-03-16T19:56:04Z</updated>

		<summary type="html">&lt;p&gt;Viridian: Fix formatting, tweak wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:filetypes.svg|64px|left|link=]]&lt;br /&gt;
This is a list of &#039;&#039;&#039;frequently asked questions&#039;&#039;&#039; about Alpine Linux.&amp;lt;br&amp;gt;&lt;br /&gt;
If your question is not answered on this page, use the search box above to find work in progress pages not linked here, or in case of no answer, edit this page and write down your question.&lt;br /&gt;
{{Tip| Prepare your question. Think it through. Make it simple and understandable.}} &lt;br /&gt;
&lt;br /&gt;
=General=&lt;br /&gt;
&lt;br /&gt;
Alpine Linux is used heavily in containers (e.g. Docker images) on servers, so many of its main packages are focused on server services.&lt;br /&gt;
&lt;br /&gt;
== Where to start? ==&lt;br /&gt;
&lt;br /&gt;
The [[Installation]] page and [[Post_installation|Post installation]] page provide a basic orientation.&lt;br /&gt;
&lt;br /&gt;
A broader overview may be found on the official [https://alpinelinux.org/about About] page and at the [[Alpine Linux:Overview|wiki overview]].&lt;br /&gt;
&lt;br /&gt;
Please note that testing is safer on your own virtual machine or on a public [https://distrotest.net/AlpineLinux/ DistroTest.net].&lt;br /&gt;
&lt;br /&gt;
== I have found a bug, where can I report it? ==&lt;br /&gt;
&lt;br /&gt;
You can report it on the [https://gitlab.alpinelinux.org/groups/alpine/-/issues bugtracker], but search it first to see if the issue has already been reported.&lt;br /&gt;
&lt;br /&gt;
== Are there any details about the releases available? ==&lt;br /&gt;
Yes, please check the [https://alpinelinux.org/releases/ releases] page.&lt;br /&gt;
&lt;br /&gt;
== How can I contribute? ==&lt;br /&gt;
You can contribute by:&lt;br /&gt;
* Using the software and giving feedback.&lt;br /&gt;
* Documenting your [https://www.alpinelinux.org Alpine Linux] experiences on this [[Main_Page|wiki]].&lt;br /&gt;
* In many other ways.&lt;br /&gt;
Please visit [[Contribute|Contribute page]] to read more about this topic.&lt;br /&gt;
&lt;br /&gt;
== Why don&#039;t I have man pages or where is the &#039;man&#039; command? ==&lt;br /&gt;
The &amp;lt;code&amp;gt;man&amp;lt;/code&amp;gt; command and &#039;&#039;&#039;man pages&#039;&#039;&#039; are not installed by default.&lt;br /&gt;
&lt;br /&gt;
Install the &amp;lt;code&amp;gt;man&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{{cmd|# apk add mandoc}}&lt;br /&gt;
Install basic manual pages.  {{pkg|man-pages}} package provides the system&#039;s &#039;&#039;core&#039;&#039; manual pages:&lt;br /&gt;
{{cmd|# apk add man-pages}}&lt;br /&gt;
Install the &amp;lt;code&amp;gt;apropos&amp;lt;/code&amp;gt; command to search in &#039;&#039;&#039;man pages&#039;&#039;&#039;:&lt;br /&gt;
{{cmd|# apk add mandoc-apropos}}&lt;br /&gt;
Once installed, add documentation for the package where you need it.  For example, say you installed {{pkg|nftables}} and you now require its &#039;&#039;&#039;man pages&#039;&#039;&#039;:&lt;br /&gt;
{{cmd|# apk add nftables-doc}}&lt;br /&gt;
To always install the documentation companion package add the {{pkg|docs}} meta package.  Keep in mind not all packages have a corresponding documentation package and even when it has one it may not include &#039;&#039;&#039;man pages&#039;&#039;&#039;:&lt;br /&gt;
{{cmd|# apk add docs}}&lt;br /&gt;
&lt;br /&gt;
== What is the difference between edge and stable releases? ==&lt;br /&gt;
Stable releases are just what they sound like: initially a point-in-time snapshot of the package archives, but then maintained with bugfixes only in order to keep a stable environment.&lt;br /&gt;
&lt;br /&gt;
[[Edge]] is more of a rolling-release, with the latest and greatest packages available in the online repositories.&amp;lt;br&amp;gt;&lt;br /&gt;
Occasionally, snapshot ISO images of the then-current state of [[edge]] are made and are available for download.&amp;lt;br&amp;gt;&lt;br /&gt;
Typically these are made when there are major kernel upgrades or package upgrades that require initramfs rebuilds.&lt;br /&gt;
&lt;br /&gt;
== What architectures does Alpine support? ==&lt;br /&gt;
As Alpine uses the Linux kernel, it supports:&lt;br /&gt;
* &#039;&#039;&#039;aarch64&#039;&#039;&#039;: The 64-bit only ARM execution state of the ARMv8 device machines.&lt;br /&gt;
* &#039;&#039;&#039;armhf&#039;&#039;&#039;: The newer ARM hard-float for newer, more powerful 32-bit devices alongside 64-bit&lt;br /&gt;
* &#039;&#039;&#039;armv7&#039;&#039;&#039;: The 32-bit only ARM execution state of the ARMv7 devices machines.&lt;br /&gt;
* &#039;&#039;&#039;s390x&#039;&#039;&#039;: For the Super powered IBM mainframes, especially IBM Z and IBM LinuxONE servers.&lt;br /&gt;
* &#039;&#039;&#039;ppc64le&#039;&#039;&#039;: For 64-bit PowerPC devices with pure little-endian mode, mostly for POWER8 and POWER9&lt;br /&gt;
* &#039;&#039;&#039;x86&#039;&#039;&#039;: (i386, PC 32bit) and x86_64 (i686, PC 64bit and amd64)&lt;br /&gt;
* &#039;&#039;&#039;x86_64&#039;&#039;&#039;: The popular AMD64 compatible 64-bit x86 based machines, i386 is not recommended for newer/latest hardware.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please check [https://alpinelinux.org/downloads Download] page for media availability on each one&#039;&#039;&#039; and check [[Alpine_Linux:Releases|Releases]] pages for latest.&lt;br /&gt;
&lt;br /&gt;
== What kinds of release of Alpine Linux are available? ==&lt;br /&gt;
Please check the [https://alpinelinux.org/releases/ Releases] page for more information.&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
&lt;br /&gt;
== What is the difference between &#039;&#039;sys&#039;&#039;, &#039;&#039;data&#039;&#039;, and &#039;&#039;diskless&#039;&#039; when running &amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;sys:&#039;&#039;&#039; This mode is a traditional disk install. The following partitions will be created on the disk: &#039;&#039;/boot/&#039;&#039;, &#039;&#039;/&#039;&#039; (filesystem root) and &#039;&#039;swap&#039;&#039;.&lt;br /&gt;
This mode may be used for development boxes, desktops, virtual servers, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;data:&#039;&#039;&#039; This mode uses your disk(s) for data storage, not for the operating system. Runs from the media and only a &#039;&#039;/var/&#039;&#039; is created on disk.  The system itself will run from a &#039;&#039;tmpfs&#039;&#039; (RAM).  Use this mode if you only want to use the disk(s) for data, like &#039;&#039;mailspool&#039;&#039;, &#039;&#039;databases&#039;&#039;, &#039;&#039;logs&#039;&#039;, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;diskless:&#039;&#039;&#039; No disks are to be used. [[Alpine local backup]] may still be used in this mode.&lt;br /&gt;
&lt;br /&gt;
These modes are explained further on the [[Installation#Installation_Overview|&#039;&#039;&#039;Installation&#039;&#039;&#039;]] page.&lt;br /&gt;
&lt;br /&gt;
== How do I upgrade Alpine? ==&lt;br /&gt;
&lt;br /&gt;
To upgrade to a new stable release or edge:&lt;br /&gt;
&amp;lt;code&amp;gt;apk upgrade --available&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Why don&#039;t my cron jobs run?==&lt;br /&gt;
&lt;br /&gt;
Start service &#039;&#039;crond&#039;&#039; and add it to runlevel:&lt;br /&gt;
&lt;br /&gt;
: {{cmd|rc-service crond start &amp;amp;&amp;amp; rc-update add crond}}&lt;br /&gt;
&lt;br /&gt;
After that the cron daemon is started automatically on system boot and executes the scripts placed in the folders under &#039;&#039;/etc/periodic/&#039;&#039; - there are folders for &#039;&#039;15min&#039;&#039;, &#039;&#039;hourly&#039;&#039;, &#039;&#039;daily&#039;&#039;, &#039;&#039;weekly&#039;&#039; and &#039;&#039;monthly&#039;&#039; scripts.&lt;br /&gt;
&lt;br /&gt;
To check whether your scripts are likely to run, use the &#039;&#039;run-parts&#039;&#039; command, for example:&lt;br /&gt;
&lt;br /&gt;
: {{cmd|run-parts --test /etc/periodic/15min}}&lt;br /&gt;
&lt;br /&gt;
This command will tell you what should run but will not actually execute the scripts.&lt;br /&gt;
&lt;br /&gt;
If the results of the test are not as expected, check the following:&lt;br /&gt;
&lt;br /&gt;
* Make sure the script is executable - if unsure, issue the command {{cmd|chmod a+x /etc/periodic/[path/scriptname]}}&lt;br /&gt;
* Make sure the first line of your script is &amp;lt;code&amp;gt;#!/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Do not use periods on your script file names - this stops them from working; for example: {{Path|/etc/periodic/daily/myscript}} will run, but {{Path|/etc/periodic/daily/myscript.sh}} won&#039;t.&lt;br /&gt;
&lt;br /&gt;
= Time and timezones =&lt;br /&gt;
&lt;br /&gt;
== How do I set the local timezone? ==&lt;br /&gt;
&lt;br /&gt;
If you wish to edit the &#039;&#039;timezone&#039;&#039; (TZ) after installation, run the [[Alpine_setup_scripts#setup-timezone|setup-timezone]] script.&lt;br /&gt;
&lt;br /&gt;
= Packages =&lt;br /&gt;
&lt;br /&gt;
== Can you build an apk package for ...? ==&lt;br /&gt;
Yes, we probably can.&amp;lt;br&amp;gt;&lt;br /&gt;
Please create a [https://gitlab.alpinelinux.org/alpine/aports/issues/new issue] in the [https://gitlab.alpinelinux.org bugtracker]. Prefix it with &amp;quot;feat&amp;quot; in the title and include a short description (one-line), a URL for the home page, and a URL for the source package.&lt;br /&gt;
&lt;br /&gt;
== How can I build my own package? ==&lt;br /&gt;
Please see the [[Creating an Alpine package]] page.&lt;br /&gt;
&lt;br /&gt;
== What does &amp;quot;required by: world[$pkgname]&amp;quot; mean? ==&lt;br /&gt;
&lt;br /&gt;
It means that the package you try to install does not exist in the repositories you have configured.&lt;br /&gt;
&lt;br /&gt;
Maybe you forgot to add community, testing or unmaintained to &#039;&#039;/etc/apk/repositories&#039;&#039;? &lt;br /&gt;
&lt;br /&gt;
Or is the package in a [[Alpine_Linux_package_management#Repository_pinning|pinned repository]] and you forgot to suffix the package with the repo tag? Example:&lt;br /&gt;
&lt;br /&gt;
{{cmd|apk add experimental-package@testing}}&lt;br /&gt;
&lt;br /&gt;
== How can I find out if a certain package exists in Alpine? ==&lt;br /&gt;
&lt;br /&gt;
If you want to only search repositories you have configured in /etc/apk/repositories, then &amp;lt;code&amp;gt;apk search $pkgname&amp;lt;/code&amp;gt; should get you sorted. If you want to search all repositories have a look at the [https://pkgs.alpinelinux.org/ online pkg oracle]&lt;br /&gt;
&lt;br /&gt;
== WARNING: Ignoring APKINDEX.xxxx.tar.gz ==&lt;br /&gt;
If you get &amp;lt;code&amp;gt;WARNING: Ignoring APKINDEX.xxxx.tar.gz: No such file or directory&amp;lt;/code&amp;gt; while running [[Alpine_Linux_package_management|package related tools]], check your {{Path|/etc/apk/repositories}} file.&lt;br /&gt;
&lt;br /&gt;
To check the content of the repositories file&lt;br /&gt;
{{Cmd|cat /etc/apk/repositories}}&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
{{Cmd|setup-apkrepos}}&lt;br /&gt;
&lt;br /&gt;
= Dynamic DNS =&lt;br /&gt;
== How do I schedule a regular dynamic DNS update? ==&lt;br /&gt;
You&#039;ll want to install the {{pkg|ez-ipupdate}} package:&lt;br /&gt;
{{cmd|apk add ez-ipupdate}}&lt;br /&gt;
&lt;br /&gt;
After that, create a new file at {{path|/etc/ez-ipupdate.conf}} with contents similar to:&lt;br /&gt;
 service-type=dyndns&lt;br /&gt;
 user=myusername:mypassword&lt;br /&gt;
 interface=eth1&lt;br /&gt;
 host=myhostname.dyndns.org&lt;br /&gt;
&lt;br /&gt;
Make the new ip cache directory:&lt;br /&gt;
{{cmd|mkdir /var/cache/ez-ipupdate&lt;br /&gt;
lbu add /var/cache/ez-ipupdate}}&lt;br /&gt;
&lt;br /&gt;
Then schedule a new cron job with this command:&lt;br /&gt;
{{cmd|echo &amp;gt;&amp;gt; /var/log/ez-ipupdate &amp;amp;&amp;amp; \&amp;lt;br&amp;gt;/bin/date &amp;gt;&amp;gt; /var/log/ez-ipupdate &amp;amp;&amp;amp; \&amp;lt;br&amp;gt;ez-ipupdate --config-file /etc/ez-ipupdate.conf -f -F /var/run/ez-ipupdate.pid \&amp;lt;br&amp;gt;  --cache-file /var/cache/ez-ipupdate/ipcache --quiet &amp;gt;&amp;gt; /var/log/ez-ipupdate 2&amp;gt;&amp;amp;1}}&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to backup your settings!&lt;br /&gt;
{{cmd|lbu ci}}&lt;br /&gt;
&lt;br /&gt;
= Terminal =&lt;br /&gt;
&lt;br /&gt;
== How to enable/fix colors for git? ==&lt;br /&gt;
&lt;br /&gt;
The problem is not in git itself or terminal, but in the &amp;lt;tt&amp;gt;less&amp;lt;/tt&amp;gt; command.&lt;br /&gt;
Busybox’s &amp;lt;tt&amp;gt;less&amp;lt;/tt&amp;gt; doesn’t support &amp;lt;tt&amp;gt;-r&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;--raw-control-chars&amp;lt;/tt&amp;gt;) and &amp;lt;tt&amp;gt;-R&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;--RAW-CONTROL-CHARS&amp;lt;/tt&amp;gt;) options.&lt;br /&gt;
&lt;br /&gt;
The simplest (yet not ideal) solution is to install GNU less:&lt;br /&gt;
&lt;br /&gt;
{{cmd|apk add less}}&lt;br /&gt;
&lt;br /&gt;
= Old questions, no longer frequently asked =&lt;br /&gt;
&lt;br /&gt;
== Alpine freezes during boot from Compact Flash, how can I fix? ==&lt;br /&gt;
Most Compact Flash card readers do not support proper DMA.&amp;lt;br&amp;gt;&lt;br /&gt;
You should append &#039;&#039;&#039;nodma&#039;&#039;&#039; to the &#039;&#039;append&#039;&#039; line in {{path|syslinux.cfg}}.&lt;br /&gt;
&lt;br /&gt;
== How do I remove the CDROM? ==&lt;br /&gt;
Since the modloop loopback device is on CDROM you cannot just run &amp;lt;code&amp;gt;eject&amp;lt;/code&amp;gt;. You need to unmount the modloop first.&amp;lt;br&amp;gt;&lt;br /&gt;
Unmounting both the modloop and the CDROM in one step can be done by executing:&lt;br /&gt;
{{Cmd|/etc/init.d/modloop stop}}&lt;br /&gt;
&lt;br /&gt;
Then it&#039;s possible to eject the CDROM:&lt;br /&gt;
{{Cmd|eject}}&lt;br /&gt;
&lt;br /&gt;
== How can I install a custom firmware in a diskless system? ==&lt;br /&gt;
&lt;br /&gt;
The modules and firmware are both special images which are mounted as read-only.&amp;lt;br&amp;gt;&lt;br /&gt;
To fix this issue you can copy the firmware directory to your writeable media (cf/usb) and copy your custom firmware to it.&amp;lt;br&amp;gt;&lt;br /&gt;
After reboot Alpine should automatically use the directory on your local storage instead of the loopback device.&lt;br /&gt;
&lt;br /&gt;
== How do I play my .ogg/.mp3 files? ==&lt;br /&gt;
First, the sound card should be recognized (you must have {{path|/dev/snd/*****}} files)&lt;br /&gt;
&lt;br /&gt;
{{pkg|sox}}, {{pkg|mpg123}}, etc all use the oss sound driver, while Alpine uses ALSA drivers.&amp;lt;br&amp;gt;&lt;br /&gt;
So you need to load the snd-pcm-oss compatibility module.&amp;lt;br&amp;gt;&lt;br /&gt;
While you&#039;re at it, you might need {{pkg|aumix}} to turn up the sound volume&lt;br /&gt;
{{cmd|echo snd-pcm-oss &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
modprobe snd-pcm-oss &lt;br /&gt;
apk_add aumix sox&lt;br /&gt;
aumix (set volume settings)&lt;br /&gt;
play really_cool_song.mp3}}&lt;br /&gt;
&lt;br /&gt;
== OpenNTPD reports an error with &amp;quot;adjtime&amp;quot; ==&lt;br /&gt;
Your log contains something like:&lt;br /&gt;
 reply from 85.214.86.126: offset 865033148.784255 delay 0.055466, next query 32s&lt;br /&gt;
 reply from 202.150.212.24: offset 865033148.779314 delay 0.400771, next query 3s&lt;br /&gt;
 adjusting local clock by 865033148.779835s                                      &lt;br /&gt;
 adjtime failed: Invalid argument    &lt;br /&gt;
&lt;br /&gt;
{{pkg|openntpd}} is supposed to make small adjustments in the time without causing time jumps.&amp;lt;br&amp;gt;&lt;br /&gt;
If the adjustment is too big then something is clearly wrong and ntpd gives up. (its actually adjtime(3) that has a limit on how big adjustments are allowed)&lt;br /&gt;
&lt;br /&gt;
You can make ntpd set the time at startup by adding &#039;&#039;-s&#039;&#039; option to ntpd. This is done by setting &#039;&#039;&#039;NTPD_OPTS=&amp;quot;-s&amp;quot;&#039;&#039;&#039; in {{path|/etc/conf.d/ntpd}}.&lt;br /&gt;
&lt;br /&gt;
== Using a cron job to keep the time in sync ==&lt;br /&gt;
Add the following to {{path|/etc/periodic/daily}} (or use another folder under the {{path|/etc/periodic}} heirarchy if you want to run the script more/less frequently)&lt;br /&gt;
&lt;br /&gt;
Example: file called {{path|do-ntp}}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
ntpd -d -q -n -p uk.pool.ntp.org&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This queries the uk time server pool - you can modify this to suit your localisation, or just use &#039;&#039;pool.ntp.org&#039;&#039;. More info here: [http://www.pool.ntp.org/zone/@ http://www.pool.ntp.org/zone/@]&lt;br /&gt;
&lt;br /&gt;
== Windows clients reports an error when trying to sync ==&lt;br /&gt;
{{pkg|openntpd}} needs to run for a while before it is satisfied it is in sync.&lt;br /&gt;
Until then it will set a flag &amp;quot;clock not synchronized&amp;quot; and Windows will report an error while trying to sync with your {{pkg|openntpd}} server.&lt;br /&gt;
&lt;br /&gt;
Only thing to do is wait, do something else for 15-20mins and then check.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Newbie]]&lt;/div&gt;</summary>
		<author><name>Viridian</name></author>
	</entry>
</feed>