首页 > 解决方案 > 使用 rpm specfile 获取要安装的文件

问题描述

我正在寻找一种解决方案来查询 RPM 规范文件以获取它安装的文件列表,最好不构建包。我已经尝试过rpmspec --queryformat '%{filenames}',但它只会导致(none)

示例 test.spec:

Name:           test
Version:        1
Release:        1%{?dist}
Summary:        test
License:        bsd
URL:            http://localhost
Source0:        test.tgz
%description
%install
%files
/usr/foo.txt

测试运行:

$ rpmspec --builtrpms -q --qf 'name: %{name}\nfiles: %{filenames}\n\n' test.spec
name: test
files: (none)

预期结果:

name: test
files: /usr/foo.txt

标签: rpmrpm-spec

解决方案


规范文件不知道正在安装多少文件。

如果它有这样的东西:

%files
/path/to/a/ton/of/files/

在构建软件后,它无法知道该目录中有多少文件。

如果您已经构建了 RPM,您可以使用它来查看将要rpm -qlp <rpmfile>安装的文件,而无需进行实际安装。但同样,您需要一个内置的 RPM。


推荐阅读