为什么 Debian 默认不包含 bc 和 ed 等 POSIX 指定命令?

为什么 Debian 默认不包含 bc 和 ed 等 POSIX 指定命令?

POSIX.1-2001 公用事业POSIX.1-2008 公用事业两者都列出了命令bced成为 POSIX 的一部分。

然而,在全新的 Debian 安装(例如版本 10)中,默认情况下缺少这些命令:

$ bc
bash: bc: command not found
$ ed
bash: ed: command not found

为什么 Debian 默认不包含这些命令?当然,我可以安装它们,我就是这么做的。

apt-get install bc ed

二进制bc文件大小只有 87K。包括手册页和文档在内的整个包大小仅为 209K。

同样,ed二进制文件的大小只有 55K。整个封装大小只有93K。

即使 POSIX 中指定了这些小软件包,有什么充分理由不包含它们呢?

答案1

一般来说,Debian 的目标并不是严格遵守 POSIX。 POSIX 强制要求的一些工具实际上并不常用,因此它们不包含在“标准”Debian 安装

对于大多数这些工具来说,这种情况随着时间的推移而演变,因此人们可以找到它们降级的痕迹;看这个错误请求ed例如。

Debian 中非“必需”的工具必须在需要它们的其他软件包的依赖项中明确提及,这也提供了对其“受欢迎程度”的某种衡量标准;edDebian 中很少有软件包使用,但使用的软件包bc较多。因此,bc它最终被安装在许多配置中。

答案2

简单的答案是并不是每个人都需要这些实用程序。

例如,我可能通过 Docker 部署一个使用 Debian 作为基本操作系统的应用程序。在这种情况下,我需要基本操作系统的很少部分。例如,绝大多数 Python Web 应用程序不需要 bc 或 ed。

还有其他遵循不同原理的操作系统。例如,OpenBSD 的开发人员希望“完全”安装。例如,现在他们希望在所有系统上安装完整的 X 环境。有些用户不愿意在无头服务器上安装 X。

请注意,根据Debian 并不声称完全兼容 POSIX。

相关内容