为什么 Debian 要修改软件包?
Debian 修改软件包的原因主要有以下几点:为了遵循 Debian 的策略,例如配置文件的位置和可执行文件的命名规范;为了使软件包之间更好地协同工作,例如统一 Unix domain socket 的位置;为了移除“调用主页”或绕过打包系统更新的代码,保障隐私和安全;为了修复上游未修复的错误,尤其是安全问题;为了避免包含无法合法分发的内容,例如不符合 Debian Free Software Guidelines 的部分;以及为了添加缺失的 manual page。
blog.liw.fi → posts → 2025 → Why does Debian change software? 2025-04-11 11:14 debian 大约一年半前,我写了Why is Debian the way it is?,有人要求我也谈谈为什么 Debian 会修改它所打包的软件。以下是一些发生这种情况的简要示例:
- Debian 中的软件需要遵循 Debian 多年来制定的某些策略,这些策略记录在 Debian Policy Manual 中。 这些主要是一些琐碎的事情,例如系统范围的配置位于
/etc
中,文档位于/usr/share/doc
中,等等。 其中一些更为复杂,例如可执行文件的名称在不同的包中相同时。 - Debian 中包含的程序需要以其他方式协同工作。 这可能意味着需要更改其中一个或两个。 例如,他们可能需要就 Unix domain socket 的位置或应该在哪个 Unix 用户帐户下运行达成一致。
- Debian 将删除“调用主页 (calls home)”或尝试以绕过 Debian 打包系统的方式更新软件的代码。 这样做既是出于隐私原因,也是因为不通过打包系统更新软件通常在功能上存在问题,并且在安全性方面始终存在问题。
- Debian 可能会在上游修复之前修复错误,或者可能会将错误修复反向移植到早期版本。 这里的目标是改善 Debian 用户的生活。 Debian 尤其会这样做来修复安全问题,但也包括其他问题。
- Debian 避免在其软件包存档的主要部分中包含任何它无法合法分发的内容。 这适用于源代码包。 这意味着,Debian 可能会删除它认为不符合 Debian Free Software Guidelines 的那些软件部分。 删除的部分可能会移到 Debian 的“non-free”部分中的另一个软件包中。 一个例子可能是根据 GNU Free Documentation License 许可的带有不可变部分的手册,或者无法更改的徽标。
- 当上游没有提供 manual page 时,Debian 经常会添加一个。
感谢 Jonathan McDowell 对此列表的帮助。 观点和错误是我的。 我说,是我的!