python - rpmbuild 失败,出现 : Installed (but unpackaged) file(s) found

标签 python build centos rpm

您好,我正在尝试使用 python 构建一个 rpm,但由于出现此错误而失败。

RPM build errors:
Installed (but unpackaged) file(s) found:
( a list of files )
error: command 'rpmbuild' failed with exit status 1

这是python生成的.spec文件:

%define name prova
%define version 1.0.0
%define unmangled_version 1.0.0
%define unmangled_version 1.0.0
%define release 1

Name: %{name}
Version: %{version}
Release: %{release}
Source0: %{name}-%{unmangled_version}.tar.gz
License: LGPL-3
Group: Development/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
Prefix: %{_prefix}
BuildArch: noarch
Requires:  [...]

%prep
%setup -n %{name}-%{unmangled_version} -n %{name}-%{unmangled_version}

%build
python setup.py build

%install
#!/bin/sh
set -e
python setup.py install --single-version-externally-managed --prefix=/usr --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES


%clean
rm -rf $RPM_BUILD_ROOT

%post
[...]

%files -f INSTALLED_FILES
%defattr(-,root,root)

我用来构建一切的命令是这样的。

python setup.py bdist_rpm

据我所知,安装脚本应该在 INSTALLED_FILES 中写入已安装文件的列表,然后我们将已安装文件的列表传递给 %files -f INSTALLED_FILES。但是 --record 选项接受一个文件名,安装脚本在其中写入已安装文件的列表,这是有效的。问题是命令 %file -f 没有读取该列表。

该命令是否已弃用?我有 4.11 版的 rpmbuild。

最佳答案

不要使用 --record 因为它不会记录目录。 参见 https://fedoraproject.org/wiki/Packaging:Python#Byte_compiling

省略该选项并简单地使用:

%files
%{python_sitelib}/

关于python - rpmbuild 失败,出现 : Installed (but unpackaged) file(s) found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42012601/

相关文章:

android - 在多项目设置中,Gradle 评估每个子项目。我可以忽略一些子项目吗?

c - (automake, libtool) 在不同目录中使用相同的源文件名时,在 automake 中构建失败

centos - Redmine:更改 Kerio LDAP 登录的输出参数

python - 如何将对象列表传递给线程函数

python - 模拟AWS服务进行测试

python - 使用 GnuCParser 查找指针参数?

php - litespeed - fatal error : Call to undefined function curl_init()

python - 异步键盘中断和多线程

azure - 通过 Azure android 签名构建管道对其进行签名后,.apk 文件输出在哪里?

apache - CentOS 6 httpd 因更新而终止