dar*_*sky 11 python pip rpm yum package-managers
对于我们的prod应用程序,我们以RPM为单位管理所有包.在一个完美的百胜世界,这很好.
但是,最近每种语言或框架都在部署自己的包管理器.例如,对于python,我几乎总是使用pip,然后在进入生产时再次为rpm构建包.同样适用于npm或宝石.
这是一个很多人遇到的问题吗?什么是避免这一切的最佳方法?人们是通过吮吸它并手动包装所有东西来处理这个问题,还是有一些自动化的方法来整合它们?
我很乐意听到这方面的想法.
我使用pyp2rpm为rstr模块构建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