Linux 软件包命名

Linux 软件包命名

在 Linux 中,为什么会有 libavcodec56、libavcodec57、libavcodec58 等软件包?更清楚一点,为什么没有像许多其他软件包一样有版本 56、57、58 的 libavcodec 软件包?为什么它们是全新的软件包?

答案1

xyz大多数发行版一次只允许安装一个版本的软件包。如果libxyz是一个库,同时使用不兼容的版本 1 和 2,它们就不能简单地将软件包命名为libxyz-1libxyz-2,安装后者会删除前者。因此需要其他命名方案,以便您可以同时安装libxyz1-1.5(upstream 1.5) 和libxyz2-2.1(upstream 2.1)。这显然需要进一步区分软件包内容的各个文件名,但这是另一回事。

答案2

Linux 有一种版本控制机制,不需要重命名软件包。它用于glibc,正如您在帖子中看到的那样 更新 glibc 到底会导致系统崩溃吗?

但这需要开发人员做大量的工作,主要是glibc必须向后支持其所有功能的所有以前版本。

没有多少开发人员可以保证支持他们所有的软件,包括现在的和过去的,或者投入与 相同的开发时间glibc

libavcodec56等软件包libavcodec57不保证向后支持,版本可能不完全兼容,因此使用它们的程序在更改版本时可能需要修改。版本名称不同就是最好的指示,这是设计使然。

相关内容