如果一个 Linux 是基于另一个 Linux 的,这是否意味着与程序兼容?

如果一个 Linux 是基于另一个 Linux 的,这是否意味着与程序兼容?

一个更具体的例子是:如果假设我有一个基于 Ubuntu 的 Linux,这是否意味着为 Ubuntu 制作的程序/驱动程序可以在该 Linux 上运行?

答案1

乌班图是一个分配,而不是“Linux”。

一般来说,所有为 Linux 编写的程序都可以在所有发行版上运行。不过,您可能必须自己从源代码编译它们。

发行版可以为您完成这项工作:它们已经将程序编译成某种二进制包,您只需使用发行版附带的包管理器来安装该包即可。

由于包通常依赖于其他包,因此使来自不同发行版的包在完全另一个发行版上工作可能很困难。

也就是说,有些发行版密切相关,使用相同的包管理器,并且通常有许多相同的包(例如基于 Debian 的发行版,如 Ubuntu)。对于那些它可以工作(但并不总是)。

因此,一般来说,您要么查看该程序是否已在您的发行版上可用,要么您自己编译它。

答案2

基于 Debian 的系统(如 Ubuntu)上的软件包和驱动程序通常是相同的。基于 Red Hat Linux 的 Linux(例如 CentOS 和 Oracle Linux)使用相同的软件包。这EPEL两者的包是共同的。但您应该在安装或编译之前进行检查。

答案3

驱动程序通常意味着与特定硬件或设备的关系。因此,为 Linux 制作的驱动程序通常可以在任何发行版上运行(即 Debian、LinuxMint、SUSE、Red Hat、Slack 等)。现在,您在这部分中可能遇到的问题是驱动程序制造商如何分发驱动程序。看到他们只是为特定安装发布一个发行版的驱动程序,然后将其留给发行版维护人员或个人来制作自己的软件包/进行自己的手动安装,这并不奇怪。

就程序而言,在一种 Linux 上运行的程序通常也可以在不同的 Linux 发行版上运行,只要必要的库、编译器和其他此类先决条件在那里也正确。尽管在程序作者如何仅打包某些发行版(Ubuntu)甚至该发行版的某些版本(Ubuntu 9.10)的安装机制方面存在与驱动程序类似的问题。这可能是诸如此类的super_program-ubuntu910.deb事情。不过,他们已经为 Ubuntu 9.10 打包了它,您当然可以在 Ubuntu 9.10 中运行它。不过,您通常也可以在其他基于 Debian 的系统(例如 Debian、Linux Mint)上安装并运行此文件。但基于 RPM 的系统(例如 Red Hat、Fedora、SUSE)无法识别这一点。为此,您需要将源代码构建为 .rpm 包。另外,当时有一个名为的程序alien通常可以将包从.deb一种格式转换为.rpm另一种格式,反之亦然。但我从未使用过它。不确定它是否还存在。

除了上述内容之外,现在有一些事情试图使程序平台变得不可知。我对这些以及它们如何深入工作没有太多了解,但研究了 Appimage、Snap 和 Flatpak,但这里有一篇文章https://medium.com/nitux/cross-distro-linux-applications-1169c3077136

我希望这有助于回答这个问题

相关内容