FPM Linux 使用指南
目录
1、[FPM](#fpm-)
2、[安装步骤](#安装步骤)
[离线安装](#离线安装)
[在线安装](#在线安装)
3、[常用命令与参数](#常用命令与参数)
FPM
FPM(Effing Package Management)是一个用于创建软件包的工具,支持多种操作系统和包格式,包括RPM、DEB、Solaris等,它通过简单的命令行界面,帮助用户快速打包各种类型的文件和项目,FPM特别适合于自动化构建和部署流程,可以显著提高开发效率。
安装步骤
离线安装
离线安装适用于无法访问互联网的机器,以下是详细的步骤:
1、下载FPM及其依赖包:在一台有网络连接的机器上,下载FPM的安装包及其所有依赖包。
wget http://example.com/fpm-1.11.0.tar.gz
2、传输安装包到目标机器:将下载好的安装包及其依赖包传输到目标机器上,可以使用scp
命令或USB驱动器等方式。
scp fpm-1.11.0.tar.gz user@target_machine:/path/to/destination
3、解压并进入目录:在目标机器上解压安装包,并进入解压后的目录:
tar -zxvf fpm-1.11.0.tar.gz cd fpm-1.11.0
4、安装依赖包:在目标机器上安装FPM所需的依赖包,可以通过命令行工具如yum或apt-get进行安装。
sudo yum install ruby ruby-devel rpm-build
5、安装FPM命令:执行以下命令来安装FPM:
gem install fpm
6、验证安装:完成安装后,运行以下命令以验证是否成功安装:
fpm --version
在线安装
在线安装适用于可以直接访问互联网的机器,步骤如下:
1、安装Ruby环境:首先需要安装Ruby环境和相关的开发工具,在CentOS系统上,可以使用以下命令:
sudo yum -y install ruby ruby-devel gcc make rpm-build rubygems
2、更换RubyGems源:由于国外的源速度较慢,建议更换为国内的源,例如阿里云的源:
gem sources --add http://mirrors.aliyun.com/rubygems/ gem sources --remove https://rubygems.org/
3、安装FPM:通过RubyGems安装特定版本的FPM:
gem install fpm -v 1.4.0
4、验证安装:检查FPM是否成功安装:
fpm --help
常用命令与参数
FPM提供了丰富的命令和参数,方便用户根据需求进行软件包的构建和管理,以下是一些常用的命令和参数:
基本命令:
fpm -s dir -t deb -n packageName -C ./package/ -v version
:将目录打包为deb包。
fpm -s dir -t rpm -n packageName -C ./package/ -v version
:将目录打包为rpm包。
fpm -h
或fpm --help
:查看帮助文档。
常用参数:
-s dir
:指定打包的对象是一个目录。
-t deb|rpm|solaris
:指定想要创建的安装包类型。
-n packageName
:安装包名称。
-C ./package/
:在搜索文件前更改到指定目录。
-v version
:安装包版本号(默认是1.0)。
--architecture arch
:指定架构名称,如x86_64
,arm64
等。
--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
。
--deb-compression COMPRESSION
:指定安装包的压缩方式(仅对deb有效)。
--deb-custom-control FILEPATH
:指定自定义control文件。
--deb-no-default-config-files
:禁用默认行为,不把/etc
文件目录添加至conffiles文件中。
--config-files
:自行标记一个目录添加至conffiles文件中,可以多次追加文件。
实战案例
假设我们需要将一个简单的项目打包成deb包,并在安装完成后自动执行一些脚本,具体步骤如下:
1、准备目录结构:
project/ ├── output/ # 存放打好的包 ├── source/ # 包含可执行程序和测试文件 ├── sh/ # 包含安装前后执行的脚本 └── ... # 其他项目文件
2、编写脚本文件:
install_after.sh
:安装完成后执行的脚本,内容如下:
#!/bin/sh cp /opt/helloworldtest/1.txt /root/
uninstall_after.sh
:卸载完成后执行的脚本,内容如下:
#!/bin/sh rm /root/1.txt
3、打包命令:
fpm -s dir -t deb -n helloworldtest -C ./output -v 1.0 --post-install install_after.sh --post-uninstall uninstall_after.sh --prefix /opt/helloworldtest --architecture amd64 --depends libc6
4、安装与卸载:
使用dpkg工具安装deb包:
sudo dpkg -i output/helloworldtest_1.0_amd64.deb
卸载deb包:
sudo dpkg -r helloworldtest
常见问题及解答
Q1: 如何离线安装FPM?
A1: 离线安装需要在一台有网络连接的机器上下载FPM及其依赖包,然后通过scp
命令或USB驱动器等方式将这些包传输到目标机器上进行安装,详细步骤请参考上述“离线安装”部分。
Q2: 如何在打包时指定自定义的control文件?
A2: 使用--deb-custom-control FILEPATH
参数可以指定自定义的control文件。
fpm -s dir -t deb -n packageName -C ./package/ -v version --deb-custom-control ./custom_control_file
Q3: FPM支持哪些操作系统和包格式?
A3: FPM支持多种操作系统,包括OSX/macOS、Red Hat systems (Fedora 22 or older, CentOS, etc)、Oracle Linux 7.x systems、Debian-derived systems (Debian, Ubuntu, etc)等,支持的包格式包括RPM、DEB、Solaris等。
以上内容就是解答有关“fpm linux”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/740251.html