4 步打包一个新的 Python 模块( 三 )

rpmbuild构建源软件包了 。如果你还没有安装rpmbuild,你也可以通过dnf安装rpm-build包(或者在使用rpmbuild命令时根据终端的的提示进行安装) 。
参数-bs表示构建源软件包 。添加这个参数会产生一个 src.rpm 文件,这是一个用于为特定架构重新构建的通用包:
 

  1.  
    $ rpmbuild -bs SPECS/concentration.spec
     
  2.  
    Wrote: ~/rpmbuild/SRPMS/python-concentration-1.1.5-1.el9.src.rpm
     
 
为你的系统构建一个可安装的 RPM 文件:
 
  1.  
    $ rpmbuild –rebuild SRPMS/python-concentration-1.1.5-1.el9.src.rpm
     
  2.  
    error: Failed build dependencies:
     
  3.  
    python3-devel is needed by python-concentration-1.1.5-1.el9.noarch
     
 
看起来这个包需要安装 Python 的开发库才能继续构建 。安装它们以继续构建 。这一次,构建成功了,并且渲染了更多的输出(为了清楚起见,我在这里简略了输出):
 
  1.  
    $ sudo dnf install python3-devel -y
     
  2.  
    $ rpmbuild –rebuild SRPMS/python-concentration-1.1.5-1.el9.src.rpm
     
  3.  
    [...]
     
  4.  
    Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.TYA7l2
     
  5.  
    + umask 022
     
  6.  
    + cd /home/bogus/rpmbuild/BUILD
     
  7.  
    + rm -rf concentration-1.1.5
     
  8.  
    + RPM_EC=0
     
  9.  
    ++ jobs -p
     
  10.  
    + exit 0
     
 
你的 RPM 包现在已经构建在RPMS子目录下,像平常一样使用dnf安装它 。
 
  1.  
    $ sudo dnf install RPMS/noarch/python3-concentration*rpm
     
 
为什么不使用 PyPi?
通常情况下我们并不需要将 Python 模块打包成 RPM 包 。通过 PyPi 来安装模块也是可以接受的,但是 PyPi 会安装额外的包管理器对你的模块进行检查和更新 。当你使用dnf来安装 RPM 包时,你在安装完成时就能够获取到完整的安装列表 。有了pyp2rpm之后,这个过程就变得快速、简单且自动化了 。
via:
作者: 选题: 译者: 校对:
本文由 原创编译, 荣誉推出
LCTT 译者 :Songling Gu
翻译: 2.0 篇
贡献: 45 天
2022-07-31
2022-09-13
https://linux.cn/lctt/Return7g
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “ 转载:公众号名称”,




推荐阅读