在 RPM %files 部分是否可以递归地指定一个目录及其所有文件和子目录?

In an RPM %files section is it possible to specify a directory and all of its files and subdirectories recursively?

我正在开发一个以 RPM 形式打包东西的打包系统。我有一个案例,指定我想要一个目录及其下的每个文件和子目录包含在 RPM 中会非常方便。这当然会在 %files 部分。

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

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

%files
/directory

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

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

另一个例子

%files
/usr/bin/*

确保 "official directories" 像 /usr/bin 不属于你的包(因为 rpm 不允许两个包 "own" 同一个文件或目录).此行将递归打包您放置在 %{rpmbuildroot}/usr/bin/ 下的所有文件和文件夹,但不打包 /usr/bin 本身。