教程

通过命令行选项让同一 LaTeX 源文件产生不同输出

阅读时长:8 分钟

您可能有过创建同一份文档的不同版本的需求、或是想从同样的源文件生成多份不同但又彼此关联的文档的情况,例如: 文档的不同版本之间只有排版不同,而内容完全相同。例如: 您想生成一份标准版的文档,同时再生成一份大字号版,以便于视力不佳的人群阅读。 不同版本的文档以不同的顺序呈现内容,但除此之外,所有版本的内容都是一样的。例如: 您可能想准备多种版本的履历以申请不同类型的岗位,其中面向研究岗位的履历将出版物列在教学经历之前,而面向教学岗位的履历则是相反的顺序。 ……

让 Steam 在启动游戏快捷方式时最小化到托盘(仅适用于 Windows)

阅读时长:4 分钟

最近 Steam 客户端的大更新在大改界面的同时,在用户体验方面却有所退步:如果在 Steam 客户端没有运行的时候,使用桌面或开始菜单的快捷方式启动 Steam 游戏,那么 Steam 会在启动游戏前弹出客户端窗口;而在大更新之前,用快捷方式启动游戏后,Steam 是会直接最小化到系统托盘的,压根不会显示客户端窗口。 新版客户端的这一特性,对于喜欢用快捷方式启动 Steam 游戏、并且不想让 Steam 开机自启的用户来说,无疑十分烦人。因为现在用快捷方式启动游戏后,必须手动关闭 Steam 自己弹出的客户端窗口,才能将 Steam 最小化到系统托盘,否则 Steam 的窗口就会一直待在前台。 ……

避免创建纯 -9999 Gentoo 软件包

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

有些 Gentoo 软件包会提供一个特殊的 9999 版本:按照惯例,如果一个 ebuild 的版本是 9999,那么它就是一个实时 ebuild,构建软件包时使用的是该软件项目的版本控制系统仓库(例如 Git 仓库)中的最新“实时”源码,而非来自 .zip 或 .tar.* 压缩包的“非实时”源码。版本控制系统仓库中的项目源码经常会被修改,故被称作“实时”源码。 当一个软件包只有一个实时 ebuild、没有任何非实时 ebuild 的时候,我会称之为“纯 -9999 软件包”,因为该软件包唯一的 ebuild 的版本一般是 9999。请避免创建纯 -9999 软件包。换言之,一个实时 ebuild 不应成为某个软件包的唯一 ebuild。 ……

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

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

阅读时长:3 分钟

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

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

阅读时长:7 分钟

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

Fedora 在树莓派 4 上的 USB 问题的复杂解决方法

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

在上一篇帖子中,我介绍了一种十分简单的解决在树莓派 4B 4GB/8GB 内存型号上运行 Fedora 时无法使用 USB 接口的方法。这种方法通过牺牲可用内存的方式来换取 USB 接口的正常功能。而在现在这篇帖子中,我将再介绍一种方法,虽然需要更多的操作,但是不会导致 3 GiB 内存的限制。 上篇帖子中提到,2GB 内存的型号因为没有 USB 相关的问题,无需进行额外操作。USB 接口不能使用的问题的具体症状也在该帖中有所描述。 概括 如果只用一句话总结这个方法的话,那就是让 Fedora 使用 openSUSE(另一个 GNU/Linux 发行版)的引导程序和固件。这其中涉及的步骤包括: ……

Fedora 在树莓派 4 上的 USB 问题的简易解决方法

阅读时长:2 分钟

截至 Fedora 32 和 Linux 5.8,在树莓派 4B 4GB/8GB 内存型号上使用 Fedora 会出现 USB 接口无法使用的情况。在这篇帖子中,我将介绍一种十分简单的解决方法,简单到只需要给一个配置文件加一行选项。 注意事项 树莓派 4B 2GB 内存型号的用户不需要担心这个问题,USB 接口在 Fedora 上应该是可以直接用的。4GB 和 8GB 型号的用户才可能遇到这个问题。 使用此帖中介绍的这个方法后,系统将只能使用 3 GiB 内存。如果您需要更多的内存的话,就得用另一种稍复杂的方法了。虽然它的步骤比这种简单方法多,但是不会减少可用内存。 症状 树莓派的 USB 接口在官方的树莓派 OS 和其它系统上能用,但是在 Fedora 上无法使用。运行 dmesg | grep xhci_hcd 会出现下列信息: ……

建立多语言 Jekyll 网站

更新时间:

Jekyll 是一个静态网站生成器。由于 Jekyll 直接生成静态的 HTML 网页,因此用它建立网站的话只需要配置一个 HTTP 服务器就足矣。尽管如此,Jekyll 的功能依然相当强大:它支持从 Markdown 生成 HTML 文档,允许轻松地撰写和排版网页内容;它的插件支持允许对其自身和生成的网站的功能进行扩展。 利用社区开发者制作的 Jekyll 多语言插件,我们可以以多种语言呈现网站的内容,扩展网站的受众群体。不过,目前网上已有的 Jekyll 多语言插件都并非绝对完美,一般都有一些使用时需要注意的小细节、以及可以改进和提升的地方。以下的这一系列文章将涵盖后期完善多语言插件功能的方法,向您介绍如何利用多语言插件来做个类似于您正在浏览的这个网站的多语言功能。 ……

手动进行 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 上完成同样的集群配置步骤。 ……

