面向开发者的 Arch Linux
本报告讲述了我使用 Arch Linux 作为开发者工作站操作系统的经验。首先,我会介绍 Arch Linux 的概念,然后介绍软件包安装和操作系统维护等主要任务。最后,我会讨论为什么我认为 Arch Linux 是一款优秀的开发者操作系统,并给出总结。
介绍
首先,我想避免使用诸如“Linux 比 Windows 好”、“Mac 比 Linux 好”或“Windows 比 Mac 好”之类的典型操作系统比较论调。如果操作系统符合您的个人需求,那么它就是您的正确选择。正如生活中的许多方面一样,没有绝对“更好”的选择。
请注意,本文仅代表我的个人观点,可能与您或其他人的观点有所不同。
什么是 Arch Linux?
Arch Linux 是一款极其轻量级、完全可定制、滚动发布的Linux 发行版,由社区驱动并从头开始编写。它遵循KISS 原则,这使得操作系统没有诸如图形界面或命令行安装对话框之类的额外开销,发行版本身也不提供配置工具。因此,Arch Linux 的目标用户是经验丰富的 Linux 用户。由于采用滚动发布模式,Arch Linux 的简洁性允许您完全按照需求构建系统,而无需重新安装以获取新的主要操作系统版本。如果您维护得当,理论上您可以永远运行您的第一个 Arch Linux 安装。
与其他发行版不同,Arch Linux 没有默认桌面安装、默认文件系统或默认工具集。它只是一个操作系统。不多不少。这就是简单,不是吗?
官方 Wiki上有各种指南,可以帮助您根据需要设置系统。还有一些项目提供基于 Arch 的发行版。其中之一是Anarchy Linux,我个人正在使用它。它本质上是一个带有安装对话框的 Arch Linux。您仍然可以通过中止安装程序并手动执行操作或取消选中某些您不想安装的软件包来自定义安装。
包管理
Arch Linux 的软件包管理器名为pacman。它是一个命令行工具,允许您在系统上安装、删除和更新软件包。无论您的软件包是自行构建的、从官方仓库下载的,还是来自AUR(Arch 用户仓库,用户可以在其中提供自行维护的软件包),pacman 都是您管理这些软件包的工具。让我们来看看最重要的命令:
pacman -Syu
:同步软件包存储库数据库后更新所有软件包pacman -S <package-name>
安装包pacman -R <package-name>
删除包pacman -Qdt
查询包数据库并找到所有不再需要的包。
唯一稍微有点麻烦的任务是从 AUR 安装软件包。这些软件包必须先构建,然后才能安装。这需要以下步骤:
- 下载源代码
cd /path/to/the/sources
- 仔细检查所有文件,因为 AUR 存储库可能包含任何内容。
makepkg -si
另一项令人头疼的任务是保持 AUR 软件包为最新版本,因为 pacman 无法做到这一点。因此,您必须定期检查 AUR 软件包的版本,并在需要时重新安装它们。
但别害怕!AUR 辅助工具可以拯救您!这些工具能够管理官方仓库以及 AUR。我最近选择aurman作为我的 AUR 助手,因为它维护良好、文档齐全、功能丰富并且运行良好。它的 AUR 条目创建于 2018-03-20 22:31,因此相对较新。查看aurman AUR 页面了解更多详情。
要在全新的 Arch Linux 上安装 aurman,只需按照前面提到的从 AUR 手动安装即可。如果您想了解更多详情,请访问Arch 用户仓库 wiki 条目。
由于 aurman 具有原生的 pacman 集成,因此您可以像使用 pacman 一样使用它,但具有 AUR 支持。
2018年12月28日快速编辑:
Polygamma 已停止 aurman 的开发:我不再愿意继续开发 aurman 供公众使用。GitHub 问题已关闭,我不再对反馈、功能请求或错误报告感兴趣。从现在开始
,aurman 将只供我自己使用,我建议迁移到 yay。
更多信息,请查看GitHub 上的README 文件。
我迁移到了 yay,效果很好。感谢@maxdevjs指出本博客仍然推荐 aurman。祝大家新年快乐!
可用包
我最大的担忧之一是,我可能无法找到日常工作所需的所有软件包,或者这些软件包可能已经过时,因为 Arch Linux 使用的是它自己的软件包系统。截至目前,我需要的所有软件包都可以通过官方仓库或 AUR 获取。这其中也包括 IntelliJ Ultimate IDEA 等软件。与我曾经的想法相反,Arch Linux 的软件包绝对是最新的,甚至可以说是最先进的。
维护您的系统
软件更新
与许多其他操作系统一样,最常见的维护流程是安装更新。如前所述,只需一个命令即可轻松完成pacman -Syu
,或者aurman -Syu
如果您选择了 aurman 的话。如果您每周安装一次更新,则不会花费很长时间。目前,我的更新大约需要 10 分钟。这不包括需要更新 IntelliJ IDEA 的更新。这需要额外 5-10 分钟。
在开始更新之前,我强烈建议您查看archlinux.org 上是否存在任何已知问题。如前所述,Arch Linux 是一个前沿的滚动发布发行版。因此,某些更新可能需要您比其他更新更加关注。截至今天,我只有一个更新需要手动交互。解决此问题(js52 更新)的说明已在 archlinux.org 上详细记录。
备份和恢复
备份文件是使用电脑时最重要的规则之一。我想几乎每个人都经历过由于备份不足而丢失数据的情况。所以,我认为大家已经吸取了这个教训,所以我就跳过这一章了。我想讨论的更有趣的部分是创建操作系统备份,以便在发生严重系统故障时能够恢复系统。和往常一样,有很多方法可以实现这一点。让我们讨论一些场景和可能的解决方案。
系统不稳定
假设您更新了系统。现在,您的系统到处抛出错误信息,并且速度也慢了不少。如果更新的软件包不止一个,而是 10 个或 20 个,那么找出根本原因很容易成为一项繁琐的任务。那么,回滚系统会很棒,对吧?没问题!如果您选择BTRFS作为文件系统,则可以创建整个文件系统的快照。如果您启动到恢复介质或救援分区,则可以恢复这些快照。请注意,btrfs 快照从技术上讲**不是*备份。它只是原始设备的写入影子副本
。* 公平地说,BTRFS 并非 Arch Linux 独有。但它像其他软件包一样利用了滚动发布概念。因此,您很可能会比其他发行版更早地收到错误修复和改进。
致命的系统崩溃
最糟糕的情况!HDD/SSD 损坏。因为你备份了文件,所以情况还不算太糟,对吧?你只需要重新设置系统,从备份中恢复文件,一切就都正常了。不过,安装所有必需的软件包并设置个人配置可能会花费一些时间。因此,我建议也备份这些信息,因为操作系统不就是一堆软件包和配置吗?以下是我使用的工具:
- etckeeper:为您的文件夹创建一个 git 存储库,
/etc
包括由于生命周期钩子而导致的每次 pacman 操作之后的全自动提交。 - packup:一个用于导出已安装软件包列表的简单工具。它也提供安装功能,但我还是会选择 aurman。
- dotfiles:一种跨多个系统跟踪点文件的工具。
因此,使用这些工具恢复系统非常简单:安装 Arch Linux,从导出的软件包列表中安装所有软件包,恢复配置,恢复点文件,完成!
更多信息
如前所述,官方 Wiki上有大量信息,其中还包括一篇关于系统维护的文章。在这里,您可以找到许多工具和任务来维护您的系统健康稳定。请注意,并非所有提到的任务都是维护系统稳定所必需的。只需选择您认为重要的内容即可。
为什么我认为 Arch Linux 对开发人员来说很棒
本文提到的许多方面在其他发行版中也能实现,但在我看来,Arch Linux 的一些特点使其成为开发者的理想之选。
作为开发者,我们了解软件和技术。我们了解软件的工作原理,了解这些技术要素如何组合在一起,也知道如何处理软件系统。即使我们不了解,我们也能快速学习,因为软件是我们的日常工作,也是我们的热情所在。这些方面与 Arch Linux 的简洁性和灵活性相结合,构成了一个绝佳的组合,拥有巨大的潜力,可以尽可能提高您的日常工作效率。
作为一个滚动发布的发行版,您可以始终拥有最新的系统,而不必担心 LTS 期限的结束。软件包即使不是最新的,也是最新的。这意味着,您无需等到维护人员认定新的软件包版本稳定可用即可。您可以自行维护系统并根据需要进行自定义,而维护工作与其他发行版类似。您可以自行决定,是想要一个功能齐全、拥有各种美观效果的现代桌面环境,还是想要一个精简版或命令行驱动的系统,以充分释放您机器的计算能力。如果出现问题?那么您知道在哪里查找问题,因为您已经设置好了系统,因此您知道它上面运行着什么。
所有这些,再加上活跃的 Arch Linux 社区和官方 wiki中详尽的文档,在我看来,使其成为开发者的绝佳选择。
结论
正如开篇所述:
如果操作系统符合您的个人需求,那么它就是您的正确选择。
就我而言,我选择了 Arch Linux。并非因为它为 Linux 世界带来了什么令人惊叹的新功能或改变生活的增强功能,而是因为它带来了一些有意义的新概念,并从用户的角度改善了系统的运行方式和体验。
我希望我的系统尽可能高效,同时又不失桌面环境的舒适性。我还希望能够使用最新的软件。我希望我的系统稳定可靠,并且能够理解系统运行的状况。所有这些,Arch Linux 都无法满足我的要求。Arch
Linux 是一个简单、完全可定制、由社区驱动的滚动发布操作系统,拥有庞大的软件包和文档生态系统。Arch Linux 拥有其他发行版中提供的所有功能,但您可以选择是否使用它。然而,Arch Linux 并不适合初学者。在开始之前,您应该对 Linux 系统有扎实的了解。但如果您掌握了这些知识,就能充分发挥它的潜力。
本文最初于 2018 年 6 月 18 日发表于labs.consol.de
文章来源:https://dev.to/svetwer/arch-linux-for-devs-26dm