我负责构建多个RPM包。我有每个RPM包的原始SPEC文件,需要制作,还有设置必要环境并构建RPM的BASH脚本。
我想使用实际的构建工具(例如make)来构建这些RPM。通过这样做,我希望消除自定义的、混淆的BASH脚本,转而使用清晰、可维护的配置文件(类似于make的Makefile)。然而,使用POSIX make并保持一组make文件最新可能会像维护我目前用于构建RPM包的BASH脚本一样费力。像cmake和automake这样的程序有其存在的理由,它们包装了make命令的功能 - 这些工具更加表达能力强,允许使用更小、更干净的配置文件。
然而,使用autoconf/automake似乎也不是一个好选择,因为它们似乎是专门为C和C++开发构建的。有人建议我使用scons,但尽管它的配置文件是实际的Python脚本,这似乎是最佳选择,但它也是针对特定语言的。
使用我的SPEC文件作为“源代码”,环境作为“依赖项”(例如设置rpmbuild所需的目录树结构以制作RPM),是否有一个良好的构建工具可以替换我的BASH脚本,以实现更清洁、更易维护的RPM构建解决方案?
编辑:当我说“构建工具”时,显然我表述不清楚。我已经使用rpmbuild作为“编译器”,使用SPEC文件(和相关的二进制源代码)作为“源代码”来“编译”RPM。我正在寻求一种可以协调该过程的工具。
我想使用实际的构建工具(例如make)来构建这些RPM。通过这样做,我希望消除自定义的、混淆的BASH脚本,转而使用清晰、可维护的配置文件(类似于make的Makefile)。然而,使用POSIX make并保持一组make文件最新可能会像维护我目前用于构建RPM包的BASH脚本一样费力。像cmake和automake这样的程序有其存在的理由,它们包装了make命令的功能 - 这些工具更加表达能力强,允许使用更小、更干净的配置文件。
然而,使用autoconf/automake似乎也不是一个好选择,因为它们似乎是专门为C和C++开发构建的。有人建议我使用scons,但尽管它的配置文件是实际的Python脚本,这似乎是最佳选择,但它也是针对特定语言的。
使用我的SPEC文件作为“源代码”,环境作为“依赖项”(例如设置rpmbuild所需的目录树结构以制作RPM),是否有一个良好的构建工具可以替换我的BASH脚本,以实现更清洁、更易维护的RPM构建解决方案?
编辑:当我说“构建工具”时,显然我表述不清楚。我已经使用rpmbuild作为“编译器”,使用SPEC文件(和相关的二进制源代码)作为“源代码”来“编译”RPM。我正在寻求一种可以协调该过程的工具。
rpmbuild
有什么问题?http://linux.die.net/man/8/rpmbuild - Serge