Python Setuptools 构建 RPM 错误

标签 python linux setuptools rpmbuild

我正在尝试为 python setuptools-12.0.3 构建 RPM 包,但出现连线错误,

它看起来像与 SPEC 文件 %files -f INSTALLED_FILES 有关,但如何修复它?或者这是一个错误?我可以在一行中看到两个文件路径,我该如何解决?

+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump

这是我使用 python2.7 setup.py bdist_rpm 构建 RPM 的命令

+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/brp-python-bytecompile
Bytecompiling .py files below /root/rpmbuild/SOURCES/setuptools-12.0.3/build/bdist.linux-x86_64/rpm/BUILDROOT/setuptools-12.0.3-1.x86_64/usr/lib/python2.6 using /usr/bin/python2.6
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars
Processing files: setuptools-12.0.3-1.noarch
error: Two files on one line: /usr/lib/python2.6/site-packages/setuptools/script
error: File must begin with "/": (dev).tmpl


RPM build errors:
    Two files on one line: /usr/lib/python2.6/site-packages/setuptools/script
    File must begin with "/": (dev).tmpl
error: command 'rpmbuild' failed with exit status 1

最佳答案

解决方案

花了几个小时后我弄清楚出了什么问题:

setuptools.spec 文件复制到我自己的 rpmbuild 环境中,位于 /root/rpmbuild/SPECS/

%files -f INSTALLED_FILES 更改为 %files

运行 rpmbuild -ba setuptools.spec

它生成需要添加到 %files 部分的文件列表,但是在该列表中有一个文件 space in filename 哎哟!!

脚本(dev).tmpl

我已经使用通配符来匹配所有文件并且问题已解决。不知何故 rpmbuild 不理解 escap 字符(不知道有没有更好的方法)

%files
%defattr(-,root,root)
...
...
/usr/local/lib/python2.7/site-packages/setuptools/script*

...

关于Python Setuptools 构建 RPM 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28048133/

相关文章:

linux - 命令行中施加的时间限制似乎不会限制运行时间

c++ - 在C++中,如何获取Linux中服务的路径?

python - 如何使用 setuptools 创建 exe 启动器

python - 从不同目录执行时python导入错误

python - 如何让 SymPy 将 1.0 之类的整数替换为 1

python - 需要有关以下正则表达式的帮助

python - 使用 Airflow UI 执行整个 DAG

linux - 注销时 bash 如何处理作业?

python - 自定义安装后脚本未与 pip 一起运行

macos - Mac 上的 Python 3 setuptools