我有这个构建过程,为一组Linux发行版创建rpms。
这个创作花了很多时间,为此我正在优化它。我研究了rpmbuild并意识到rpmbuild需要一个tarball并将其解压缩以启动构建过程。
有一种方法可以避免使用tarball吗?因为我已经开始使用源代码的过程,然后我在tarball中压缩它,这似乎无用,因为rpmbuild适用于源代码,而不是tarball
答案 0 :(得分:5)
解决这个问题的三种基本方法:
--short-circuit
切换到rpmbuild
直接跳到构建步骤。SourceXX:
,并将所有这些文件放在rpmbuild/SOURCES/
目录中%setup
宏选项1允许您每次都必须提取tarball,这是开发的理想选择。选项2绕过了开始使用tarball的概念,但是当你有大量的文件时会变得很麻烦。选项3是当包的常规构建发生时,它是一个大的源文件,例如linux内核。 EL6内核.spec文件执行此操作:
if [ ! -d kernel-%{kversion}/vanilla-%{kversion}/ ]; then
%setup -q -n kernel-%{kversion} -c
mv linux-2.6.32 vanilla-%{kversion};
else
cd kernel-%{kversion}/;
fi
cp -rl vanilla-%{kversion} linux-%{KVERREL}
cd linux-%{KVERREL}
基本上,提取内核源代码并将其命名为其他内容。在下次构建时,检查一下。如果它在那里,不要提取源,只需复制。