Alpine 设置脚本

来自 Alpine Linux

可用 Alpine Linux 设置脚本的功能描述 (/usr/sbin/setup-*)。

这些脚本可以通过使用 apk 安装 alpine-conf 包来安装。

如果您没有安装 Alpine Linux,您可以在其 git 仓库中查找和检查这些脚本。

setup-alpine

这是主要的 Alpine 配置和安装脚本。

该脚本以交互方式引导用户执行几个辅助 setup-* 脚本,顺序如下所示。

括号中的选项表示示例配置选择,其格式可能在手动调用辅助设置脚本或使用 setup-alpine “answerfile”(见下文)时提供。

  1. setup-keymap [us us]
  2. setup-hostname [-n alpine-test]
  3. setup-interfaces [-i < interfaces-file]
  4. rc-service networking --quiet start &
  5. 如果没有任何网络接口使用 dhcp 配置,则: setup-dns [-d example.com -n "192.168.0.1 [...]"]
  6. 设置 root 密码
  7. 如果不是快速模式,则: setup-timezone [-z UTC | -z America/New_York | -p EST+5]
  8. 启用新的主机名 (rc-service hostname --quiet restart)
  9. networkingseedrng(在 OpenRC 0.45 之前的版本中也称为 urandom)添加到 boot rc 级别,并将 acpidcrond 添加到 default rc 级别,并启动 bootdefault rc 服务
  10. /etc/resolv.confhostname 中提取完全限定域名和主机名,并更新 /etc/hosts
  11. setup-proxy [-q "http://webproxy:8080"],并在配置代理时激活代理
  12. setup-apkrepos [-r (随机选择镜像)]
  13. setup-user
  14. 如果不是快速模式,则: setup-sshd [-c openssh | dropbear | none]
  15. 如果不是快速模式,则: setup-ntp [-c chrony | openntpd | busybox | none]
  16. 如果不是快速模式,则: DEFAULT_DISK=none setup-disk -q [-m data /dev/sda](请参阅 Installation#Installation_Overview 了解有关磁盘模式的信息)
  17. 如果在 setup-disk 期间选择的安装模式是 “data” 而不是 “sys”,则: setup-lbu [/media/sdb1]
  18. 如果在 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 的内容

auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp hostname alpine-test

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 的内容

search example.org nameserver 192.168.0.1

它可以手动运行,但除非接口配置为 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

如果指定了 BOOTFSROOTFSVARFS,则使用指定的文件系统格式化分区。如果未指定,则默认文件系统为 ext4。VARFS 仅在指定 -m data 或以交互方式选择时使用,而 BOOTFSROOTFS 仅在指定 -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_varlv_root 卷被创建为占用卷组中的所有剩余空间。

如果您需要更改任何这些设置,可以使用 vgrenamelvrenamelvreducelvresize

如果您想手动构建 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(将使用 WGETwget 下载)。参数 dest 可以是目录挂载点,如果未提供,则默认为 /media/usb

-k
syslinux.cfg 中保留 alpine_dev;否则,替换为 UUID。

-u
升级模式:保留现有的 syslinux.cfg 且不运行 syslinux

-f
即使指定了 -u,也覆盖 syslinux.cfg

-s
即使指定了 -u,也强制运行 syslinux

-v
详细模式

该脚本将确保 sourcedest 可用;将 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-elogindeudev,启用 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 页面

参见