如何让常用功能正常工作

出自 Alpine Linux

Alpine Linux 基于 Musl libc 和 BusyBox 构建。这使其体积小巧且资源效率非常高。BusyBox 中的实用程序通常选项较少,因此缺少一些扩展功能。此页面解释了如何让常规实用程序像在 GNU/Linux 发行版中一样工作。

核心工具

大多数基本的文件、shell 和文本操作实用程序通常归类于 核心工具,由 BusyBox 提供。要将其替换为原始的 coreutils 软件包

# apk add coreutils

Util-linux

大约 100 个基本 Linux 系统实用程序(未包含在 GNU 核心工具中)的集合,例如 mountcfdiskmorelsblkkill,在 Util-linux 下维护。util-linux 软件包被拆分为多个子包,因此可以单独安装其中一些。要拥有完整的 util-linux 软件包

# apk add util-linux

功能齐全的文件分页实用程序 less 可以从 less 软件包安装。

搜索工具

标准搜索工具 grepfind 可以通过安装 grepfindutils 软件包来安装,如下所示

# apk add grep findutils

Bash shell

Alpine Linux 使用的默认 shell 是 busybox 变体的 ash shell。要安装 bash shell

# apk add bash bash-completion

硬件管理

安装 pciutilsusbutils,以使用完整功能的 lspcilsusb 命令分别识别和配置 PCI 和 USB 硬件。

# apk add pciutils usbutils

软件包 hwdata-pcihwdata-usb 是上述实用程序的依赖项,它们会自动安装。硬件配置完成后,可以删除这些软件包。

磁盘管理

使用 udisks 管理(可移动)磁盘会更容易。

# apk add udisks2

要查看已挂载的磁盘

# udisksctl status

网络管理

对于网络,您可能需要安装 iproute2

# apk add iproute2

子包和缺失的功能

在 Alpine Linux 中安装软件包时,不会假定用户想要哪些功能,因此默认情况下不安装子包。用户可能会对缺少的功能产生错误的印象。Alpine Linux 软件包数据库页面显示了可用的子包列表。

例如:NetworkManager,一个流行的网络配置工具,根据功能分为 20 多个子包。如果用户安装 networkmanager 软件包或 network-manager-applet,则只会安装 NetworkManager 实用程序和小程序。要管理 Wifi 网络或使用 nmclinmtui 等命令,用户需要添加所需的子包 networkmanager-wifinetworkmanager-clinetworkmanager-tui

在其他 Linux 发行版中,安装 NetworkManager 时,所有上述功能以及蓝牙、adsl、wwan、vpn、l2tp、ppp 等都会与其依赖项一起自动安装。

开发环境

在 Alpine Linux 中编译可能更具挑战性,因为它使用 musl-libc 而不是 glibc。build-base 元软件包提供了常规编译器内容,例如 binutilsgccg++make 等。

# apk add build-base

alpine-sdk 元软件包用于为 Alpine Linux 构建软件包。它包括 abuildbuild-basegit

# apk add alpine-sdk

要安装 CMake

# apk add cmake extra-cmake-modules

ccache 和许多其他工具也在 Alpine Linux 中可用。