什么时候应该从源代码编译和安装?

什么时候应该从源代码编译和安装?

要在 Linux 系统上安装软件,可以使用许多工具(例如、 、yumapt-get)从存储库获取软件包或安装下载的软件包。rpmdpkg

或者,可以下载(通常).tar.gz2源代码的存档并使用手动编译

./configure
make
make install

或类似的。我的问题是:什么时候应该从源代码编译和安装?

答案1

一般来说,建议使用您的发行版提供的软件包并使用相关的软件包管理器(例如dpkg/apt-get在基于 Debian 的系统上)。您的发行版的任务是打包软件并对其进行配置,以免发生冲突。

有时您的发行版没有您想要的软件,或者您有其他原因,例如

  • 你需要一个更新的版本
  • 你想要有一个特殊的配置或者想要包含补丁等。
  • 您需要更高的性能,因此想要优化软件,特别是针对您的硬件(处理器,...)

因为您想自己编译软件(这可能会变得相当困难 - 特别是如果您不知道所有依赖项)。

然后你有不同的选择:

  • 从源头重建它,通常是从 tarball(=*.tar.gz文件)或从上游源存储库(如 github)
  • 下载/安装相应的预构建包(直接或使用非官方存储库)
  • 使用您的发行版中现有的软件包源,手动更新它并创建一个新的软件包,然后您可以安装它。

如果您不使用包管理器安装软件,强烈建议将该软件安装到包管理器使用之外的其他位置。指定的前缀是/usr/local/。也可以选择安装到主文件夹的新子目录/opt或主文件夹中的某个位置。

答案2

我想说的是,只有在必要时才从源代码编译。管理系统时,应该不惜一切代价避免失去包管理器的管理设施。

通常,我会获取源代码包并构建它和/或从源代码重建它,但使用为发行版包管理器的包开发人员提供的工具来完成此操作。

例子

通常我会下载基于 Redhat 的发行版的源 RPM,然后使用给定软件包的较新 tarball 对其进行修改,然后像这样重建它:

$ rpmbuild --rebuild some.package.src.rpm

重建后,我将使用yum或安装它rpm

参考

答案3

如果您的发行版软件包不适合您的需要,您应该从源代码编译和安装。例如,如果您需要添加未在包中编译的选项,或者需要更改路径以链接到特定库。或者如果您需要尚未打包的最新版本。

答案4

简短的回答:当你需要的时候。

长答案:大多数分销商在其存储库中提供最常用软件的预编译包。首先,编译对于初学者来说可能非常痛苦。其次,分发者可以假设所有系统都具有相同的二进制文件,这使得分发更加稳定。这些预编译的软件包在发布到存储库之前要经过非常艰难的测试阶段(取决于发行商和版本)。因此,我强烈建议您在自行编译之前使用您发行版中的软件源。如果没有其他方法或者软件源中没有该软件包并且没有其他软件提供相同的软件包,您可以手动编译。

相关内容