首先,请允许我阐述一些 RPM 背后的理念。其中一个设计目标是允许使用“原始”源代码。在 RPP(我们之前的打包系统,RPM 的任何部分都不是源自它)中,我们的源软件包是我们从中构建的“修改过的”源代码。
理论上,可以安装一个 RPP 源代码,然后make它,不会有任何问题。但是这些源代码不是原始的,也没有任何关于我们必须做哪些更改才能使其构建的参考。人们必须单独下载原始源代码。使用 RPM,您可以同时拥有原始源代码以及我们用于编译的补丁。我们认为这是一个很大的优势。为什么?有几个原因。首先,如果一个程序的新版本发布了,您不一定需要从头开始使其在 RHL 下编译。您可以查看补丁,了解您可能需要做什么。所有编译时默认值都以这种方式清晰可见。
RPM 还被设计为具有强大的查询选项。您可以搜索整个数据库以查找软件包或仅查找某些文件。您还可以轻松找出文件属于哪个软件包以及它来自哪里。RPM 文件本身是压缩的存档,但是由于添加到软件包的自定义二进制标头,您可以轻松且快速地查询单个软件包,该标头以未压缩的形式包含了您可能需要知道的一切信息。这实现了快速查询。
另一个强大的功能是验证软件包的能力。如果您担心您删除了某个软件包的重要文件,只需验证它即可。您将收到任何异常的通知。届时,您可以根据需要重新安装软件包。您拥有的任何配置文件也将被保留。
我们要感谢 BOGUS 发行版的人们,感谢他们在 RPM 中包含的许多想法和概念。虽然 RPM 完全由 Red Hat, Inc. 编写,但它的操作是基于 BOGUS(PM 和 PMS)编写的代码。