在RPM%files部分中,可以递归指定目录及其所有文件和子目录吗?

时间:2019-08-06 23:38:38

标签: recursion rpm rpm-spec

我正在开发一个将系统打包为RPM的打包系统。我有一种情况,如果指定我想要一个目录以及RPM中包含的每个文件和子目录,将非常方便。当然,这将在%files部分中。

有没有办法做到这一点?我注意到有一种方法可以指定要包含的文件列表来自文件。我是否需要运行find部分中的%install才能将该列表生成为文件,然后稍后在%files部分中使用该文件?

1 个答案:

答案 0 :(得分:2)

这是rpm规范文件的默认行为:

%files
/directory

表示:/directory和下面的所有文件和目录都是递归的。

注意:这仅包括您放入%{rpmbuildroot}中的文件,不包括将要安装此rpm的系统上存在的文件!

另一个示例

%files
/usr/bin/*

请确保某些“官方目录”(例如/usr/bin)不属于您的软件包(因为rpm不允许两个软件包“拥有”相同的文件或目录)。该行将递归打包您放置在%{rpmbuildroot}/usr/bin/下的所有文件和文件夹,而不是/usr/bin本身。