跳转至内容

常见问题解答

来自 ArchWiki

常规

什么是 Arch Linux?

请参阅 Arch Linux 词条。

为什么我不想使用 Arch?

在以下情况下,你可能不想使用 Arch:

  • 你没有能力/时间/意愿去使用一个“DIY”风格的 GNU/Linux 发行版。
  • 你需要支持 x86_64 以外的架构。
  • 你坚持只使用符合 GNU 定义的仅包含自由软件的发行版。
  • 你认为操作系统应该自动配置、开箱即用,并在安装介质中包含一整套默认软件和桌面环境。
  • 你不想要一个滚动更新的 GNU/Linux 发行版。
  • 你对目前的操作系统很满意。

为什么我想使用 Arch?

因为 Arch 是最好的

Arch 支持哪些架构?

Arch 仅支持 x86_64(有时也称为 amd64)架构。对 i686 的支持已于 2017 年 11 月停止 [1]

存在针对 i686 架构 [2]ARM CPU [3] 的衍生发行版,它们各有其社区频道。它们不受 Arch Linux 官方支持。

如果你希望 Arch 支持其他架构,可以协助现有的移植工作或开启自己的项目。请参阅 参与贡献#帮助将 Arch Linux 移植到其他架构

Arch 是否遵循 Linux 基金会的文件系统层次结构标准 (FHS)?

Arch Linux 为使用 systemd 服务管理器的操作系统遵循其文件系统层次结构。请参阅 file-hierarchy(7) 了解各目录及其用途的说明。特别地,/bin/sbin/usr/sbin 是指向 /usr/bin 的符号链接,/lib/lib64 是指向 /usr/lib 的符号链接。

我是 GNU/Linux 的纯萌新。我该使用 Arch 吗?

如果你是初学者并想使用 Arch,你必须愿意投入时间学习新系统,并接受 Arch 被设计为一个“DIY”发行版的事实;由用户自己组装系统。

在寻求帮助之前,请通过搜索网络、论坛和 Arch Wiki 提供的精美文档来进行独立研究。这些资源之所以提供给你是有原因的。成千上万小时的志愿服务时间被投入到这些优秀信息的汇编中。

另见 Arch 术语#RTFM安装指南

Arch 的设计目标是服务器?桌面?还是工作站?

Arch 并非针对任何特定的用途而设计。相反,它是为特定类型的用户设计的。Arch 针对的是享受其“DIY”特质并能利用它来塑造符合其独特需求系统的胜任用户。因此,在目标用户手中,Arch 几乎可以用于任何目的。许多人在桌面和工作站上都使用 Arch。当然,archlinux.org、aur.archlinux.org 以及几乎所有 Arch 的基础设施都运行在 Arch 上。

我真的很喜欢 Arch,但开发团队需要实现功能 X

参与进来,向社区贡献你的代码/解决方案。如果它受到社区和开发团队的高度评价,或许会被合并。Arch 社区在代码和工具的贡献与分享中蓬勃发展。

新版本什么时候发布?

Arch Linux 的发布版仅仅是用于安装或救援的 Live 环境,其中包括 base 元软件包其他一些软件包。发布版通常在每月的前半部分发行。

Arch Linux 是一个稳定的发行版吗?会经常出故障吗?

最终由用户对其滚动更新系统的稳定性负责。用户决定何时升级,并在需要时合并必要的更改。如果用户向社区求助,通常会及时得到帮助。Arch 与其他发行版在这方面的区别在于 Arch 是真正的“DIY”发行版;对“系统滚挂”的抱怨是误导且无益的,因为上游的更改不属于 Arch 开发者的责任。

请参阅 系统维护 词条,了解如何使 Arch Linux 系统尽可能稳定的技巧。

Arch 需要更多曝光(即广告)

Arch 已经获得了大量的媒体曝光。Arch Linux 的目标不是做大;相反,有机、可持续的增长会在目标用户群中自然发生。

Arch 需要更多开发者

可能是这样。欢迎志愿贡献你的时间!访问 论坛IRC 频道邮件列表,看看有哪些工作需要完成。详见 参与贡献

安装

Arch 需要一个安装程序。或许是图形界面 (GUI) 安装程序?

现在已提供一个带有文本界面的引导式安装程序。详见 archinstall

我安装了 Arch,现在进入了 shell!然后呢?

请参阅 常规推荐

我应该使用哪种桌面环境或窗口管理器?

由于有很多选择,请选择最适合你需求的一个。可以参考 桌面环境窗口管理器 词条。

在众多的“极简”发行版中,Arch 有何独特之处?

请参阅 Arch 与其他发行版的比较

系统维护

另见 系统维护

