Frequently asked questions (简体中文)
一般问题
Q) Arch Linux 是什么?
A) 请阅读Arch Linux。
Q) 为什么我不想用Arch?
A) 您也许不想使用Arch,如果:
- 没有能力、时间、愿望去打理这样一个高度可定制的GNU/Linux发行版。
- 需要非x86_64平台支持。
- 你是狂热的自由软件爱好者,只希望发行版提供GNU定义的自由软件。
- 你认为好的操作系统应当是已经配置好的:安装介质应默认包含一套完整的应用软件、桌面环境——达到“开箱即用”。
- 你不需要使用滚动升级的发行版。
- 你对目前使用的操作系统感到满意。
Q) Arch Linux 支持什么架构?
Arch Linux 现在只支持 x86_64(有时称为amd64) 架构,对 i686 架构的支持将逐渐终结。
Arch 遵循 FHS 吗?
Arch Linux 遵循适用于 systemd 服务管理器的文件系统架构,file-hierarchy(7) 包含了每个文件夹的解释和设计。 /bin
, /sbin
和 /usr/sbin
现在是 /usr/bin
的符号链接,/lib
(以及 /lib64
) 是 /usr/lib
的符号链接。
我是一个彻头彻尾的Linux新手,我应该用Arch吗?
如果你是新手,要使用 Arch 就必须愿意花时间学习新系统,接受 Arch 是一个 DIY 的系统,每个用户都是自己系统的组建者。
在开始问任何问题之前,自己先通过Google、Wiki或者论坛进行搜索。我们为你创建了这些资源并让你可以随时访问,上千志愿者为你提供了大量的信息资源。
推荐阅读: Arch terminology#RTFM 。
Q) Arch的安装和配置十分麻烦,社区的人总是让我去读那些死长死长的手册。
A) Arch是针对一部分特定用户群设计的,也许不适合你。
Q) Arch是为服务器、桌面还是工作站设计的?
A) Arch并不是针对特定应用设计的,而是针对特定类型的用户设计的。Arch适合那些喜欢并有动手能力的用户,以及希望打造属于自己的独一无二的系统的用户。因此,对于这些用户,Arch能胜任各种工作。许多人把Arch同时当做桌面系统和工作站。此外,archlinux.org网站在Arch上运行。
我太喜欢Arch了,希望开发团队实现一个新功能
参与进来,分享代码和解决方案。如果大家和开发者确实认同该功能,有可能会被添加到系统中。Arch社区依靠大众贡献分享的代码和工具蓬勃发展。
Q) 什么时候发布新版本?
A) Arch Linux 的发布版本只是安装和修复环境,包含base 元软件包 和一些 辅助软件,一般每月上旬发布一次。
Arch使用滚动升级模式,只需执行一条命令,便可升级系统到最新版本。基于上述原因,发布新版本对Arch并不重要,滚动升级使系统永葆青春。使用pacman -Syu
命令升级系统,无需重装系统即可更新到最新版本。同样,Arch的新发行版本并不会提供什么新的功能。新的功能通过pacman -Syu
命令即可立即拥有。
Q) Arch Linux 是否稳定?会不会经常坏掉?
“用户”应当对自己的滚动升级的系统稳定性负责任。用户自己决定何时升级、修改配置。Arch与其他发行版的一个不同是,Arch是真正的“DIY”发行版。抱怨系统损坏是无意义的,毕竟上游的改动不是Arch开发者的责任。
如果你想要系统变得更稳定,请参阅:提高系统稳定性
Q) Arch需要更多曝光(比如广告)。
A) Arch已经得到应得的新闻曝光机会。Arch Linux 的目标不是为了变大。我们的目标是使它变得更好。让它自然增长吧。试图强迫它成长得更快会造成诸多问题。
Q) Arch需要更多开发者
A) 也许吧。欢迎你来帮助我们!逛逛论坛,IRC channels 以及邮件列表,看看有什么需要做的。或者,看看论坛的 Community Contributions 子版面吧。
安装
Q) Arch需要安装程序,比如带图形界面的。
A) 由于Arch通常不需要多次安装(采取滚动升级),安装程序并不是开发者和用户关注的重点。Installation guide (简体中文) 已经完全更新到使用命令行的版本。
我安装了Arch,现在正面对一个命令行登陆界面,怎么办?
建议阅读 General recommendations.
Q) 哪个桌面环境或窗口管理器比较好?
A) 有很多选项,选择最适合你的即可。参见:桌面环境。
Arch比起其他“小型”发行版,有何独特之处?
建议阅读 Arch compared to other distributions (简体中文).
其他
Q) AUR是什么?
A) 参见:Arch用户软件仓库#FAQ。
Q) 为什么Arch下网速比其他系统慢?
A)网络是否正确配置,读一读网络配置。
Q) Arch为什么用了我的所有内存?
A) 实际上,内存不用就浪费了。
很多新用户发现,Linux内核对内存的处理和他们所想的有所不同。由于访问内存比访问磁盘要快速得多,内核会把最近访问的数据缓存到内存中。缓存数据会在空闲内存耗尽时被释放。
造成这种困惑的罪魁祸首,恐怕是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
注意 "free" 和 "available" 的区别,即空闲和可用的区别。在上面的例子中, 电脑所有的 2.8G 内存几乎全部占用。"free"中只剩下 283 MiB 是未使用的。但是在总量 2.8G 内存中的 1.4G 是 "buff/cache" 缓存。实际上还剩下 1.2G 是可使用的(不考虑交换空间)。查看 free(1) 了解更多。
有什么用?更好的性能!
如果对此十分困惑,请参见此文。还有一篇文章详细解释:https://www.linuxatemyram.com/
Q) 我的磁盘空间被什么东西占用了?
A) 问题的答案因系统而异。有一些应用列表或许能告诉你答案。
软件包管理
详情请参考 pacman、pacman/Tips and tricks 和 Official repositories。
Q) 我发现了某个软件包的错误,该怎么办?
A) 首先你需要搞清楚Arch队伍是否能够解决这个错误。有时并非如此(Firefox崩溃也许是Mozilla开发团队的错误)——这便是所谓的上游错误。如果确实是Arch的问题,你可以采取以下步骤:
- 在论坛中搜索有关信息。看是否有人已经注意到过。
- 根据 Bugtracker 指导,提交Bug报告。
- 也可在论坛中发篇帖子,阐述问题细节并说明你已经报告过。这会避免其他人重复报告同样的问题。
Q) Arch软件包需要独特的后缀名。“.pkg.tar.xz”太长了,而且令人困惑
A) 在Arch邮件列表曾有过讨论。一些用户提议.pac作为文件扩展名。但就目前所知而言,没有计划改变软件包的扩展名。
正如Tobias Kieslich(一名Arch开发者)所说:“一个软件包就是一个[xz]压缩包!它可以被很多软件打开、研究和操作。此外,这种mime-type也可以被大多数软件自动地正确识别。”
Q) Pacman应该提供函数库接口,这样其他软件就可容易地获得软件包信息。
A) libalpm[失效链接 2021-11-10 ⓘ](Arch Linux Package Management,Arch Linux 软件包管理)是 pacman 的后端,这个库大大方便了交互式前端的编写(例如图形化前端)。
Pacman需要某某功能!
如果有新想法,可以在 pacman-dev 邮件列表进行讨论,或查看官方论坛 看看有没有类似想法。
也欢迎你自己实现新功能。也许你的代码或补丁不会被官方接受,但他人可能会用到。
仓库和镜像的区别是什么?
参考 pacman#Repositories and mirrors.
Q) 我刚刚安装了一个软件包,怎么启动呢?
A) 如果正在使用像KDE和GNOME这样的软件包,程序一般会自动出现在菜单中。如果是命令行程序,则可使用如下命令查看可执行文件名称和位置:
$ pacman -Qlq package_name | grep /usr/bin/
Q) 在官方仓库中,为什么只为每个共享链接库提供一个版本?
A) 某些发行版,比如Debian,会为一个共享库提供多个版本,比如:libfoo1
,libfoo2
,libfoo3
等等。这样,就可以同时安装那些依赖不同版本libfoo的程序。
Arch官方只对最新版的程序提供支持。摆脱了过时的软件包,包维护人员就可以全力维护新版本的程序。只要上游提供新版本的共享库,我们就会重新编译相关程序,更新仓库。
Q) 执行pacman -Syu
时,显示某个共享库需要升级,但依赖它的程序没有升级,我该怎么做呢?
A) 这种情况理应不会发生。假如官方源一个名为foobaz
的程序,成功地使用新版本共享库libbaz
编译成功,那么它应该和libbaz
一同更新。如果编译不成功,由于旧的foobaz
存在依赖关系,例如:
libbaz=1.5
所以当libbaz
升级时,它会被移除。
如果foobaz
是你自己编译的或是从AUR获取的,当libbaz
升级时你应当重新编译它。如果编译失败,请通知foobaz
开发者。
会不会出现仓库中的内核主版本更新了,而某些驱动包没有一同升级的情况?
不可能。当内核主版本升级时,所有支持的驱动一定会一同更新。然而,如果你安装有非内核支持的驱动包,比如catalyst
,内核升级可能导致系统挂机。你应当在内核升级时自行重编译它们。
升级前该做什么?
在升级前,记得访问 Arch Linux 新闻列表,通告邮件列表 (有时需要看看 论坛和各个邮件列表),需要特别注意的事项都会列在那里.另见 System maintenance#Upgrading the system.
我知道某个包已经更新,但是 pacman 并没有发现更新
可能是 pacman 镜像还没有同步,最好等等或是换个镜像服务器. MirrorStatus 可以帮助你区分那些镜像服务器是最新的.
X 上游项目已经发布了一个新版本,多长时间 Arch 才会更新到新版本?
软件包将会在准备好后发布,发布的时间取决于上游的变动和打包人员的精力。如果发布的是小版本,可能只需要几个小时。如果发布的是大版本更新,可能需要数周时间。此外,有些软件包会在 testing 仓库中停留一段时间进行小范围测试。软件包维护者 会尽量快点将稳定版本发布到仓库。如果发下官方软件仓库中的软件过旧,可以在 软件包页面 进行标记。
如果需要一个老的软件库,可以 symlink 到新版本吗?
如果幸运,这个方式可以用来救急。但是这不是一个正确的方式:
- 软件库不会无缘无故更新版本 - API/ABI 可能发送变动,这些变动是否影响到使用只能听天由命。
- 软件包管理器不会记录软链接,新手执行这种操作,可能引起不好恢复的错误。
- 未被记录的老版本文件很快就会被忘掉,安全漏洞不会被修复。
推荐的方式是使用或编写兼容软件包,用其提供需要的版本。
64-bit
我如何确定我的处理器是否支持 x86_64?
运行下面的命令:
$ less /proc/cpuinfo
查找 flags
条目。如果你看见 lm
标志,那么你的处理器是支持 x86_64 的。
Windows 用户可以使用免费软件 CPU-Z,可以确定CPU是否支持64位。
带有 AMD 的 "AMD64" 指令集或者英特尔的 "EM64T" 指令集的 CPU 兼容 x86_64 发行版和二进制包。
为什么使用64位?
64位系统(大多数情况下)更快,而且更安全。更安全是由于拥有 Address space layout randomization (ASLR) 、 Position-independent code (PIC) 特性,以及 NX Bit (它在i686内核中由于禁用了PAE而无法使用)。如果你的计算机在运行4GB或者更多的内容,应该使用64位系统,因为多余的内存无法被32位系统分配。
编程人员也更加倾向于不关心32位系统,因为新的x86 CPU通常都支持64位扩展。
还有许多其他的理由让我们不使用32位系统,但是在内核、用户空间和单独的程序中我们没有办法列出所有的64位比32位做得好的地方。