无法创建setuptools rpm:错误:一行两个文件

2 投票
1 回答
1345 浏览
提问于 2025-05-01 08:24

我正在尝试从setuptools 7.0的源代码构建一个rpm包,链接在这里:https://pypi.python.org/pypi/setuptools

我所做的步骤是:

  • 下载源代码并解压
  • 在setuptools目录下运行 python setup.py bdist_rpm

我使用的是Python 2.7.8和Red Hat 6.2(64位)

日志信息:

running bdist_rpm
running egg_info
writing requirements to setuptools.egg-info/requires.txt
writing setuptools.egg-info/PKG-INFO
writing top-level names to setuptools.egg-info/top_level.txt
writing dependency_links to setuptools.egg-info/dependency_links.txt
writing entry points to setuptools.egg-info/entry_points.txt
reading manifest file 'setuptools.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'setuptools.egg-info/SOURCES.txt'
writing 'build/bdist.linux-x86_64/rpm/SPECS/setuptools.spec'
running sdist
running check
creating setuptools-7.0
creating setuptools-7.0/_markerlib
creating setuptools-7.0/docs
creating setuptools-7.0/docs/_templates
creating setuptools-7.0/docs/_theme
creating setuptools-7.0/docs/_theme/nature
creating setuptools-7.0/docs/_theme/nature/static
creating setuptools-7.0/setuptools
creating setuptools-7.0/setuptools.egg-info
creating setuptools-7.0/setuptools/command
creating setuptools-7.0/setuptools/tests
creating setuptools-7.0/setuptools/tests/indexes
creating setuptools-7.0/setuptools/tests/indexes/test_links_priority
creating setuptools-7.0/setuptools/tests/indexes/test_links_priority/simple
creating setuptools-7.0/setuptools/tests/indexes/test_links_priority/simple/foobar
creating setuptools-7.0/setuptools/tests/svn_data
creating setuptools-7.0/tests
creating setuptools-7.0/tests/shlib_test
making hard links in setuptools-7.0...
hard linking .gitignore -> setuptools-7.0
hard linking .hgignore -> setuptools-7.0
.........
.........
hard linking tests/shlib_test/setup.py -> setuptools-7.0/tests/shlib_test
hard linking tests/shlib_test/test_hello.py -> setuptools-7.0/tests/shlib_test
copying setup.cfg -> setuptools-7.0
Writing setuptools-7.0/setup.cfg
Creating tar archive
removing 'setuptools-7.0' (and everything under it)
copying dist/setuptools-7.0.tar.gz -> build/bdist.linux-x86_64/rpm/SOURCES
building RPMs
rpmbuild -ba --define _topdir /root/xxx/robot_tests/test_env_scripts/test1/setuptools-7.0/build/bdist.linux-x86_64/rpm --clean build/bdist.linux-x86_64/rpm/SPECS/setuptools.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.VPynSG
+ umask 022
+ cd /root/xxx/robot_tests/test_env_scripts/test1/setuptools-7.0/build/bdist.linux-x86_64/rpm/BUILD
+ cd /root/xxx/robot_tests/test_env_scripts/test1/setuptools-7.0/build/bdist.linux-x86_64/rpm/BUILD
+ rm -rf setuptools-7.0
+ /usr/bin/gzip -dc /root/xxx/robot_tests/test_env_scripts/test1/setuptools-7.0/build/bdist.linux-x86_64/rpm/SOURCES/setuptools-7.0.tar.gz
+ /bin/tar -xvvf -
drwxr-xr-x root/root         0 2014-11-03 17:55 setuptools-7.0/
drwxr-xr-x root/root         0 2014-11-03 17:55 setuptools-7.0/setuptools/
-rw-rw-rw- root/root       714 2014-10-19 15:11 setuptools-7.0/setuptools/windows_support.py
-rw-rw-rw- root/root      5195 2014-09-30 04:49 setuptools-7.0/setuptools/__init__.py
-rwxrwxrwx root/root     74752 2014-09-30 04:37 setuptools-7.0/setuptools/cli-64.exe
......
......
-rw-rw-rw- root/root      4813 2014-11-03 17:55 setuptools-7.0/setuptools.egg-info/SOURCES.txt
-rw-rw-rw- root/root      8772 2014-10-19 14:00 setuptools-7.0/README.txt
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd setuptools-7.0
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.169Vak
+ umask 022
+ cd /root/xxx/robot_tests/test_env_scripts/test1/setuptools-7.0/build/bdist.linux-x86_64/rpm/BUILD
+ cd setuptools-7.0
+ python setup.py build
running build
running build_py
creating build
creating build/lib
copying pkg_resources.py -> build/lib
......
......
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.h1D3YX
+ umask 022
+ cd /root/xxx/robot_tests/test_env_scripts/test1/setuptools-7.0/build/bdist.linux-x86_64/rpm/BUILD
+ cd setuptools-7.0
+ python setup.py install --single-version-externally-managed -O1 --root=/root/xxx/robot_tests/test_env_scripts/test1/setuptools-7.0/build/bdist.linux-x86_64/rpm/BUILDROOT/setuptools-7.0-1.x86_64 --record=INSTALLED_FILES
running install
running build
running build_py
running install_lib
writing byte-compilation script '/tmp/tmp56GdDT.py'
/usr/local/bin/python -O /tmp/tmp56GdDT.py
removing /tmp/tmp56GdDT.py
running install_egg_info
running egg_info
writing requirements to setuptools.egg-info/requires.txt
writing setuptools.egg-info/PKG-INFO
writing top-level names to setuptools.egg-info/top_level.txt
writing dependency_links to setuptools.egg-info/dependency_links.txt
writing entry points to setuptools.egg-info/entry_points.txt
reading manifest file 'setuptools.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'setuptools.egg-info/SOURCES.txt'
removing '/root/xxx/robot_tests/test_env_scripts/test1/setuptools-7.0/build/bdist.linux-x86_64/rpm/BUILDROOT/setuptools-7.0-1.x86_64/usr/local/lib/python2.7/site-packages/setuptools-7.0-py2.7.egg-info' (and everything under it)
Copying setuptools.egg-info to /root/xxx/robot_tests/test_env_scripts/test1/setuptools-7.0/build/bdist.linux-x86_64/rpm/BUILDROOT/setuptools-7.0-1.x86_64/usr/local/lib/python2.7/site-packages/setuptools-7.0-py2.7.egg-info
running install_scripts
Installing easy_install script to /root/xxx/robot_tests/test_env_scripts/test1/setuptools-7.0/build/bdist.linux-x86_64/rpm/BUILDROOT/setuptools-7.0-1.x86_64/usr/local/bin
Installing easy_install-2.7 script to /root/xxx/robot_tests/test_env_scripts/test1/setuptools-7.0/build/bdist.linux-x86_64/rpm/BUILDROOT/setuptools-7.0-1.x86_64/usr/local/bin
writing list of installed files to 'INSTALLED_FILES'
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/brp-strip
+ /usr/lib/rpm/brp-strip-static-archive
+ /usr/lib/rpm/brp-strip-comment-note
Processing files: setuptools-7.0-1.noarch
error: Two files on one line: /usr/local/lib/python2.7/site-packages/setuptools/script
error: File must begin with "/": (dev).tmpl


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

附上 build/bdist.linux-x86_64/rpm/SPECS/setuptools.spec

http://paste.ubuntu.com/8815648/

还有 INSTALLED_FILES

http://paste.ubuntu.com/8819582/

暂无标签

1 个回答

2

在第二个粘贴的内容中,INSTALLED_FILES 的第68行是问题所在。(这也是我大致预料到的。)

有一个文件的名字里有空格。

这个空格没有被处理好,也没有用引号括起来(我甚至不太确定在规格文件中用的文件列表里该怎么正确处理这个空格,像是 %files -f <file> 这样的格式),这导致 rpm 在解析 INSTALLED_FILES 文件时出错。

这个文件需要被重命名、删除,或者需要以某种方式处理这个空格。

如果这个文件不是你添加的,我建议你向 setuptools 提出一个问题,因为他们应该正确处理(或避免)这种情况。

撰写回答