为什么我的网速比其他操作系统慢?

你的网络配置正确吗?请参考 网络配置 词条。对于高级设置,你可能还需要查看 流量整形 (Traffic shaping)

最常用的内核之一 linux 往往比其他更稳定的 Linux 发行版的内核更新。因此,你可能会极少数地遇到 内核退化 (regression) 或驱动程序错误,尤其是在使用 Wi-Fi 时。请注意,绝大多数此类错误并非 Arch Linux 特有的,因为 Arch Linux 只应用最基本的补丁。这些问题需要提交给上游。请参阅 #我发现软件包 X 有错误。我该怎么办?

为什么 Arch 占用了我所有的内存 (RAM)?

本质上,未使用的内存就是浪费的内存。

许多新用户注意到 Linux 内核处理内存的方式与他们习惯的不同。由于从内存访问数据比从存储驱动器快得多,内核会在内存中缓存最近访问的数据。只有当系统开始耗尽可用内存并需要加载新数据时,缓存数据才会被清除。

我们可以通过 free 命令来区分其差异

$ free -h
               total        used        free      shared  buff/cache   available
Mem:           377Gi        40Gi       146Gi       1.1Gi       196Gi       337Gi
Swap:          377Gi       1.1Gi       376Gi

区分“free(空闲)”和“available(可用)”内存非常重要。在上面的示例中,一个拥有 377 GiB 总内存的系统看起来使用了超过一半,只有 146 GiB 的空闲内存。然而,其中 196 GiB 是“buff/cache(缓冲/缓存)”。仍有 337 GiB 可用于启动新程序而无需使用交换分区 (swap)。详见 free(1)。这一切的结果?性能!

如果你对此有好奇心,请参阅这篇精彩的文章。还有一个专门解释这一困惑的网站:https://www.linuxatemyram.com/

我的剩余空间都去哪了?

这个问题的答案取决于你的系统。有一些 优秀的工具 可以帮助你找到答案。

为什么我无法登录?

你是否输错了密码,或者在 15 分钟内连续三次取消了 sudo 命令?如果是这样,你触发了防止暴力破解的机制:详见 安全性#在三次登录失败后锁定用户

Arch 会“打电话回家”吗?

简短的回答?不。

更详细的说明:

你可以通过参与 pkgstats 项目来主动“打电话回家”,该项目收集匿名的软件包流行度数据,以帮助 Arch 开发者确定工作重点。

软件包管理

请参阅 pacmanpacman/技巧和提示 以及 官方仓库 页面以获取更多答案。

我发现软件包 X 有错误。我该怎么办?

首先,你需要弄清楚这个错误是否是 Arch 团队可以修复的。通常不是(例如 Firefox 崩溃可能是 Mozilla 团队的错);这被称为上游错误,见 Bug 报告指南#上游还是 Arch?。如果是 Arch 的问题,你可以采取以下步骤:

  1. 在论坛中搜索相关信息。看看是否有人也注意到了这个问题。
  2. GitLab 上的 Arch Linux Bug 追踪器 提交带有详细信息的 Bug 报告
  3. 如果你愿意,可以发一个论坛帖子详细说明问题以及你已经报告过的事实。这将有助于防止很多人报告同一个错误。

Arch 软件包需要使用独特的命名约定。“.pkg.tar.zst”太长且/或容易混淆

这已在 Arch 邮件列表中讨论过。有人建议使用 .pac 文件扩展名,但目前没有更改软件包扩展名的计划。正如 Arch 开发者之一 Tobias Kieslich 所说,“软件包就是一个 [压缩的] tar 包!任何支持 tar 的程序都可以打开、查看和操作它。而且,大多数程序会自动正确检测 mime 类型。”

Pacman 需要一个库,以便其他程序可以轻松访问软件包信息

Pacman 是 libalpm(3)(“Arch Linux 软件包管理”库)的前端,这使得编写替代前端(如 GUI 前端)成为可能。

Pacman 需要功能 X!

如果你认为一个想法有价值,可以选择在 pacman-dev 上讨论。也可以在 https://gitlab.archlinux.org/pacman/pacman/-/issues 查看现有的功能请求。

然而,为 pacman 或 Arch Linux 添加功能的最佳方式是亲自实现它。补丁或代码可能会也可能不会被正式采纳,但或许其他人会感激、测试并为你的努力做出贡献。

我刚安装了软件包 X。如何启动它?

如果你使用的是 KDEGNOME 等桌面环境,如果程序带有 桌面入口 (desktop entry),它应该会自动出现在菜单中。如果你尝试从终端运行程序且不知道二进制文件名,请使用:

$ pacman -Qlq package_name | grep /usr/bin/

