制作rpm包一般是编辑 spec 文件,然后通过rpm build 出来。但是对于一些简单的程序就显得略微繁琐,因此有一些替代工具应运而生。
fpm工具
fpm 工具是 ruby 脚本, gem install fpm 就可以安装。使用也很简单。但是系统自带的ruby都比较老,gem 墙内的镜像又略微有点麻烦,因此安装这一步就会困扰很多人。在此不再详细描述,感兴趣可以自行查找相关资料。
nfpm 工具
nfpm 工具是由 golang 编写的,因此下载二进制之后就可以直接运行,再配合一个yml文件就可以直接服用。
举例 nfpm.yaml
# nfpm example config file
#
# check https://nfpm.goreleaser.com/configuration for detailed usage
#
name: "redis_exporter"
arch: "noarch"
platform: "linux"
version: "v1.0.1"
section: "default"
priority: "extra"
maintainer: "maintainer"
description: |
redis_exporter.
vendor: "vendor"
license: "MIT"
contents:
- src: ./redis-exporter.service
dst: /etc/systemd/system/redis-exporter.service
- src: ./*
dst: /usr/local/redis_exporter/
- src: ./nfpm.yaml
dst: /usr/local/redis_exporter/nfpm.yaml
type: config
overrides:
rpm:
scripts:
preinstall: ./preinstall.sh
postinstall: ./postinstall.sh
postremove: ./postremove.sh
deb:
scripts:
preinstall: ./preinstall.sh
postinstall: ./postinstall.sh
postremove: ./postremove.sh
执行命令
```
mkdir -p ../rpm
nfpm package -p deb -t ../rpm
nfpm package -p rpm -t ../rpm
```
一条命令可以制作rpm和deb包