rpmbuild进行打包时需要spec文件和源码。spec 文件的生成可以参考网络上的方式手动修改成自己指定需的spec.一般情况下可以正常满足正常的需求,但最好的方案是使用pyporter进行打包生成统一的spec文件,当然也建议这么做。

pyporter 源码下载地址:https://gitee.com/openeuler/pyporter?utm_source=oschina&utm_medium=link-mid&utm_campaign=new_wh

下载之后使用python3 setup.py install 进行安装。

打包之前我们可以参考pyporter 配置使用

# pyporter -h
usage: pyporter [-h] [-s] [-R] [-b] [-B] [-r ROOTPATH] [-d] [-p PATH] [-j]
                [-o OUTPUT] [-t TYPE]
                pkg

positional arguments:
  pkg                   The Python Module Name

optional arguments:
  -h, --help            show this help message and exit
  -s, --spec            Create spec file
  -R, --requires        Get required python modules
  -b, --build           Build rpm package
  -B, --buildinstall    Build&Install rpm package
  -r ROOTPATH, --rootpath ROOTPATH
                        Build rpm package in root path
  -d, --download        Download source file indicated path
  -p PATH, --path PATH  indicated path to store files
  -j, --json            Get Package JSON info
  -o OUTPUT, --output OUTPUT
                        Output to file
  -t TYPE, --type TYPE  Build module type : python, perl...

因此可以通过配置参数来实现spec文件生成

实际举例:pyporter -s   -b   -d  -o python-glanceclient.spec   python-glanceclient

注意:配置-d 参数时,pyporter会 到python 的pypi.org网站查找python-glanceclient来生成对应的spec文件。

生成spec文件,生成rpm 包时,rpmbuild 通过spec文件将源码中requirements.txt 作为依赖写入rpm 依赖中。执行rpm -ivh 时往往出现依赖问题。目前这个问题暂时没有好的解决方案。

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