在 Windows Terminal 中使用 Cygwin 命令行或 Git Bash

阅读时长:5 分钟

近日,微软发布了 Windows Terminal 的首个正式版本。Windows Terminal 是 Windows 10 上全新的终端程序。和命令提示符还有 Windows Subsystem for Linux (WSL) 默认使用的系统自带老式控制台 conhost.exe 相比,它允许使用多种不同的壳层(shell),例如 Windows PowerShell、命令提示符、以及 WSL。除此之外,Windows Terminal 提供的功能和自定义选项也是比原有的控制台多许多。 得益于可自行添加 shell 的功能,我们可以将 Cygwin 的 shell 和 Git for Windows 中的 Git Bash 也加到 Windows Terminal 里,就可以在没有 WSL 的情况下在 Windows Terminal 里使用 Unix shell 和其它的一些 Unix 程序了。这篇文章将介绍相应的方法。 ……

让 Steam 和 Epic Games 共用同一份 GTA V 游戏文件

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

继 Epic Games 宣布 GTA V 将在他们的平台上限免一周后,大量玩家蜂拥而至,其中甚至不乏一些已经在 Steam 上买了 GTA V,想再弄一个甚至好几个小号的人。 然而,很多人在 Steam 和 Epic Games 上同时拥有 GTA V 之后却发现即使已经从 Steam 上下过了游戏,也要从 Epic Games 上重新下载一遍。其实,只要利用一些小技巧,就可以让 Steam 和 Epic Games 共用同一份 GTA V 游戏文件,既省去了重新下载的麻烦,又能节省磁盘空间。我们可以利用 Windows 上一个不知名的 MKLINK 命令来建立一个链接:链接给人的感觉类似于快捷方式,能够让被连的文件看起来是放在了链接所在的位置,但其实是被存在了另一个位置。而链接本身占用的空间也是非常小的,所以可以节省大量的磁盘空间。 ……

让 Windows 10 Mobile 停留在 10586.545 不再更新的方法

阅读时长:3 分钟

Windows 10 Mobile 10586.545 版本是 1511 版本分支中最后一个版本。部分 Windows 10 Mobile 用户可能因为更好的系统表现、自带收音机或其它原因选择停留在版本 1511,但由于系统强制自动升级,部分设备又会被强制升级至更高的版本。本篇教程将指导您如何通过修改系统注册表来让 Windows 10 Mobile 不再能检测到更高的版本的更新,从而停留在 10586.545。 基本原理 对于一些比较老旧的 Windows Phone,例如 Lumia 1020,微软是不提供官方的 Windows 10 Mobile 支持的,这些设备在检查更新的时候也无法检测到比 1511 更高的版本。我们可以通过修改系统注册表的方式,将自己的手机伪装成这些设备中的一员,在检查更新的时候就不会收到任何更新了。 ……

打开 Windows 10 Mobile 烧屏保护功能的方法

阅读时长:3 分钟

Lumia 650、950 和 950 XL 三款设备为使用 Super AMOLED (以下简称 A 屏)并采用屏幕虚拟按钮的机型。由于 Super AMOLED 屏幕每个像素点衰老速度不同、以及显示纯黑色时像素点几乎完全不亮的特性,随着屏幕使用时间的累积,屏幕下方的导航栏区域可能会产生显著的“烧屏”现象:整个屏幕在全屏显示纯色(尤其是蓝色、白色)时,导航栏区域和其它区域的颜色并不相同。如果您长期使用深色主题模式并且没有在导航栏上使用配色,其它区域与导航栏区域相比可能偏黄;如果您长期使用浅色主题模式,或在导航栏上使用了配色,导航栏区域可能更黄。 ……

打开与关闭 Windows 10 Mobile 完整文件系统访问权限的方法

阅读时长:2 分钟

在 Windows 10 Mobile 中,只需要安装由 XDA Developers 论坛用户 gus33000 开发的 Interop Tools 就可以实现修改注册表、访问完整文件系统等“越狱”后的权限。Interop Tools 中有一个打开完整文件系统访问权限的开关,但由于相关的说明不够详细,包括我在内的一些用户遭遇了不能看到所有文件、打开选项后关掉却依然在将手机连接电脑时看到完整文件系统等问题。此教程将对此类问题进行解答。 适用范围 所有受 Interop Tools 中的此功能支持的机型,包括 Lumia 810、Lumia *2*(预装 Windows Phone 8 的第 2 代 Lumia 设备以及 Lumia Icon)、Lumia *3*(预装 Windows Phone 8.1 的第 3 代 Lumia 设备)、Lumia 540、Lumia 640 以及 Lumia 640 XL。 ……

Nokia/Microsoft Lumia 使用 FFUTool 刷机教程

阅读时长:3 分钟

安卓可以刷机这一事实,许多人都应该是知道的。比如说我们买了一部国行的 Samsung Galaxy S6,但不喜欢冗余的预装软件,或者是想使用 Google Play 服务,我们可以通过刷个港版、美版固件的方式来从另一种方式去解决。或者对于那些有第三方 ROM 的手机,我们还可以选择一个自己喜欢的 ROM 去刷入。 而对于 Windows Phone,我们显然不能刷入其它的 ROM,比如刷个安卓什么的,肯定不行。但我们可以像刚才叙述的前者那样,刷个其它地区的固件。Windows Phone 上的刷机一词就是指代这种刷机的方法。 ……