跨发行版兼容性 - 是什么阻止了它?

hkk*_*hkk 4 fedora ubuntu arch-linux package-management

例如,为什么我不能在 Fedora 或 Arch 上运行 Ubuntu 程序,反之亦然?同样,为什么我不能apt-get在 Fedora 或pacmanLFS 中使用?并且怎么样.deb.rpm文件?有人可以为一个完整的 Linux 新手解释一下吗?

pet*_*rph 5

问题有几层,主要是:

  1. 二进制兼容性 - 每个发行版中的软件都是针对该发行版中的库编译的。这些可能在用于构建它们和/或所选功能的编译器/编译器标志上有所不同。因此,您可能会遇到一些问题,即发行版 A 中的某些库在发行版 B 的同一库中不可用。在 B 上运行的 A 中的软件可能正在寻找不存在的东西。

  2. 包管理 - 您可以使用多个包管理系统,但肯定会遇到麻烦,因为它们彼此不了解。如果你习惯pacman安装X,那么rpm在同一个系统上就不会知道了。这只是开始 - 下一步是rpm从通过 安装的包中覆盖一些文件pacman,因此很可能会破坏有问题的包,并且可能会破坏更多(参见 1.)。

    有一些工具可以将包从一种格式转换为另一种格式,但这些工具通常毫无用处,因为 1.

    在很大程度上还取决于您堆叠在什么包管理器之上。在底层发行版上编译您自己的版本很好,您只需要自己跟踪已安装的文件。在 LSB 之上使用高级包管理器可能会更成问题,因为他们可能会删除/更改他们认为可以自由执行的文件。