Alpine setup scripts
Feature descriptions for available Alpine Linux setup scripts (/sbin/setup-*).
(Some particular example usages can be seen at Alpine for new users install manuals.)
setup-alpine
This is the main Alpine configuration and installation script.
The script interactively walks the user through executing several auxiliary setup-*
scripts, in the order shown below.
The bracketed options represent example configuration choices, formatted as they may be supplied when manually calling the auxiliary setup scripts, or with an "answerfile" to setup-alpine
itself.
setup-keymap
[us us]- setup-hostname [-n alpine-test]
- setup-interfaces [-i < interfaces-file]
/etc/init.d/networking --quiet start &
- if none of the networking interfaces were configured using dhcp, then:
setup-dns
[-d example.com -n "192.168.0.1 [...]"] - set the root password
- if not in quick mode, then:
setup-timezone
[-z UTC | -z America/New_York | -p EST+5] - enable the new hostname (
/etc/init.d/hostname --quiet restart
) - add
networking
andurandom
to the boot rc level, andacpid
andcron
to the default rc level, and start the boot and default rc services - extract the fully-qualified domain name and hostname from /etc/resolv.conf and
hostname
, and update /etc/hosts setup-proxy
[-q "http://webproxy:8080"], and activate proxy if it was configuredsetup-apkrepos
[-r (to select a mirror randomly)]- if not in quick mode, then:
setup-sshd
[-c openssh | dropbear | none] - if not in quick mode, then:
setup-ntp
[-c chrony | openntpd | busybox | none] - if not in quick mode, then:
DEFAULT_DISK=none
setup-disk
-q
[-m data /dev/sda] - if installation mode selected during setup-disk was "data" instead of "sys", then:
setup-lbu
[/media/sdb1] - if installation mode selected during setup-disk was "data" instead of "sys", then:
setup-apkcache
[/media/sdb1/cache | none]
setup-alpine
itself accepts the following command-line switches
- -h
- Shows the up-to-date usage help message.
- -a
- Create an overlay file: this creates a temporary directory and saves its location in ROOT; however, the script doesn't export this variable so I think this feature isn't currently functional.
- -c answerfile
- Create a new "answerfile", with default choices. You can edit the file and then invoke
setup-alpine -f answerfile
. - -f answerfile
- Use an existing "answerfile", which may override some or all of the interactive prompts.
- -q
- Run in "quick mode".
setup-hostname
setup-hostname
[-h] [-n hostname]
Options:
-h Show help
-n Specify hostname
This script allows quick and easy setup of the system hostname by writing it to /etc/hostname. The script prevents you from writing an invalid hostname (such as one that used invalid characters or starts with a '-' or is too long).
The script can be invoked manually or is called as part of the setup-alpine
script.
setup-interfaces
setup-interfaces [-i < interfaces-file]
Note that the contents of interfaces-file has to be supplied as stdin, rather than naming the file as an additional argument. The contents should have the format of /etc/network/interfaces, such as:
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp hostname alpine-test
setup-dns
setup-dns
[-h] [-d domain name] [-n name server]
Options:
-h Show help
-d specify search domain name
-n name server IP
The setup-dns script is stored in /sbin/setup-dns and allows quick and simple setup of DNS servers (and a DNS search domain if required). Simply running setup-dns
will allow interactive use of the script, or the options can be specified.
The information fed to this script is written to /etc/resolv.conf
Example usage:
setup-dns -d example.org -n 8.8.8.8
Example /etc/resolv.conf:
search example.org nameserver 8.8.8.8
It can be run manually but is also invoked in the setup-alpine
script unless interfaces are configured for DHCP.
setup-timezone
setup-timezone
[-z UTC | -z America/New_York | -p EST+5]
Can pre-select the timezone using either of these switches:
-z subfolder of /usr/share/zoneinfo
-p POSIX TZ format
setup-proxy
setup-proxy
[-hq] [PROXYURL]
Options:
-h Show help
-q Quiet mode prevents changes from taking effect until after reboot
This script requests the system proxy to use in the form http://<proxyurl>:<port>
for example:
http://10.0.0.1:8080
To set no system proxy use none
.
This script exports the following environmental variables:
http_proxy=$proxyurl
https_proxy=$proxyurl
ftp_proxy=$proxyurl
where $proxyurl
is the value input.
If none
was chosen then the value it is set to a blank value (and so no proxy is used).
setup-sshd
setup-sshd
[-h] [-c choice of SSH daemon]
Options:
-h Show help
-c SSH daemon where SSH daemon can be one of the following:
openssh
install the openSSH daemon
dropbear
install the dropbear daemon
none
Do not install an SSH daemon
Example usage:
setup-sshd -c dropbear
The setup-sshd script is stored in /sbin/setup-sshd and allows quick and simple setup of either the OpenSSH or Dropbear SSH daemon & client.
It can be run manually but is also invoked in the setup-alpine
script.
setup-apkrepos
setup-apkrepos
[-fhr] [REPO...]
Setup apk
repositories.
options:
-f Detect and add fastest mirror
-r Add a random mirror and do not prompt
-1 Add first mirror on the list (normally a CDN)
This is run as part of the setup-alpine
script.
setup-disk
DEFAULT_DISK=none setup-disk -q
[-m data | sys] [mountpoint directory | /dev/sda ...]
In "sys" mode, it's an installer, it permanently installs Alpine on the disk, in "data" mode, it provides a larger and persistent /var volume.
This script accepts the following command-line switches:
- -k kernel flavor
- -o apkovl file
- Restore system from apkovl file
- -m data | sys
- Don't prompt for installation mode. With -m data, the supplied devices are formatted to use as a /var volume.
- -r
- Use RAID1 with a single disk (degraded mode)
- -L
- Create and use volumes in a LVM group
- -s swap size in MB
- Use 0 to disable swap
- -q
- Exit quietly if no disks are found
- -v
- Verbose mode
The script also honors the following environment variables:
BOOT_SIZE
- Size of the boot partition in MB; defaults to 100. Only used if -m sys is specified or interactively selected.
SWAP_SIZE
- 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't be more than 1/3 the size of the smallest disk, and if less than 64 will just be 0. Only used if -m sys is specified or interactively selected.
ROOTFS
- Filesystem to use for the / volume; defaults to ext4. Only used if -m sys is specified or interactively selected. Supported filesystems are: ext2 ext3 ext4 btrfs xfs.
BOOTFS
- Filesystem to use for the /boot volume; defaults to ext4. Only used if -m sys is specified or interactively selected. Supported filesystems are: ext2 ext3 ext4 btrfs xfs.
VARFS
- Filesystem to use for the /var volume; defaults to ext4. Only used if -m data is specified or interactively selected. Supported filesystems are: ext2 ext3 ext4 btrfs xfs.
SYSROOT
- Mountpoint to use when creating volumes and doing traditional disk install (-m sys). Defaults to /mnt.
MBR
- Path of MBR binary code, defaults to /usr/share/syslinux/mbr.bin.
BOOTLOADER
- Bootloader to use, defaults to syslinux. Supported bootloaders are: grub syslinux zipl.
DISKLABEL
- Disklabel to use, defaults to dos. Supported disklabels are: dos gpt eckd.
Partitioning
If you have complex partitioning needs, you can partition, format, and mount your volumes manually, then just supply the root mountpoint to setup-disk
. Doing so implicitly behaves as though -m sys had also been specified.
See Setting up disks manually for more information.
RAID
setup-disk
will automatically build a RAID array if you supply the -r switch, or if you specify more than one device. The array will always be RAID1 (and --metadata=0.90) for the /boot volumes, but will be RAID5 (and --metadata=1.2 for non-boot volumes when 3 or more devices are supplied.
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 setup-disk
.
LVM
setup-disk
will automatically build and use volumes in a LVM group if you supply the -L switch. The group and volumes created by the script will have the following names:
- volume group: vg0
- swap volume: lv_swap (only created when swap size > 0)
- root volume: lv_root (only created when -m sys is specified or interactively selected)
- var volume: lv_var (only created when -m data is specified or interactively selected)
The lv_var or lv_root volumes are created to occupy all remaining space in the volume group.
If you need to change any of these settings, you can use vgrename
, lvrename
, lvreduce
or lvresize
.
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 setup-disk
.
setup-bootable
This is a standalone script; it's not invoked by setup-alpine
but must be run manually.
Its purpose is to create media that boots into tmpfs by copying the contents of an ISO onto a USB key, CF, or similar media.
For a higher-level walkthrough, see Creating a bootable Alpine Linux USB Stick from the command line.
This script accepts the following arguments and command-line switches (you can run setup-bootable -h
to see a usage message).
setup-bootable source [dest]
The argument source can be a directory or an ISO (will be mounted to MNT
or /mnt) or a URL (will be downloaded with WGET
or wget
). The argument dest can be a directory mountpoint, or will default to /media/usb if not supplied.
- -k
- Keep alpine_dev in syslinux.cfg; otherwise, replace with UUID.
- -u
- Upgrade mode: keep existing syslinux.cfg and don't run
syslinux
- -f
- Overwrite syslinux.cfg even if -u was specified.
- -s
- Force the running of
syslinux
even if -u was specified.
- -v
- Verbose mode
The script will ensure that source and dest are available; will copy the contents of source to dest, ensuring first that there's enough space; and unless -u was specified, will make dest bootable.
setup-xorg-base
This is a standalone script; it's not invoked by setup-alpine
but must be run manually.
Installs a basic xorg configuration, e.g. among other packages: xorg-server xf86-video-vesa xf86-input-evdev xf86-input-mouse xf86-input-keyboard udev
.
Additional packages may be supplied as arguments to setup-xorg-base
. You might need, for example, some of: xf86-input-synaptics xf86-video-something xinit
. For Qemu, see Qemu. For Intel GPUs, see Intel Video.
Documentation needed
setup-xen-dom0
setup-gparted-desktop
Uses openbox.
This is a standalone script; it's not invoked by setup-alpine
but must be run manually.
setup-mta
Uses ssmtp.
This is a standalone script; it's not invoked by setup-alpine
but must be run manually.
setup-acf
This is a standalone script; it's not invoked by setup-alpine
but must be run manually.
This script was named setup-webconf
before Alpine 1.9 beta 4.
See ACF pages for more information.