rpm 包构建工具

nfpm 是借鉴fpm使用golang实现的对deb, rpm, apk 打包的工具

安装nfpm
wget https://github.com/goreleaser/nfpm/releases/download/v2.41.3/nfpm_2.41.3_Linux_x86_64.tar.gz
tar xf nfpm_2.41.3_Linux_x86_64.tar.gz -C /usr/local/bin
书写打包需要的配置文件

.目录结构
├── nfpm.yaml # nfpm 配置文件
├── node_exporter # node_exporter 可执行文件
├── node_exporter.service # node_exporter通过systemd管理的配置文件
└── scripts
└── postinstall.sh # 安装后需要执行的文件

mkdir -p demo/scripts
tee demo/nfpm.yaml <<'EOF' 

name: "node_exporter"       # 包名称 (必需)
version: "1.6.1"    # 版本号 (必需)
arch: "amd64"       # 架构 (amd64/arm64/386等)
platform: "linux"   # 目标平台 (linux/darwin/windows等)

# 元信息
description: "node_exporter application"
maintainer: "1209233066@qq.com"
vendor: "prometheus"
homepage: "http://prometheus.io"
license: "MIT"

# 文件映射 (必需)
contents:
- src: node_exporter            # 打包构建时的本地文件
  dst: /usr/bin/node_exporter   # 安装后生成的文件位置
- src: node_exporter.service
  dst: /usr/lib/systemd/system/node_exporter.service
  
scripts:
  postinstall: "scripts/postinstall.sh" # 安装后执行的脚本
EOF
tee demo/scripts/postinstall.sh <<'EOF'
#!/bin/bash

systemctl daemon-reload
systemctl enable node_exporter --now
systemctl status node_exporter
EOF
打包rpm包
nfpm pkg --packager rpm --config nfpm.yaml
安装rpm包
[root@pcloud-hwgz-prod-0001 test]# rpm -ivh node_exporter-1.6.1-1.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:node_exporter-1.6.1-1            ################################# [100%]
posted @ 2025-03-15 20:16  mingtian是吧  阅读(37)  评论(0)    收藏  举报