如何让 Linux 包管理器识别从源代码安装的软件?

如何让 Linux 包管理器识别从源代码安装的软件?

我甚至不知道这是否可能,但无论如何我都会问。

我正在建立一个Linux 从头开始系统,我已经接近尾声了。显然,到目前为止的所有内容都是从源代码编译和安装的。所以我决定安装 dpkg 以便将来管理包。但是,我尝试安装的几乎每个 .deb 文件都有一些依赖项,如 libc、libstdc++ 或 coreutils。我知道我以前安装过它们,但 dpkg 无法识别它们。有什么方法可以让它工作吗?如果没有,是否有可能的替代方案?

我已经在 LFS 论坛上问过,但是论坛不太活跃,我没有得到答复。

答案1

可能有办法解决这个问题,但我不会这么做。包管理系统的意义在于它管理一切,让一切融为一体。

安装一堆虚拟包会使依赖性问题消失,但除非您将所有依赖项都放在确切的位置,否则无论您安装什么都不会起作用。

答案2

dpkg /apt和都是rpm基于能够管理的假设而建立的全部系统上的软件(可能除了一些特殊应用程序)。没有合理的方法可以解决这个问题;您可以随意修改直到它正常工作,但使用它们又有什么意义呢?

如果您只想安装 .deb(或 .rpm)的内容,您可以直接提取文件并安装它们(对于 .deb 使用 ar 和 tar,对于 rpm 使用 rpm2cpio 和 cpio)。如果您想使用完整的依赖系统,则需要完整安装。

答案3

通过创建“从头开始的 Linux”,您实际上创建了一个全新的 Linux 发行版。因此,现在您可以在您拥有的核心之上选择任何打包系统(deb、rpm、tgz 等)。选择 deb 将不是让你的发行版成为 Debian!

这意味着您仍然可以使用 debs 来安装其他 SW,但您必须使用为您的发行版创建的依赖项自行创建软件包(再次“从头开始”),而不仅仅是使用 Debian 的软件包。

相关内容