构建rpm时出错 - glob未找到文件:

4 投票
1 回答
9782 浏览
提问于 2025-04-18 03:26

我正在RHEL-6/64位服务器上构建rpm。

    # rpmbuild -bb extras/rpm/neatx.spec

    RPM build errors:
        File not found by glob: /root/rpmbuild/BUILDROOT/neatx-0.1-1.el6.x86_64/usr/lib/python2.6/site-packages/neatx/*

我确实在 /root/rpmbuild/BUILDROOT/neatx-0.1-1.el6.x86_64/usr/lib/python2.7/site-packages 目录下看到了相同的文件。

    # ls -l /root/rpmbuild/BUILDROOT/neatx-0.1-1.el6.x86_64/usr/lib/    
    drwxr-xr-x 3 root bin 4096 Apr 19 14:45 python2.7

    # ls -l  /root/rpmbuild/BUILDROOT/neatx-0.1-1.el6.x86_64/usr/lib/python2.7/site-packages
    drwxr-xr-x 3 root bin 4096 Apr 19 14:45 neatx

这些是在 neatx.spec 文件中的与python相关的条目。

    # grep -i python   extras/rpm/neatx.spec
    %{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
    
    BuildRequires: python-devel
    
    BuildRequires: python-docutils
    
    Requires: python >= 2.4
    
    Requires: python-simplejson
    
    %python_sitelib/%{name}/*

希望能得到你的帮助或建议来解决这个问题。

提前感谢你。 - Shashi Divekar

1 个回答

1

命令 rpmbuild 出现错误是因为你需要在你的 .spec 文件中提供一个已安装文件的列表,具体位置在:

%files
%defattr(-,root,root,-)
%python_sitelib/%{name}/*

而路径 %python_sitelib 会被解析成

/usr/lib/python2.6/site-packages

但是在你的 .spec 文件的 %install 部分,文件被放到了另一个目录,具体是:

/usr/lib/python2.7/site-packages

你应该在 %install 部分使用与 %files 部分相同的宏 %python_sitelib

撰写回答