为什么要从源代码编译 rpm?

为什么要从源代码编译 rpm?

我知道的是:src.rpm 通常包含应用程序/库/包的某种 tar 或压缩源代码。有时,如果包不起作用,人们会建议你从源代码进行编译

我不知道的是:为什么要从源代码重新编译?我需要从源代码编译什么?gcc?xlc?

我想知道:假设您有一个 src rpm,您可以编译该 rpm 以在 Fedora 上运行,然后将相同的 src rpm 带到 AIX 并编译它以在 AIX 上运行吗?

答案1

.src.rpm 包含源代码有关应将各种文件和可执行文件复制到(安装)的位置的信息。

因此,是的,您应该能够在 Fedora 和 AIX 上编译源代码。但这并不意味着您也可以“安装 rpm”。安装包括将文件复制到各种系统文件夹,例如/usr/etc等等。不同的操作系统要求某些文件位于不同的位置,因此不能保证 Fedora 的 .rpm 能够安装在 AIX 上。事实上,这种情况极不可能发生。

至于编译,您可能希望从源代码编译以获得针对特定硬件优化的二进制文件,或激活某些编译标志(例如特定库的位置)。一般来说,如果您不知道为什么要从源代码编译,那么您可能不应该这样做。

如果您选择编译,则需要适当的编译器。这可以是(除其他外)gcc用于xlc用 C 或 C++ 编写的软件、javac用于 Java 等。您应该使用哪一个取决于您正在安装的软件和您的个人偏好。有时,软件是在考虑特定编译器的情况下编写的(在编译时使用某些选项),如果您尝试使用另一个编译器编译它们,它们会发出抱怨。

最后,大多数 *nix 源码 tarball 都包含一个 Makefile 和一个 configure 脚本。您需要具备使用它们所需的工具。configure 脚本通常是一个简单的 BLASH 脚本,因此只要您安装了 BASH 就可以了。使用 Makefile 需要命令make。您还需要一些其他基本工具(例如 autoconf 和 automake 等)。我已经很多年没有使用过基于 RH 的发行版了,但如果我没有记错的话,这个命令应该可以安装您需要的一切:

yum groupinstall "Development Tools" 

相关内容