FPM(Effing Package Management)安装与使用指南

1. 什么是 FPM?

FPM(Effing Package Management)是一个强大的命令行工具,旨在快速打包应用程序 。它能够将任意文件或目录转换为可安装的软件包,支持多种 Linux 发行版的包管理格式,如:

  • RPM (.rpm) ------ 适用于 CentOS、RHEL、Fedora
  • DEB (.deb) ------ 适用于 Debian、Ubuntu
  • TAR (.tar.gz) ------ 通用格式
  • PKG (.pkg) ------ 适用于 macOS
  • PUPPET (.puppet) ------ Puppet 管理的包

FPM 主要用于简化 Linux 发行版软件包的创建,使开发者和运维人员无需编写复杂的 spec 文件或 deb 控制文件即可打包应用。


2. 安装 FPM

2.1 安装 Ruby 和 gem

FPM 依赖 Ruby 及其包管理工具 gem,因此需要先安装 Ruby。

Debian/Ubuntu 安装
bash 复制代码
sudo apt update
sudo apt install -y ruby ruby-dev build-essential
CentOS/RHEL 安装
bash 复制代码
sudo yum install -y ruby ruby-devel gcc make rpm-build
Arch Linux 安装
bash 复制代码
sudo pacman -S ruby
macOS 安装(使用 Homebrew)
bash 复制代码
brew install ruby

2.2 配置 Ruby 镜像源(加速安装)

由于默认的 RubyGems 源访问较慢,可以更换为国内的 Ruby 镜像源(例如 TUNA 镜像)。

更换 RubyGems 源
bash 复制代码
gem sources --remove https://rubygems.org/
gem sources --add https://mirrors.tuna.tsinghua.edu.cn/rubygems/
gem sources -l  # 确认已更换

2.3 安装 FPM

安装完成 Ruby 之后,使用 gem 安装 FPM:

bash 复制代码
sudo gem install --no-document fpm

安装完成后,检查 FPM 是否安装成功:

bash 复制代码
fpm --version

如果正确输出 FPM 版本号,则表示安装成功!


3. FPM 的基本用法

FPM 使用的基本语法如下:

bash 复制代码
fpm -s <源类型> -t <目标格式> -n <包名> -v <版本号> -C <目录> 

其中:

  • -s:指定源类型(如 dir 代表目录,tar 代表压缩包)
  • -t:目标格式(如 debrpmtar
  • -n:包的名称
  • -v:包的版本号
  • -C:指定要打包的目录

3.1 将目录打包成 DEB 软件包

bash 复制代码
fpm -s dir -t deb -n myapp -v 1.0.0 -C /path/to/app .

生成 myapp_1.0.0_amd64.deb

3.2 将目录打包成 RPM 软件包

bash 复制代码
fpm -s dir -t rpm -n myapp -v 1.0.0 -C /path/to/app .

生成 myapp-1.0.0-1.x86_64.rpm

3.3 将 .tar.gz 转换为 DEB 包

bash 复制代码
fpm -s tar -t deb -n myapp -v 1.0.0 myapp.tar.gz

3.4 直接打包二进制文件(指定目标路径)

bash 复制代码
fpm -s dir -t deb -n myapp -v 1.0.0 --prefix /usr/local/bin -C /path/to/bin .

4. 进阶使用技巧

4.1 指定依赖项

有些应用程序需要特定的依赖项,在打包时可以使用 -d 参数:

bash 复制代码
fpm -s dir -t deb -n myapp -v 1.0.0 -C /path/to/app -d "libssl1.1" -d "libc6"

4.2 指定维护者信息

bash 复制代码
fpm -s dir -t deb -n myapp -v 1.0.0 -C /path/to/app --maintainer "[email protected]"

4.3 添加描述信息

bash 复制代码
fpm -s dir -t deb -n myapp -v 1.0.0 -C /path/to/app --description "My Application Package"

5. 总结

  • FPM 是一个强大的打包工具 ,可简化 .deb.rpm 等包的创建。
  • 依赖 Ruby ,需要先安装 rubygem
  • 推荐使用国内镜像源 (如 TUNA)加速 gem 安装。
  • 支持目录、压缩包、二进制文件等多种打包方式
  • 可指定依赖、描述、维护者等信息,适用于自动化部署场景。

FPM 是 DevOps 和运维人员的利器,能极大提高软件分发的效率。

相关推荐
꧁坚持很酷꧂28 分钟前
Linux Ubuntu18.04下安装Qt Craeator 5.12.9(图文详解)
linux·运维·qt
凉、介1 小时前
PCI 总线学习笔记(五)
android·linux·笔记·学习·pcie·pci
电鱼智能的电小鱼1 小时前
EFISH-SBC-RK3588无人机地面基准站项目
linux·网络·嵌入式硬件·机器人·无人机·边缘计算
电鱼智能的电小鱼1 小时前
基于 EFISH-SBC-RK3588 的无人机环境感知与数据采集方案
linux·网络·嵌入式硬件·数码相机·无人机·边缘计算
小诸葛的博客2 小时前
详解Linux中的定时任务管理工具crond
linux·运维·chrome
一默19912 小时前
CentOS 7.9升级OpenSSH到9.9p2
linux·运维·centos
keep intensify2 小时前
Linux常用指令
linux·服务器·php
带电的小王3 小时前
sherpa-ncnn:Linux(x86/ARM32/ARM64)构建sherpa-ncnn --语音转文本大模型
linux·语音识别·实时音视频·sherpa-ncnn
沧浪之水!3 小时前
【Linux网络】:套接字之UDP
linux·网络·udp
BranH3 小时前
Linux系统中命令设定临时IP
linux·运维·服务器