主页

系列文章

最新文章

在 Hugo 模板中使用新功能并兼顾向后兼容性

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

在最近发布的 Hugo v0.109.0 中,页面对象新增了一个 .Ancestors 变量,可以用来方便地实现面包屑导航的模板。光是通过对比此次更新前后 Hugo 文档中给的面包屑模板例子,就可以看出这个变量的作用了:有了它,面包屑就不需要通过递归调用辅助模板(即下面例子中的 breadcrumbnav)来生成了,代码简洁明了了不少。(为便于阅读,以下代码的格式被重新整理过) ……

在原版 DOSBox 中运行 Windows 98

阅读时长:11 分钟

作为一个 DOS 模拟器,DOSBox 理论上应该是支持运行像 Windows 3.1、95 和 98 这些基于 DOS 的 Windows 版本的。确实,在 DOSBox 官网的兼容性列表中,Windows 3.1 和 95 都被列为“支持”(supported);但是 Windows 98 的兼容性仅被评为“可运行”(runnable),比中间的“可游玩”(playable)还低一档。可能正因为如此,很多想运行 Windows 98 的人索性就选用了支持 Windows 98 的 DOSBox 分支项目,比如 DOSBox-X。 不过,我并没有放弃在原版 DOSBox 里运行 Windows 98 的尝试。如果能在 Windows 98 里运行纸牌和三维弹球等程序就可以算作“可游玩”,那么根据我的发现,只需要一点点额外的操作,就可以让 Windows 98 在原版 DOSBox 中至少达到“可游玩”的级别。因此,我决定写下这篇教程,给想在原版 DOSBox 里试一下 Windows 98 的人一个参考。 ……

在 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 指南中已经提到,而剩下的指南中未提到的步骤则会提升用户体验。 ……

MC Forge Mod 开发记录:加入配置界面(1.16 版)

阅读时长:11 分钟

在本系列博客的第一篇文章中,我介绍了如何在 Minecraft 1.14.4 及以上版本之上给 Minecraft Forge mod 做一个配置界面,即使是在 Forge 里原有的配置界面框架被删除、并且核心开发成员已经决定再也不会把它加回来的情况下。Forge 项目领导者 LexManos 如此冷酷无情地否定 @Cadiboo 耗费多于一年的心血才做出的劳动成果,仅凭几句话就随意地关闭前面链接里的 pull request,让我感到非常失望和心寒。除了对 Minecraft Forge 项目的主要成员又多了一份不满以外,这件事也让我明确了一项新的责任和使命,那就是继续维护这种开发 mod 配置界面的方法,确保它在最新的 Minecraft Forge 版本上仍然可用。在与一名 mod 开发者、本系列博客的一名读者、同时也是我所毕业的高中的一名学生 @yuesha-yc 交流后,我意识到了对于 Minecraft Forge 这样一个官方文档聊胜于无的平台来说,我这些关于 Forge mod 开发的文章对于 mod 开发者们来说就如同雪中送炭,所以我也会竭尽全力,继续分享我关于 Forge mod 开发的经验和知识,为广大开发者提供帮助。 ……

通过 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 占用率和频率信息,方便我们了解系统负载。虽然任务管理器提供的监测功能绝不是最全面的,但作为一个系统自带、并且可以快速调出的工具,任务管理器有它独有的优势。 ……

MC Forge Mod 开发记录:升级到 Minecraft 1.16

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

Minecraft Forge 支持 Minecraft 1.16 已经有相当长一段时间了。1.16.x 系列的第一个稳定版本 34.1.0 早在 2020 年 9 月,也就是我这个系列上一篇关于我的 mod 的更新的文章发布不久后,就已经出了。其实在我准备更新 mod 期间,Forge 的 1.16 支持就已经比较成熟了,所以我当时就在考虑要不要在更新时顺带把 mod 移植到 1.16 上。但是,经过艰苦的尝试,我发现当时 Forge 附带的 MCP 反编译出的 Minecraft 代码中依然有许多没完全反混淆的方法名称,遂感觉 Forge 对 1.16 的支持仍然不够完善,于是决定暂不把 mod 移植到 1.16。 后来,我看到 Forge 出了第一个 1.16 的稳定版后,就将其下载了下来,看了看之前没反混淆的那些方法的名字有没有给改过来。结果是令人十分失望的:所有原来没反混淆的名字,一个都没有变。这样一个在我看来完全算不上是一个稳定版本,Forge 就这么草草发布,贴上了“推荐”的标签,顺带还停止了 1.14.x 的支持。停止支持意味着什么呢?意味着如果您在 Forge 官方论坛发帖求助,并且您用的是一个停止支持的版本,就会有论坛管理给您扔下一句冷冰冰的“你用的版本已停止支持,请升级以继续获得支持”,然后无情地关闭您的帖子,顺手阻止了其他非管理员的论坛成员提供帮助。好家伙,发布一个未成品,还把一个稳定版本的支持结束了,就是强行让追求稳定的开发者选择 1.15.x 呗?我当时差点就要在这里写一篇檄文,点评 Forge 开发者对“稳定版”的重新定义、以及论坛管理对于有关停止支持的版本的提问的冷淡的处理态度。 ……

Gentoo 上手体验

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

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