常见问题解答
通用
什么是 Arch Linux?
请参阅Arch Linux 文章。
我为什么不想使用 Arch?
在以下情况下,你可能不想使用 Arch:
- 你没有能力/时间/意愿来使用“自己动手”的 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 基金会的文件系统层次结构标准 (FHS)?
对于使用 systemd 服务管理器的操作系统,Arch Linux 遵循文件系统层次结构。请参阅 file-hierarchy(7) 以获得每个目录及其指定用途的说明。特别是,/bin
、/sbin
和 /usr/sbin
是指向 /usr/bin
的符号链接,而 /lib
和 /lib64
是指向 /usr/lib
的符号链接。
我是一个完全的 GNU/Linux 新手。我应该使用 Arch 吗?
如果你是新手并想使用 Arch,你必须愿意投入时间学习新系统,并接受 Arch 被设计为“自己动手”的发行版;是由用户组装系统。
在寻求帮助之前,请通过搜索网络、论坛和 Arch Wiki 提供的出色文档进行独立的调查研究。这些资源首先提供给你是有原因的。 数千小时的志愿时间被用来编译这些优秀的信息。
另请参阅 Arch 术语#RTFM 和 安装指南。
Arch 的设计目标是作为服务器使用吗?桌面?工作站?
Arch 并非为任何特定类型的用途而设计。相反,它是为特定类型的用户而设计的。Arch 的目标用户是喜欢其“自己动手”性质的熟练用户,他们进一步利用它来塑造系统以适应其独特的需求。因此,在目标用户群手中,Arch 可以用于几乎任何目的。许多人在他们的桌面和工作站上都使用 Arch。当然,archlinux.org、aur.archlinux.org 以及 Arch 几乎所有的 基础设施 都运行在 Arch 上。
我真的很喜欢 Arch,但开发团队需要实现 X 功能
参与贡献,将你的代码/解决方案贡献给社区。如果它受到社区和开发团队的好评,也许它会被合并。Arch 社区在代码和工具的贡献和共享中蓬勃发展。
新版本何时发布?
Arch Linux 发行版仅仅是用于安装或救援的 live 环境,其中包括 base 元软件包 和一些 其他软件包。这些发行版通常在每个月的上半月发布。
Arch Linux 是一个稳定的发行版吗?我会经常遇到崩溃吗?
用户最终对其自身滚动发布系统的稳定性负责。用户决定何时升级,并在需要时合并必要的更改。如果用户向社区寻求帮助,通常会及时提供帮助。Arch 与其他发行版在这方面的区别在于,Arch 确实是一个“自己动手”的发行版;抱怨崩溃是误导和没有成效的,因为上游更改不是 Arch 开发人员的责任。
请参阅系统维护文章,了解如何使 Arch Linux 系统尽可能稳定。
Arch 需要更多媒体报道(即广告宣传)
Arch 已经获得了大量的媒体报道。Arch Linux 的目标不是变得庞大;相反,有机的、可持续的增长在目标用户群中自然而然地发生。
Arch 需要更多开发者
可能是这样。欢迎随时贡献你的时间!访问论坛、IRC 频道和邮件列表,看看有什么需要做的。另请参阅参与贡献了解详情。
安装
Arch 需要一个安装程序。也许是图形界面安装程序?
带有基于文本用户界面的引导式安装程序已可用。请参阅 archinstall 了解详情。
我安装了 Arch,现在我进入了 shell!接下来该怎么办?
请参阅 通用建议。
我应该使用哪个桌面环境或窗口管理器?
由于有很多可供你选择,请使用最适合你需求的那一个。请查看 桌面环境 和 窗口管理器 文章。
是什么让 Arch 在其他“极简”发行版中脱颖而出?
请参阅 Arch 与其他发行版的比较。
系统维护
另请参阅 系统维护。
为什么我的互联网速度比其他操作系统慢?
你的网络配置正确吗?请查看 网络配置 文章。对于高级设置,你可能还需要查看 流量整形。
最常用的内核之一,linux,往往比其他更稳定的 Linux 发行版的内核更新。因此,你可能极少遇到 内核回退 或驱动程序错误,尤其是在使用 Wi-Fi 的情况下。请注意,绝大多数这些错误都不是 Arch Linux 特有的,因为 Arch Linux 仅应用最基本的补丁。这需要向上游反馈。请参阅 #我发现软件包 X 有错误。我该怎么办?。
为什么 Arch 占用了我所有的 RAM?
本质上,未使用的 RAM 就是浪费的 RAM。
许多新用户注意到 Linux 内核处理内存的方式与他们习惯的方式不同。由于从 RAM 访问数据比从存储驱动器访问数据快得多,因此内核会将最近访问的数据缓存在内存中。只有当系统开始耗尽可用内存并且需要加载新数据时,缓存的数据才会被清除。
我们可以通过 free
命令区分差异
$ free -h
total used free shared buff/cache available Mem: 2.8Gi 1.1Gi 283Mi 224Mi 1.4Gi 1.2Gi Swap: 3.0Gi 881Mi 2.1Gi
需要注意“可用”内存和“空闲”内存之间的区别。在上面的例子中,一台总内存为 2.8 GiB 的笔记本电脑看起来似乎已经使用了大部分内存,只有 283 MiB 的空闲内存。然而,其中 1.4 GiB 是“buff/cache”(缓冲区/缓存)。在不使用交换空间的情况下,仍然有 1.2 GiB 可用于启动新应用程序。有关详细信息,请参阅 free(1)。这一切的结果是什么?性能提升!
如果您的好奇心被激发,请参阅这篇精彩的文章。还有一个专门解决这种困惑的网站:https://www.linuxatemyram.com/。
我的所有可用空间都到哪里去了?
这个问题的答案取决于您的系统。有一些很棒的实用工具可以帮助您找到答案。
为什么我无法登录?
您是否输错了密码,或者在十五分钟内取消了三次 sudo 命令?如果是这样,您已触发了防止暴力攻击的机制:有关更多详细信息,请参阅Security#在三次登录尝试失败后锁定用户。
Arch 会“phone home”吗?(向外部服务器发送信息)
简而言之?不会。
更详细的说明
- NetworkManager 用户应该知道它会进行自动连接性检查:默认的连接性 URL 由 Arch 提供,并承诺不会记录任何访问;
- 网络时间协议客户端在其默认配置中使用由 NTP Pool Project 提供的供应商 NTP 服务器池(根据其规则);
- 正如 Pacman/软件包签名#定期升级系统 中的注释所解释的那样,systemd 计时器每周运行一次,以更新已信任密钥的新签名:那里也不会记录任何访问。
您可能希望通过为 pkgstats 项目做出贡献来自愿“phone home”,该项目收集软件包受欢迎程度的匿名数据,以帮助 Arch 开发者确定工作优先级。
软件包管理
有关更多答案,请参阅 pacman、pacman/技巧和窍门 以及 官方软件仓库 页面。
我发现软件包 X 有错误。我该怎么办?
首先,您需要确定此错误是否是 Arch 团队可以修复的。通常情况下不是(例如,Firefox 崩溃可能是 Mozilla 团队的错误);这被称为上游错误,请参阅 Bug reporting guidelines#上游还是 Arch?。如果是 Arch 的问题,您可以采取一系列步骤
- 在论坛上搜索信息。看看是否有人注意到它。
- 在 Arch Linux 在 Gitlab 上的 bug 跟踪器 上发布包含详细信息的 bug 报告。
- 如果您愿意,可以发布一个论坛帖子,详细说明问题以及您已经报告过的事实。这将有助于防止很多人报告相同的错误。
Arch 软件包需要使用独特的命名约定。“.pkg.tar.zst”太长和/或令人困惑
这已在 Arch 邮件列表中讨论过。有人提议使用 .pac 文件扩展名,但目前没有计划更改软件包扩展名。正如 Arch 开发者之一 Tobias Kieslich 所说,“软件包就是一个[压缩的] tarball!它可以被任何支持 tar 的应用程序打开、检查和操作。此外,大多数应用程序都可以自动正确检测到 mime 类型。”
Pacman 需要一个库,以便其他应用程序可以轻松访问软件包信息
Pacman 是 libalpm(3)——“Arch Linux 软件包管理”库——的前端,它允许编写替代前端,例如 GUI 前端。
Pacman 需要 X 功能!
如果您认为某个想法有价值,您可以选择在 pacman-dev 上讨论它。另请查看 https://gitlab.archlinux.org/pacman/pacman/-/issues 以查看现有的功能请求。
但是,将功能添加到 pacman 或 Arch Linux 的最佳方法是自己实现它。补丁或代码可能会被官方接受,也可能不会,但也许其他人会欣赏、测试并为您的努力做出贡献。
我刚刚安装了软件包 X。我该如何启动它?
如果您正在使用像 KDE 或 GNOME 这样的桌面环境,如果程序带有 桌面条目,它应该会自动显示在您的菜单中。如果您尝试从终端运行程序但不知道二进制文件名,请使用
$ pacman -Qlq package_name | grep /usr/bin/
一些发行版,例如 Debian,将不同版本的共享库打包为不同的软件包:libfoo1
、libfoo2
、libfoo3
等等。通过这种方式,可以在同一系统上安装针对不同版本的 libfoo
编译的应用程序。
对于像 Arch 这样的发行版,仅官方支持最新的打包版本。通过放弃对过时软件的支持,软件包维护者能够花费更多时间来确保最新版本按预期工作。一旦上游提供了新版本的共享库,它就会被添加到软件仓库中,并且受影响的软件包将被重建以使用新版本。
这种情况根本不应该发生。假设一个名为 foobaz
的应用程序在官方软件仓库之一中,并且针对名为 libbaz
的新版本共享库成功构建,它将与 libbaz
一起更新。但是,如果构建不成功,foobaz
软件包将具有版本依赖性(例如,libbaz 1.5),并且在 libbaz
升级期间,由于冲突,将被 pacman 删除。
如果 foobaz
是您自己构建并从 AUR 安装的软件包,则应针对新版本的 libbaz
重建 foobaz
。如果构建失败,请向 foobaz
开发者报告 bug。
存储库中是否可能存在主要的内核更新,而某些驱动程序软件包尚未更新?
不可能。主要的内核更新(例如,linux 3.5.0-1 到 linux 3.6.0-1)总是伴随着所有受支持的内核驱动程序软件包的重建。另一方面,如果您在系统上安装了不受支持的驱动程序软件包(例如,来自 AUR),那么如果您不为新内核重建它,内核更新可能会破坏您的系统。用户有责任更新他们安装的任何不受支持的驱动程序软件包。
升级前要做什么?
请按照系统维护#升级系统部分进行操作。
软件包更新已发布,但 pacman 说系统是最新的
pacman 镜像不会立即同步。更新可能需要 24 小时以上才能提供给您。唯一的选择是耐心等待或使用另一个镜像。MirrorStatus 可以帮助您找到最新的镜像。
上游项目 X 发布了新版本。Arch 软件包需要多长时间才能更新到新版本?
软件包更新将在准备就绪后发布。具体时间可能短至上游发布次要 bugfix 更新后的几个小时,也可能长至大型软件包组的主要更新后的几周。从上游发布新版本到 Arch 发布新软件包的时间长度取决于具体的软件包和软件包维护者的可用性。此外,一些软件包会在 testing 软件仓库中花费一些时间,因此这可能会延长软件包更新之前的时间。软件包维护者 尝试快速工作,以便将稳定的更新带到软件仓库中。如果您发现官方软件仓库中的软件包已过时,请转到 软件包网站 上的该软件包页面并标记它。
如果我需要已安装库的旧版本,我可以只符号链接到较新版本吗?
如果您幸运的话,它可能会在一段时间内工作。但无论如何,这不是一个正确的解决方案,因为
- 库不会随机更改版本——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 位 的结合,它在本质上也更安全,而 NX 位在 stock i686 内核中不可用,因为禁用了 物理地址扩展 (PAE)。如果您的计算机具有超过 4 GiB 的 RAM,则只有 64 位操作系统才能充分利用它。
程序员也越来越不关心 32 位(“旧版”),因为“新” x86 CPU 通常支持 64 位扩展。
我们可以列出更多理由来告诉您避免使用 32 位,但在内核、用户空间和单个程序之间,简单地列出 64 位在这些天做得更好的所有事情是不现实的。