fpm是一个用Ruby编写的开源工具,可将目录、源码、Python包等快速打包为deb、rpm等格式,简化Linux软件分发。

在Linux中打包软件,很多人第一反应是使用
dpkg
或
rpm
这类工具,但手动编写控制文件、处理依赖、组织目录结构非常繁琐。一个更高效的方式是使用fpm(Effing Package Manager),它可以快速将软件打包成多种格式(如deb、rpm、tar等),无需深入了解各发行版的打包规范。
什么是fpm?
fpm是一个用Ruby编写的开源工具,由Jordan Sissel开发,目标是“让打包变得简单”。它能将源码、目录、gem、python包等输入,转换为deb、rpm、tar.gz、apk等输出格式,极大简化了Linux软件分发流程。
安装fpm
确保系统已安装Ruby和gem(Ruby包管理器):
Ubuntu/Debian:
sudo apt-get install ruby ruby-dev rubygems build-essential
sudo gem install fpm
CentOS/RHEL/Rocky Linux:
sudo yum install ruby ruby-devel rubygems rpm-build
sudo gem install fpm
安装完成后,输入
fpm --version
验证是否成功。
使用fpm打包示例
假设你有一个简单的程序放在
/opt/myapp/
目录下,想打包为deb和rpm格式。
1. 打包目录为deb包
fpm -s dir -t deb -n myapp -v 1.0.0 --prefix /usr/local /opt/myapp
-s dir
:源类型是目录
-t deb
:目标格式为deb
-n myapp
:包名称
-v 1.0.0
:版本号
--prefix /usr/local
:安装路径前缀
生成的deb包可用于Ubuntu/Debian系统安装:
sudo dpkg -i myapp_1.0.0_amd64.deb
2. 打包为rpm包
fpm -s dir -t rpm -n myapp -v 1.0.0 --prefix /usr/local /opt/myapp
Melodio
Melodio是全球首款个性化AI流媒体音乐平台,能够根据用户场景或心情生成定制化音乐。
110 查看详情
生成的rpm包可用于CentOS等系统:
sudo rpm -ivh myapp-1.0.0.x86_64.rpm
3. 添加依赖和描述
如果程序依赖
python3
,可加入
--depends
参数:
fpm -s dir -t deb -n myapp -v 1.0.0 --prefix /usr/local --depends python3 --description "My custom application" /opt/myapp
支持的源和目标类型
fpm支持多种输入和输出格式,灵活适配不同场景:
源类型(-s):dir(目录)、file(文件)、tar、zip、gem、python、rpm、deb等 目标类型(-t):deb、rpm、tar、tar.gz、zip、apk等
例如,将Python包打包为deb:
fpm -s python -t deb requests
基本上就这些。fpm不追求替代专业的打包体系,而是提供一种快速、实用的“临时打包”或“内部发布”方案,特别适合运维、DevOps和小型项目。掌握它,能让你在不同Linux发行版间更自由地分发软件。
以上就是如何在Linux中打包软件 Linux fpm快速打包工具的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/937988.html
微信扫一扫
支付宝扫一扫