打包RPM时排除文件类型
在我为打包一个Python的rpm文件写的规格文件里,我想要在某些目录中去掉特定类型的文件:
比如,我想要排除这些目录里的源代码文件,也就是以*.py结尾的文件:
lib/*.py
comm/*.py
我觉得我应该在规格文件的%file部分来处理这个问题。有没有什么建议呢?
3 个回答
4
或者直接把它们从构建根目录中删除:
%install
...
find %{buildroot} -name ".py" -delete
23
你需要使用 %exclude 这个宏,也就是:
%files
%exclude /lib/*.py
%exclude /comm/*.py
7
在很久以前,你可以通过不把不想要的文件放进%file
部分来实现,这样这些文件就不会被打包。但是,这样做可能会出错,所以一些RPM的实现开始抱怨没有打包的文件。由于RPM的开发一直比较分散,而且文档也不太完善,所以我不太清楚最标准的解决办法是什么。不过,我建议最安全的方法是在安装过程结束时直接删除那些文件。这个方法也很容易适用于其他打包系统,比如dpkg。