Alpine 设置脚本
可用 Alpine Linux 设置脚本的功能描述 (/usr/sbin/setup-*)。
这些脚本可以通过使用 apk
安装 alpine-conf
包来安装。
如果您没有安装 Alpine Linux,您可以在其 git 仓库中查找和检查这些脚本。
setup-alpine
这是主要的 Alpine 配置和安装脚本。
该脚本以交互方式引导用户执行几个辅助 setup-*
脚本,顺序如下所示。
括号中的选项表示示例配置选择,其格式可能在手动调用辅助设置脚本或使用 setup-alpine
“answerfile”(见下文)时提供。
setup-keymap
[us us]- setup-hostname [-n alpine-test]
- setup-interfaces [-i < interfaces-file]
rc-service networking --quiet start &
- 如果没有任何网络接口使用 dhcp 配置,则:
setup-dns
[-d example.com -n "192.168.0.1 [...]"] - 设置 root 密码
- 如果不是快速模式,则:
setup-timezone
[-z UTC | -z America/New_York | -p EST+5] - 启用新的主机名 (
rc-service hostname --quiet restart
) - 将
networking
和seedrng
(在 OpenRC 0.45 之前的版本中也称为urandom
)添加到 boot rc 级别,并将acpid
和crond
添加到 default rc 级别,并启动 boot 和 default rc 服务 - 从 /etc/resolv.conf 和
hostname
中提取完全限定域名和主机名,并更新 /etc/hosts setup-proxy
[-q "http://webproxy:8080"],并在配置代理时激活代理setup-apkrepos
[-r (随机选择镜像)]- setup-user
- 如果不是快速模式,则:
setup-sshd
[-c openssh | dropbear | none] - 如果不是快速模式,则:
setup-ntp
[-c chrony | openntpd | busybox | none] - 如果不是快速模式,则:
DEFAULT_DISK=none
setup-disk
-q
[-m data /dev/sda](请参阅 Installation#Installation_Overview 了解有关磁盘模式的信息) - 如果在 setup-disk 期间选择的安装模式是 “data” 而不是 “sys”,则:
setup-lbu
[/media/sdb1] - 如果在 setup-disk 期间选择的安装模式是 “data” 而不是 “sys”,则:
setup-apkcache
[/media/sdb1/cache | none]
setup-alpine
本身接受以下命令行开关
- -h
- 显示最新的使用帮助消息。
- -a
- 创建覆盖文件:这将创建一个临时目录并将其位置保存在 ROOT 中;但是,该脚本不导出此变量,因此我认为此功能目前不起作用。
- -c answerfile
- 使用默认选项创建新的 answerfile。您可以编辑该文件,然后调用
setup-alpine -f answerfile
。 - -f answerfile
- 使用现有的 answerfile,它可能会覆盖一些或所有交互式提示。您还可以为
setup-alpine
指定 HTTP(S) 或 FTP URL 以 下载 answerfile。这样做将在尚未激活网络配置的情况下启动临时网络配置。
- -q
- 在 “快速模式” 下运行。
setup-hostname
setup-hostname
[-h] [-n 主机名]
选项
-h 显示帮助
-n 指定主机名
此脚本允许通过将其写入 /etc/hostname 来快速轻松地设置系统主机名。该脚本可防止您写入无效的主机名(例如使用无效字符或以 '-' 开头或太长的主机名)。该脚本可以手动调用,也可以作为 setup-alpine
脚本的一部分调用。
setup-interfaces
setup-interfaces [-i < interfaces-file]
请注意,interfaces-file 的内容必须作为 stdin 提供,而不是将文件命名为附加参数。内容应具有 /etc/network/interfaces 的格式,例如
/etc/network/interfaces 的内容
setup-dns
setup-dns
[-h] [-d 域名] [-n 名称服务器]
选项
-h 显示帮助
-d 指定搜索域名
-n 名称服务器 IP
setup-dns 脚本存储在 /sbin/setup-dns 中,允许快速简单地设置 DNS 服务器(以及在需要时设置 DNS 搜索域)。只需运行 setup-dns
即可交互式使用该脚本,或者可以指定选项。
提供给此脚本的信息将写入 /etc/resolv.conf
示例用法(其中 192.168.0.1 是本地路由器/dns 转发器)
setup-dns -d example.org -n 192.168.0.1
/etc/resolv.conf 示例
/etc/resolv.conf 的内容
它可以手动运行,但除非接口配置为 DHCP,否则也会在 setup-alpine
脚本中调用。
setup-timezone
setup-timezone
[-z UTC | -z America/New_York | -p EST+5]
可以使用以下任一开关预先选择时区
-z /usr/share/zoneinfo 的子文件夹
-p POSIX TZ 格式
要手动更改时区,请参阅 设置时区。
setup-proxy
setup-proxy
[-hq] [PROXYURL]
选项
-h 显示帮助
-q 静默模式 阻止更改在重启后生效
此脚本请求系统代理以 http://<proxyurl>:<port>
的形式使用,例如:http://10.0.0.1:8080
要设置无系统代理,请使用 none
。此脚本导出以下环境变量
http_proxy=$proxyurl
https_proxy=$proxyurl
ftp_proxy=$proxyurl
其中 $proxyurl
是输入的值。如果选择 none
,则将其值设置为空值(因此不使用代理)。
setup-apkrepos
setup-apkrepos
[-fhr] [REPO...]
设置 apk
仓库。
选项
-c 启用 community 仓库
-f 检测并添加最快镜像
-h 显示帮助
-r 添加随机镜像且不提示
-1 添加列表中的第一个镜像(通常是 CDN)
这作为 setup-alpine
脚本的一部分运行。
setup-user
setup-user
[-h] [-a] [-u] [-f FULLNAME] [-g GROUPS] [-k SSHKEY] [用户名]
选项
-h 显示帮助
-a 创建管理员用户。添加到 wheel 组并设置 doas。
-u 自动解锁用户(例如,使用 ssh 密钥为登录非交互式创建用户)
-f 设置用户的全名
-g 要将用户添加到的组的逗号或空格分隔列表
-k ssh 密钥或 ssh 密钥的 URL (例如。 https://gitlab.alpinelinux.org/user.keys) 或 none
表示无密钥
如果未指定用户名,将提示用户输入。
setup-user 脚本存储在 /sbin/setup-user 中,允许快速简单地设置用户帐户。它可以手动运行,但也会在 setup-alpine
脚本中调用。
setup-sshd
setup-sshd
[-h] [-c SSH 守护进程的选择]
选项
-h 显示帮助
-c SSH 守护进程 其中 SSH 守护进程可以是以下之一
openssh
安装 openSSH 守护进程
dropbear
安装 dropbear 守护进程
none
不安装 SSH 守护进程
示例用法
setup-sshd -c dropbear
setup-sshd 脚本存储在 /sbin/setup-sshd 中,允许快速简单地设置 OpenSSH 或 Dropbear SSH 守护进程和客户端。它可以手动运行,但也会在 setup-alpine
脚本中调用。
setup-ntp
来自 维基百科:
网络时间协议 (NTP) 是一种网络协议,用于计算机系统之间通过分组交换、可变延迟数据网络进行时钟同步。
用法:setup-ntp [-h] [busybox|openntpd|chrony|none] 设置 NTP 时间同步选项:-h 显示此帮助 如果未指定 NTP 守护进程,则提示用户
setup-ntp
脚本存储在 /sbin/setup-ntp 中,允许快速简单地设置 NTP 客户端。它可以手动运行,但也会在 setup-alpine
脚本中调用。
setup-disk
DEFAULT_DISK=none setup-disk -q
[-m data | sys] [挂载点目录 | /dev/sda ...]
在 “sys” 模式下,它是一个安装程序,它将 Alpine Linux 永久安装在磁盘上;在 “data” 模式下,它提供一个更大且持久的 /var 卷。
此脚本接受以下命令行开关
- -k 内核 flavor
- -o apkovl 文件
- 从 apkovl 文件 还原系统
- -m data | sys
- 不提示安装模式。使用 -m data,提供的设备将被格式化为用作 /var 卷。
- -r
- 使用 RAID1 与单个磁盘(降级模式)
- -L
- 在 LVM 组中创建和使用卷
- -s 交换空间大小(MB)
- 使用 0 禁用交换空间
- -q
- 如果没有找到磁盘则静默退出
- -v
- 详细模式
该脚本遵循以下 环境变量
环境变量
以下环境变量可以组合使用。
如果指定了 BOOTLOADER
,将使用指定的引导加载程序。如果未指定引导加载程序,则默认引导加载程序为 syslinux(extlinux),除非检测到 EFI 或由 USE_EFI
显式设置,这将选择 grub。支持的引导加载程序有:grub、syslinux
如果指定了 KERNELOPTS
,它将附加到内核引导参数。默认为:quiet
如果指定了 DISKLABEL
,将使用指定的分区标签。如果未指定分区标签,则默认标签为 dos,除非检测到 EFI 或由 USE_EFI
显式设置,这将选择 gpt。支持的分区标签有:dos、gpt
如果指定了 BOOTFS
、ROOTFS
、VARFS
,则使用指定的文件系统格式化分区。如果未指定,则默认文件系统为 ext4。VARFS
仅在指定 -m data 或以交互方式选择时使用,而 BOOTFS
和 ROOTFS
仅在指定 -m sys 或以交互方式选择时使用。
支持的文件系统为
boot: ext2, ext3, ext4, btrfs, xfs, vfat(EFI) root: ext2, ext3, ext4, btrfs, xfs var : ext2, ext3, ext4, btrfs, xfs
如果指定了 BOOT_SIZE
,则设置 boot 分区的大小(MB);默认为 100。仅在指定 -m sys 或以交互方式选择时使用。
如果指定了 SWAP_SIZE
,则设置交换卷的大小(MB);设置为 0 以禁用交换空间。如果未指定,则默认为 RAM 的两倍,最多 4096,但不会超过最小磁盘大小的 1/3,如果小于 64 则将为 0。仅在指定 -m sys 或以交互方式选择时使用。
如果指定了 SYSROOT
,则设置在创建卷和执行传统磁盘安装 (-m sys) 时使用的挂载点。默认为 /mnt。
如果指定了 MBR
,则设置 MBR 二进制代码的路径,默认为 /usr/share/syslinux/mbr.bin。
分区
如果您有超出 setup-alpine
的 环境变量 的复杂分区需求,您可以手动分区、格式化和挂载卷,然后只需将根挂载点提供给 setup-disk
。这样做隐式地表现得好像也指定了 -m sys。
RAID
如果您提供 -r 开关,或者指定多个设备,setup-disk
将自动构建 RAID 阵列。对于 /boot 卷,阵列将始终为 RAID1(和 --metadata=0.90),但当提供 3 个或更多设备时,对于非引导卷将为 RAID5(和 --metadata=1.2)。
如果您想手动构建 RAID 阵列,请参阅 设置软件 RAID 阵列。然后格式化并挂载磁盘,并将根挂载点提供给 setup-disk
。
LVM
如果您提供 -L 开关,setup-disk
将自动构建并在 LVM 组中使用卷。脚本创建的组和卷将具有以下名称
- 卷组:vg0
- 交换卷:lv_swap(仅在交换空间大小 > 0 时创建)
- 根卷:lv_root(仅在指定 -m sys 或以交互方式选择时创建)
- var 卷:lv_var(仅在指定 -m data 或以交互方式选择时创建)
lv_var 或 lv_root 卷被创建为占用卷组中的所有剩余空间。
如果您需要更改任何这些设置,可以使用 vgrename
、lvrename
、lvreduce
或 lvresize
。
如果您想手动构建 LVM 系统,请参阅 使用 LVM 设置逻辑卷。然后格式化并挂载磁盘,并将根挂载点提供给 setup-disk
。
setup-lbu
此脚本仅在安装 data
安装类型 (ramdisk) 时由 setup-alpine
调用
它配置 lbu commit
将在何处存储 .apkovl 备份。有关更多信息,请参阅 Alpine 本地备份。
启动时,setup-lbu
将提示在何处存储您的数据。它将提示的选项将从 /media
中找到的目录中获取(cdrom
除外)。[不确定这些是如何挂载的:它们是由 setup-lbu 自动挂载的吗?用户是否必须使用另一个 tty 手动挂载?]
setup-apkcache
此脚本仅在安装 data
安装类型 (ramdisk) 时由 setup-alpine
调用
它配置在何处保存 apk 软件包文件。apkcache 是 apk 存储下载软件包的位置,这样系统就不需要在每次重启时再次下载它们,并且不必依赖网络。有关详细说明,请参阅 本地 APK 缓存。
您应该能够使用您在上一步中设置的分区。
setup-devd
这是一个独立的脚本;它不是由 setup-alpine
调用的,但必须手动运行以设置 设备管理器。
用法:setup-devd [ -h ] [ -C ] [ mdev | mdevd| udev ] 设置设备管理器。选项:-h 显示此帮助 -C 在启动设备管理器后执行冷插拔。可选参数告诉 setup-devd 要使用哪个设备管理器。mdev(来自 busybox)是默认值。mdevd 是独立的,与 mdev 兼容,更高效。udev(来自 eudev)是复杂的,功能齐全的。如果没有参数,则交互式提示选择。
参考 setup-devd 源代码。
setup-bootable
这是一个独立的脚本;它不是由 setup-alpine
调用的,但必须手动运行。
它允许创建启动介质,该介质从 RAM 内存(无盘)运行系统启动,就像安装映像一样,但使用可写(即非 iso9660)文件系统。因此,它也可以用于存储本地自定义项(例如 apkovl 文件和缓存的软件包)。
首先,该脚本将 ISO 映像(作为 CD/DVD/USB 等上的文件)中的文件复制到 USB 闪存盘/CompactFlash/SD 卡等或硬盘分区。然后,它安装 syslinux 引导加载程序以使设备可启动。
但是,它当前的 syslinux 安装似乎在非 FAT32 分区上失败。因此,在这些情况下,您可以从 FAT32 文件系统重新开始,或者使用所需的文件系统并仅使用 setup-bootable
的 -u
选项来跳过 syslinux 安装,然后参考 手动方法 来解决问题,或者使用其他引导加载程序选项之一。
setup-bootable 脚本接受以下参数和命令行开关(您可以运行 setup-bootable -h
以查看使用消息)。
setup-bootable source [dest]
参数 source 可以是目录或 ISO(将挂载到 MNT
或 /mnt)或 URL(将使用 WGET
或 wget
下载)。参数 dest 可以是目录挂载点,如果未提供,则默认为 /media/usb。
- -k
- 在 syslinux.cfg 中保留 alpine_dev;否则,替换为 UUID。
- -u
- 升级模式:保留现有的 syslinux.cfg 且不运行
syslinux
- -f
- 即使指定了 -u,也覆盖 syslinux.cfg。
- -s
- 即使指定了 -u,也强制运行
syslinux
。
- -v
- 详细模式
该脚本将确保 source 和 dest 可用;将 source 的内容复制到 dest,首先确保有足够的空间;并且除非指定了 -u,否则将使 dest 可启动。
假设目标设备是 /dev/sdXY,则可以使用以下命令准备此分区以进行启动
# setup-bootable -v /media/<installation-media-device> /dev/sdXY
有关手动设置启动介质的方法,请参阅 Manually_copying_Alpine_files。
setup-xorg-base
这是一个独立的脚本;它不是由 setup-alpine
调用的,但必须手动运行。
它配置图形环境,安装基本的 Xorg 软件包和 eudev(替换 mdev),并且如果使用 Xwayland,也需要 Wayland 会话。
该脚本安装的软件包包括:xorg-server xf86-input-libinput xinit eudev
。
要安装的其他软件包可以作为参数提供。
setup-xorg-base [要安装的其他软件包]
setup-wayland-base
这是一个独立的脚本;它不是由 setup-alpine
调用的,但必须手动运行。
用法:setup-wayland-base [-h] [PKG..]
设置系统以使用 Wayland
选项
-h Show this help
安装软件包 elogind, polkit-elogind 和 eudev,启用 community 仓库,启用 eudev 服务并安装指定的软件包 PKG。
setup-desktop
此脚本用于设置桌面环境。这是现在已删除的 alpine-desktop
软件包的替代品。
Setup-desktop 脚本自动启用 community 仓库。
使用 setup-desktop 安装
用于快速设置桌面的 Alpine Linux 脚本是 setup-desktop。
# setup-desktop
运行上述命令后,系统将提示您选择桌面环境。
选择哪个桌面环境?('gnome'、'plasma'、'xfce'、'mate'、'sway'、'lxqt' 或 'none')[none]
选择桌面环境后,此脚本将安装所选桌面以及必要的软件包、firefox 浏览器,并将必要的服务添加到启动时运行。完成后,您可以重新启动,系统将启动到带有桌面环境的图形登录屏幕。根据选择的桌面,该脚本还会激活必要的服务,如 dbus、elogind、登录管理器等。
要查看脚本为所选桌面安装的所有软件包,您可以发出以下命令
# cat /usr/sbin/setup-desktop
需要文档
setup-xen-dom0
setup-mta
使用 ssmtp。
这是一个独立的脚本;它不是由 setup-alpine
调用的,但必须手动运行。
setup-acf
setup-acf
[-ahn] [-e 邮箱] [-l 地址] [软件包...]
选项
-a 要安装的 acf-* 软件包
-h 显示帮助
-n 不创建 /etc/acf/passwd
-e 邮箱地址(用于 TLS 证书)
-l mini_httpd 的主机名
这是一个独立的脚本;它不是由 setup-alpine
调用的,但必须手动运行。
此脚本在 Alpine 1.9 beta 4 之前被命名为 setup-webconf
。
有关更多信息,请参阅 ACF 页面。