打包RPM时排除文件类型

6 投票
3 回答
8005 浏览
提问于 2025-04-16 10:32

在我为打包一个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。

撰写回答