在RPM环境中管理pip

dar*_*sky 11 python pip rpm yum package-managers

对于我们的prod应用程序,我们以RPM为单位管理所有包.在一个完美的百胜世界,这很好.

但是,最近每种语言或框架都在部署自己的包管理器.例如,对于python,我几乎总是使用pip,然后在进入生产时再次为rpm构建包.同样适用于npm或宝石.

这是一个很多人遇到的问题吗?什么是避免这一切的最佳方法?人们是通过吮吸它并手动包装所有东西来处理这个问题,还是有一些自动化的方法来整合它们?

我很乐意听到这方面的想法.

jhu*_*tar 8

我使用pyp2rpmrstr模块构建rpm包,我不喜欢通过pip随机安装一些文件:

pyp2rpm -n rstr > ~/rpmbuild/SPECS/rstr.spec
rpmbuild -ba ~/rpmbuild/SPECS/rstr.spec
Run Code Online (Sandbox Code Playgroud)

但我不知道这对你的生产用途是否足够好.


小智 5

可以安装fpm:https : //github.com/jordansissel/fpm

Effing 包管理!非常轻松和理智地为多个平台(deb、rpm 等)构建包。http://fpm.readthedocs.io/en/latest/

接下来你可以运行:

$ fpm -s python -t rpm pyramid
no value for epoch is set, defaulting to nil {:level=>:warn}
no value for epoch is set, defaulting to nil {:level=>:warn}
Created package {:path=>"python-pyramid-1.9a2-1.noarch.rpm"}
Run Code Online (Sandbox Code Playgroud)

-s 源类型
-t 要创建的包类型,
最后一个参数是包的名称

https://fpm.readthedocs.io/en/latest/source/python.html