GNU/Linux

在搭载苹果 ARM 芯片的 Mac 和 Asahi Linux 之上安装 Gentoo

阅读时长:15 分钟

我还记得在苹果刚发布基于自家 ARM 芯片的 Mac 的时候,有人猜测一场变革将就此在桌面计算领域展开。当时在 Reddit 上就有一名 GNU/Linux 用户声称,各大 GNU/Linux 发行版应重视起潜在的 x86-64 转到 ARM64 的趋势、未雨绸缪、采取行动,以免跟不上时代的潮流。但持此类观点的用户可能不知道的是,得益于高级语言的可移植性,构成 GNU/Linux 的常见软件包其实已经兼容 ARM64 很长时间了。而苹果发布的这些基于自家的高性能 ARM 芯片的 Mac,不但不一定会对 GNU/Linux 造成威胁,反而可能给后者提供了一个更宽阔的舞台供其发挥。在 Asahi Linux 项目开发者的努力下,我们可以在搭载苹果芯片的 Mac 上运行 GNU/Linux,充分压榨苹果芯片的性能。 ……

在 Gentoo 上使用 Git 管理内核源码

更新时间: 阅读时长:9 分钟

Gentoo 软件仓库的 sys-kernel/* 类别下有若干 Linux 内核软件包可供用户选择;不同的软件包安装内核的方式也不相同。其中,sys-kernel/*-sources 软件包(例如 sys-kernel/gentoo-sources、sys-kernel/vanilla-sources)只安装内核源代码文件,不进行任何其它操作。这样的特性适合想自己手动编译并安装内核、但仍然希望系统软件包管理器自动更新内核源码的用户。 然而,想要在 Gentoo 上妥善安装并管理内核,并不一定非要安装 sys-kernel/* 软件包:即使是内核源码,也可以由用户自行手动下载与更新,不需要软件包管理器的干预。本文就将介绍一种这样的方法,即使用 Git 来管理通过 Git 仓库提供的内核源码(并可附带管理外来的内核补丁)。 ……

Gentoo 配置指南:systemd

更新时间: 阅读时长:4 分钟

身为 Gentoo 官方安装文档,当前版本的 Gentoo 手册将重点放在了基于 OpenRC 的系统的配置,而不是 systemd。毕竟 OpenRC 是主要由 Gentoo 维护的项目,如果连自家的发行版都不把自己维护的 init 系统作为首选推荐的话,那就好比百度员工都在用谷歌。对于想安装 systemd 的用户,手册虽然也包括一些信息和指导,但同时会让用户另行参考一篇专门讨论 systemd 的 Wiki 文章。我觉得该文章的信息虽然很全面,但同时也很零散:系统安装过程中需要执行的步骤散落在文章各处,导致很容易遗漏关键的步骤。因此,我决定单独写一篇关于在 Gentoo 上配置 systemd 的文章,汇总安装 systemd 的全部步骤。 ……

Gentoo 配置指南:基于 systemd 的 GNOME

更新时间: 阅读时长:4 分钟

想在 Gentoo 上完美配置 GNOME 虽然不难,但需要经验。只要成功配置过一遍后就可能会觉得是小菜一碟,但是第一次操作的时候很容易遇到重重坎坷。虽然根据 Gentoo Wiki 上的 GNOME 指南可以配置一个最基础且能用的 GNOME 环境,但是想要完善 GNOME 配置的话,就还需要执行许多指南中没提到的额外步骤。比如,如果不进行额外配置的话,修改网络连接选项时就需要输入用户密码以验证权限,在 Wayland 会话中也无法从包括 Chrome 在内的浏览器共享屏幕内容。而且,该指南的中文翻译质量也有些堪忧。 因此,在这篇文章中,我将介绍让 Gentoo 上的 GNOME 更加完美地运行的一些关键步骤。其中,一些比较基础的步骤在 Gentoo GNOME 指南中已经提到,而剩下的指南中未提到的步骤则会提升用户体验。 ……

通过 Portage 打补丁以修复上游软件 Bug

阅读时长:11 分钟

如果您经常关注与自由软件相关的一手资讯,您肯定或多或少地读到过某款软件的 bug 最近被修复、或者某款软件有了什么新功能和改进的新闻,然后发现这些 bug 修复和新功能在一段时间内无非就是空气,因为实际收到包含这些修复或者改进的新版本的时候往往可能已经过了很长时间。当一个修复 bug 或者添加新功能的补丁被完成后,需要先提交给上游开发者进行审核、测试和整合,然后要等上游发布下个版本的时候才能正式生效,最后还要等您的发行版将新的上游版本添加到发行版自己的软件仓库,您才能收到包含该 bug 修复或新功能的更新。比如说,我们假设可能在今年 3 月发布的 GNOME 40 里包含一项 bug 修复。如果您使用的是 Fedora Workstation,您需要等到大概 4 月底,Fedora 34 推出的时候才能收到这项 bug 修复。如果是 Gentoo 的话,那我估计起码得等到今年下半年了,因为最近几次 GNOME 更新,Gentoo 都是在上游推出新版本之后过了将近半年才推送给用户的。 ……

用于在基于 Linux 的系统上查看 CPU 温度和频率的小脚本

阅读时长:3 分钟

在这篇帖子中,我将展示在基于 Linux 的系统上,如何仅依赖主流 GNU/Linux 发行版预装的软件包查看 CPU 频率和温度信息。这种方法不需要借助任何额外的和硬件驱动和支持相关的软件包,只需要用一个只有几行的 Bash 脚本,利用 Linux 内核自身提供的机制和一些最基础的 Unix 命令就能读取 CPU 的硬件状态信息。 如果想直入正题,您可以点击此处直接跳到脚本的内容。如果您想了解我发现这种方法的探究历程,欢迎继续向下阅读。 如果您是一名有一定电脑使用知识的 Windows 用户,您肯定有过使用任务管理器监测系统状态的经历。任务管理器提供了 CPU 占用率和频率信息,方便我们了解系统负载。虽然任务管理器提供的监测功能绝不是最全面的,但作为一个系统自带、并且可以快速调出的工具,任务管理器有它独有的优势。 ……

Gentoo 上手体验

更新时间: 阅读时长:11 分钟

自我上一篇文章发布到现在,已经过去六周时间了。各种新文章的主题和想法在我脑中迸发,把它们写下来并发布的意愿在我心中萦绕,只可惜太忙,而且忙的还是个竹篮打水一场空,只能在百忙之中匆匆把想法记录在草稿里,等有空的时候再写成正式的文章。现在终于忙完了一批活,难得短暂的清静,在可能只有写一篇文章的闲暇时间的情况下,我决定先把之前首次体验 Gentoo 的经历记录下来。Gentoo 是一个源码级 GNU/Linux 发行版,最有代表性的特点就是让用户自己编译系统的几乎所有组件,乃至于 Linux 内核也可以自己编译。 ……

在通过映像安装的 Fedora 系统上使用 Btrfs

阅读时长:7 分钟

自 Fedora 33 起,Fedora 将开始使用 Btrfs 作为桌面版本的默认文件系统。在我关注的几个 Fedora 用户社区(以国外的为主)中,这一更改还是受到了一些欢迎的,毕竟 Btrfs 和传统的 ext4 相比有一些额外、实用的功能。其它非桌面版本(例如服务器版)默认仍然使用 ext4,不过用户在使用 Anaconda 安装 Fedora 时仍然可以手动选择使用 Btrfs。但是,如果使用的是非桌面版本的 raw 映像,比如 aarch64 最小安装(Minimal)映像,因为是直接将映像写到安装目标磁盘上的,而不是用 Anaconda 安装器,所以就没有机会选择使用除 ext4 以外的文件系统。而在这篇帖子中,我将展示一种用映像安装时也可以使用 Btrfs 的方法,其原理是在应用映像后手动转换文件系统。 ……

手动进行 dnf history undo

阅读时长:8 分钟

我平时常用的 GNU/Linux 发行版包括 Fedora 和 CentOS。后者主要在服务器上使用,而在其它的使用场景下,比如我自己的电脑,就会使用前者。选择这两个发行版主要是因为这它们都使用 DNF 作为软件包管理器前端。有人嫌 DNF 太慢,但我喜欢它是因为它不仅会详细列出它将要进行的操作,包括装卸什么软件包、什么架构、什么版本,还允许方便地查询历史记录。DNF 对其运行的每个事务都保存记录(一个事务就是一次安装或卸载软件包的操作),并且还支持使用 dnf history undo 撤销事务,或使用 dnf history rollback 回滚到某一个事务。其它的一些像 APT 和 Pacman 的软件包尽管也会保存日志,但是并没有类似的撤销操作的功能。 ……

在 Fedora 上安装树莓派的 vcgencmd 命令

更新时间: 阅读时长:3 分钟

这篇帖子算是对我之前关于在树莓派集群上配置 Fedora 的那篇的一个延续。集群配置好后,我告知机主 @ColsonXu 他的集群已经正式投入运算,他就告诉我可以运行一个命令来查看树莓派的 CPU 温度,监视硬件状况: $ /opt/vc/bin/vcgencmd measure_temp 这个 vcgencmd 命令是树莓派 OS(旧称 Raspbian)上用来获取硬件相关信息的命令。然而,这个命令在 Fedora 官方的软件仓库里并没有提供。好在 vcgencmd 的源代码是可以下载的,所以我们可以自行编译它,就能在 Fedora 上使用了。vcgencmd 是树莓派 OS 中 userland 软件包的一部分,而整个 userland 的源代码都可以直接从网上获取。 ……

在树莓派集群上配置 Fedora

阅读时长:10 分钟

在开始之前,我首先要感谢考森同志 @ColsonXu 给了我一个折腾树莓派的机会。他买了几个树莓派 4,准备组一个计算用的集群,可是建好后却没什么可计算的,没什么用场。直到一天早晨,达西 @mrdarcychen 在 Fedora 杂志上发现了一篇在树莓派上跑 Rosetta@home 的文章,于是就问考森要不要搞。在他同意之后,我便开始着手配置他的树莓派集群。 我拿到这堆树莓派的时候,集群已经设置好了。尽管我并没有问过机主本人他当时集群是怎么弄的,但他应该是按照这篇 MagPi 杂志文章配置的。这篇文章里用的是树莓派 OS(旧称 Raspbian)而非 Fedora;如果想弄一个运行 Fedora 的树莓派集群,大体的流程还是相同的,但是具体的步骤和运行的命令有些不一样。接下来我将具体地介绍如何在 Fedora 上完成同样的集群配置步骤。 ……

grep 替代 cat

阅读时长:4 分钟

我遇到了一篇很有趣的英文文章 Unix Recovery Legend,讲的是一群人拯救一个被 rm -rf / 毁坏的系统的故事。几十年前,在电脑还没发展到人手一台,一台电脑要给好几个人同时使用,每个人自己只有一个终端的年代的某一天,与该文章作者同处一间办公室的同事发现邮件发不出去了,作者就前去帮忙检查,发现 ls 命令和 /etc 目录被删了,于是就去找系统管理员,发现管理员的屏幕上赫然显示着这么两行文字: # cd # rm -rf * 由于是以超级用户身份执行的,第一行命令,cd,把工作目录切到了根目录 /(在现在的 GNU/Linux 环境中这么做则会切到 /root 目录下),然后第二行命令就删除了 / 下的所有目录和文件,效果等同于 rm -rf /。好在这条指令在把硬盘清光之前被强行停止了,虽然 /bin、/dev、/etc 和 /lib 被删,但是 /tmp、/usr 和 /users(相当于现在的 /home)逃过一劫。/bin 下都是命令,所以 ls 和 ps 等程序没法使用;/dev 下是设备对应的文件,由于被删了,磁带机这样的存储设备无法使用;/etc 下则是有各种配置文件,包括网络配置,所以也无法通过网络连接机器。这几重因素造成了即使这些人有磁带备份也难以恢复系统的窘境。 ……