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 时往往出现依赖问题。目前这个问题暂时没有好的解决方案。