为什么官方仓库中每个共享库只有一个版本?

一些发行版(如 Debian)将不同版本的共享库打包成不同的软件包:libfoo1libfoo2libfoo3 等。这样可以在同一系统上安装针对不同版本 libfoo 编译的应用程序。

对于像 Arch 这样的发行版,官方仅支持最新的打包版本。通过停止对过时软件的支持,包维护者能够花更多时间确保最新版本按预期工作。一旦上游提供了共享库的新版本,它就会被添加到仓库中,并重新构建受影响的软件包以使用新版本。

如果我运行全系统升级,某个共享库有更新,但依赖它的应用程序没有更新怎么办?

这种情况根本不应该发生。假设一个名为 foobaz 的程序在官方仓库中,并且针对新版本的共享库 libbaz 成功构建,它将与 libbaz 一起更新。然而,如果它构建失败,foobaz 软件包将具有版本化的依赖关系(例如 libbaz 1.5),并在 libbaz 升级期间由于冲突被 pacman 删除。

如果 foobaz 是你自己构建并从 AUR 安装的软件包,你应该针对新版本的 libbaz 重新构建 foobaz。如果构建失败,请向 foobaz 的开发者报告错误。

仓库中是否存在内核重大更新,而部分驱动程序包尚未更新的情况?

不,这是不可能的。重大内核更新(例如从 linux 3.5.0-1linux 3.6.0-1)总是伴随着所有官方支持的内核驱动程序包的重新构建。另一方面,如果你的系统中安装了不受支持的驱动程序包(例如来自 AUR),如果你不针对新内核重新构建它,内核更新可能会让你出问题。用户有责任更新他们安装的任何不受支持的驱动程序包。

升级前该做什么?

请遵循 系统维护#升级系统 章节。

软件包更新已发布,但 pacman 显示系统已是最新

pacman 镜像不会立即同步。更新可能需要超过 24 小时才能提供给你。唯一的选择是保持耐心或更换另一个镜像。镜像状态 (MirrorStatus) 可以帮助你识别最新的镜像。

上游项目 X 发布了新版本。Arch 软件包需要多长时间更新到该新版本?

软件包更新将在准备就绪时发布。具体时间可以短至上游发布次要错误修复更新后的几个小时,也可以长至大型软件包组重大更新后的几周。从上游新版本到 Arch 发布新软件包的时间取决于具体的软件包以及包维护者的空闲情况。此外,某些软件包会在 testing 仓库中停留一段时间,这可能会延长软件包更新的时间。包维护者 尝试快速工作以将稳定的更新带入仓库。如果你在官方仓库中发现某个软件包已过时,请前往 软件包网站 上的该软件包页面并将其标记为过时 (flag it)。

如果你运气好,它可能会在一段时间内有效。尽管如此,这并不是一个妥当的解决方案,因为:

  • 库的版本不会随机更改 —— API/ABI 很可能已经改变(可能删除了部分内容),而这些变化是否影响使用完全取决于运气。
  • 符号链接不会被软件包管理器跟踪。对于一上来就尝试对系统库文件进行“黑客”操作的新手来说,面临着造成无法诊断/修复的意外更改的最大风险,而软件包管理器可以防止这种情况发生。
  • 另一种稍微好点的办法是将旧库文件丢进文件系统而不进行跟踪,但这样做容易被遗忘,且无法察觉/修复潜在的安全漏洞。

相反,你应该使用/编写一个 compat(兼容性)软件包,由它提供所需的库版本。

64 位

如何确定我的处理器是否兼容 x86_64?

如果你的处理器兼容 x86_64,在 /proc/cpuinfo 中会有 lm长模式)标志。例如:

$ grep -w lm /proc/cpuinfo

在 Windows 下,使用免费软件 CPU-Z 有助于确定你的 CPU 是否兼容 64 位。具有 AMD 指令集“AMD64”或 Intel 解决方案“EM64T”的 CPU 应该与 x86_64 发布版和二进制包兼容。

为什么选 64 位?

在大多数情况下它更快,而且作为一个额外的好处,由于 地址空间布局随机化 (ASLR)位置无关代码 (PIC) 以及 NX Bit 的结合,它天生更安全,而这些在普通 i686 内核中由于禁用了 物理地址扩展 (PAE) 而不可用。如果你的电脑有超过 4 GiB 的内存,只有 64 位操作系统才能充分利用它。

程序员也越来越不关心 32 位(“遗留”),因为“新”的 x86 CPU 通常都支持 64 位扩展。

我们可以列出更多理由来告诉你避开 32 位,但从内核、用户空间到单个程序,如今要列出 64 位表现更优的每一个细节已经不太现实了。