如何让常用功能正常工作
Alpine Linux 基于 Musl libc 和 BusyBox 构建。这使其体积小巧且资源效率非常高。BusyBox 中的实用程序通常选项较少,因此缺少一些扩展功能。此页面解释了如何让常规实用程序像在 GNU/Linux 发行版中一样工作。
核心工具
大多数基本的文件、shell 和文本操作实用程序通常归类于 核心工具,由 BusyBox 提供。要将其替换为原始的 coreutils 软件包
# apk add coreutils
Util-linux
大约 100 个基本 Linux 系统实用程序(未包含在 GNU 核心工具中)的集合,例如 mount
、cfdisk
、more
、lsblk
和 kill
,在 Util-linux 下维护。util-linux 软件包被拆分为多个子包,因此可以单独安装其中一些。要拥有完整的 util-linux 软件包
# apk add util-linux
功能齐全的文件分页实用程序 less
可以从 less 软件包安装。
搜索工具
标准搜索工具 grep
和 find
可以通过安装 grep 和 findutils 软件包来安装,如下所示
Bash shell
Alpine Linux 使用的默认 shell 是 busybox 变体的 ash shell。要安装 bash shell
# apk add bash bash-completion
硬件管理
安装 pciutils 和 usbutils,以使用完整功能的 lspci
和 lsusb
命令分别识别和配置 PCI 和 USB 硬件。
软件包 hwdata-pci 和 hwdata-usb 是上述实用程序的依赖项,它们会自动安装。硬件配置完成后,可以删除这些软件包。
磁盘管理
使用 udisks 管理(可移动)磁盘会更容易。
# apk add udisks2
要查看已挂载的磁盘
# udisksctl status
网络管理
对于网络,您可能需要安装 iproute2。
# apk add iproute2
子包和缺失的功能
在 Alpine Linux 中安装软件包时,不会假定用户想要哪些功能,因此默认情况下不安装子包。用户可能会对缺少的功能产生错误的印象。Alpine Linux 软件包数据库页面显示了可用的子包列表。
例如:NetworkManager,一个流行的网络配置工具,根据功能分为 20 多个子包。如果用户安装 networkmanager 软件包或 network-manager-applet,则只会安装 NetworkManager 实用程序和小程序。要管理 Wifi 网络或使用 nmcli
和 nmtui
等命令,用户需要添加所需的子包 networkmanager-wifi、 networkmanager-cli 和 networkmanager-tui。
在其他 Linux 发行版中,安装 NetworkManager 时,所有上述功能以及蓝牙、adsl、wwan、vpn、l2tp、ppp 等都会与其依赖项一起自动安装。
开发环境
在 Alpine Linux 中编译可能更具挑战性,因为它使用 musl-libc 而不是 glibc。build-base 元软件包提供了常规编译器内容,例如 binutils、 gcc、 g++、 make 等。
# apk add build-base
alpine-sdk 元软件包用于为 Alpine Linux 构建软件包。它包括 abuild、 build-base 和 git。
# apk add alpine-sdk
要安装 CMake
# apk add cmake extra-cmake-modules
ccache 和许多其他工具也在 Alpine Linux 中可用。