【问题标题】:CentOS 6.7, python distutils and bloody brp-python-bytecompileCentOS 6.7,python distutils 和血腥的 brp-python-bytecompile
【发布时间】:2015-12-01 03:49:53
【问题描述】:

我正在尝试让 python distutils 为我构建一个 RPM。事实证明这非常困难!
在我的 Mac 上一切正常,但在 CentOS 6.7(我的 CI 服务器)上,由于 RPM 是为不同平台构建的差异,这不是问题。
在 CentOS 上,.py 文件正在由rpm/brp-python-bytecompile 预编译。这会创建 .pyc.pyo 文件,这些文件未由 bdist_rpm 列出,因此我收到错误消息!
我找到了this issuethis issue,但它们是很久很久以前的!所以我很惊讶我仍然看到这种情况发生!有什么解决方法吗?我不想创建规范文件,我使用 bdist_rpm 来避免它......谢谢。

这是我要打包的东西的示例结构:

<root>/
    setup.py
    my-awesome-app.py
    help-scripts/
        extract-config.py

这是我的 setup.py:

from distutils.core import setup
setup(name='my-awesome-app', 
    version='1.0', 
    author='Daniel Gruszczyk',
    scripts=['my-awesome-app.py'],
    data_files=[('/etc/bake',['help-scripts/extract-config.py'])],
    )

这是运行 python setup.py bdist_rpm 的示例输出(只是导致错误的行):

+ /usr/lib/rpm/find-debuginfo.sh --strict-build-id /var/lib/jenkins/workspace/my-awesome-app/build/bdist.linux-x86_64/rpm/BUILD/my-awesome-app-1.0
+ /usr/lib/rpm/check-buildroot
+ /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
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars
Processing files: my-awesome-app-1.0-1.noarch
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: /var/lib/jenkins/.pyenv/versions/2.7.5/bin/python
Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/lib/jenkins/workspace/my-awesome-app/build/bdist.linux-x86_64/rpm/BUILDROOT/my-awesome-app-1.0-1.x86_64
error: Installed (but unpackaged) file(s) found:
   /etc/help-scripts/extract-config.pyc
   /etc/help-scripts/extract-config.pyo

我认为+ /usr/lib/rpm/brp-python-bytecompile 行是问题所在(鉴于我包含的链接)。有什么办法可以摆脱这种废话,因为它似乎会引起周围的问题?

【问题讨论】:

  • 我有类似的问题。你在上面看到的命令来自rpmbuildrc,但我不知道如何覆盖这些。

标签: python-2.7 centos rpm


【解决方案1】:

那些 bug 很老了,但 CentOS6 也是。

bdist_rpm 非常简单,一旦达到极限,就陷入了死胡同。而且我真的很害怕没有人会告诉你如何使用 setup.py 来修复它。更多关于这个主题的内容写在这里: http://ziade.org/2011/03/25/bdist_rpm-is-dead-long-life-to-py2rpm/

我真的建议您使用: pyp2rpm - https://github.com/fedora-python/pyp2rpm

【讨论】:

  • 干杯,这是一本有趣的书。我最终选择了 maven rpm 构建插件,发现它有很好的文档并且工作得很好。
猜你喜欢
  • 2021-12-27
  • 2016-11-10
  • 2016-10-05
  • 2015-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
相关资源
最近更新 更多