我有这个构建过程,为一组Linux发行版创建rpms.
这个创作花了很多时间,为此我正在优化它.我研究了rpmbuild并意识到rpmbuild需要一个tarball并将其解压缩以启动构建过程.
有一种方法可以避免使用tarball吗?因为我已经开始使用源代码的过程,然后我在tarball中压缩它,这似乎没用,因为rpmbuild适用于源代码,而不是tarballs
三种基本方法:
--short-circuit
开关rpmbuild
直接跳到构建步骤.SourceXX:
spec文件中的所有文件,并将所有这些文件放在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}
Run Code Online (Sandbox Code Playgroud)
基本上,提取内核源代码并将其命名为其他内容.在下次构建时,检查一下.如果它在那里,不要提取源,只需复制.