![为什么 Debian 默认不包含 bc 和 ed 等 POSIX 指定命令?](https://linux22.com/image/180005/%E4%B8%BA%E4%BB%80%E4%B9%88%20Debian%20%E9%BB%98%E8%AE%A4%E4%B8%8D%E5%8C%85%E5%90%AB%20bc%20%E5%92%8C%20ed%20%E7%AD%89%20POSIX%20%E6%8C%87%E5%AE%9A%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
POSIX.1-2001 公用事业和POSIX.1-2008 公用事业两者都列出了命令bc
并ed
成为 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 中非“必需”的工具必须在需要它们的其他软件包的依赖项中明确提及,这也提供了对其“受欢迎程度”的某种衡量标准;ed
Debian 中很少有软件包使用,但使用的软件包bc
较多。因此,bc
它最终被安装在许多配置中。
答案2
简单的答案是并不是每个人都需要这些实用程序。
例如,我可能通过 Docker 部署一个使用 Debian 作为基本操作系统的应用程序。在这种情况下,我需要基本操作系统的很少部分。例如,绝大多数 Python Web 应用程序不需要 bc 或 ed。
还有其他遵循不同原理的操作系统。例如,OpenBSD 的开发人员希望“完全”安装。例如,现在他们希望在所有系统上安装完整的 X 环境。有些用户不愿意在无头服务器上安装 X。
请注意,根据这Debian 并不声称完全兼容 POSIX。