使用fpm工具打包(deb),指定架构名称,且可以自定义control、conffiles文件

一开始使用交叉编译链完成了不同架构代码的编译,但使用dpkg工具打包时,需要在对应的架构上打包,无法在ubuntu环境(x86_64)上出arm64架构的deb安装包,在网上调研了一下,发现fpm工具可以实现跨平台打包,在此记录一下使用到的fpm命令参数

在终端可以执行fpm --help或fpm -h查看各参数用法,也可以在fpm官方资料查看命令行参数含义
在这里插入图片描述

fpm打包

下面是一个最简单的打包例子,其他参数可以参考文档自行添加

fpm -s dir -t deb -n packageName -C ./package/ -v version --architecture arm64
参数含义
-s dir指定打包的对象是一个目录
-t deb指定想要创建的安装包类型 (deb, rpm, solaris, etc)
-n packageName安装包名称
-C ./package/在搜索文件前,把目录更改到这里,需要打包的目录
-v version安装包版本号(default: 1.0)
--architecture arm64指定架构名称
-f强制覆盖已存在文件(default: false)

–architecture官方给出解释是在目标机器上使用uname -m命令进行查询,该命令与dpkg --print-architecture 获取到的结果不同,以下是两个命令在一些常用机器上获取到的结果,在测试时,其他环境使用两个结果都没有问题,只有mips64有差异,使用mips64创建的包无法在机器上正常安装,架构需要指定mips64el才可以正常安装,该差异仅供参考,我使用的架构名称均是dpkg --print-architecture的结果,出包后测试正常

uname -m/dpkg --print-architecture    
aarch64/arm64  mips64/mips64el  x86_64/amd64  sw_64/sw_64  loongarch64/loongarch64

deb安装包使用到的特殊参数

  1. 指定安装/卸载前后脚本
参数含义
--post-install FILE包安装后调用的脚本文件
--pre-install FILE包安装前调用的脚本文件
--post-uninstall FILE包删除后调用的脚本文件
--pre-uninstall FILE包删除前调用的脚本文件
--after-install FILE--post-install FILE
--before-install FILE--pre-install FILE
--after-remove FILE--post-uninstall FILE
--before-remove FILE--pre-uninstall FILE
  1. 指定压缩方式
参数含义
(deb only) --deb-compression COMPRESSION指定安装包的压缩方式 (只能是gz, bzip2, xz, none)
  1. 使用自定义的control文件

在不指定control文件时,fpm工具会生成默认的control文件,保存安装包的基本信息

参数含义
(deb only) --deb-custom-control FILEPATH指定自定义control文件
  1. 使用自定义的conffiles文件

在不指定conffiles文件时,fpm工具默认将所有需要放到/etc目录下的文件添加至conffiles文件中,如果需要自定义一些目录,则在禁用默认行为后,自己单独添加

参数含义
(deb only) --deb-no-default-config-files禁用该默认行为,不把/etc文件目录添加至conffiles文件中
--config-files自行标记一个目录添加至conffiles文件中,可以多次追加文件
  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值