1、fpm简介
1.1、简介
- fpm 是rpm 打包工具的其中一种,官方的打包方式 rpmbuild ,学习成本高,需要学习spec 文件的编写。
- 而fpm 工具打包则非常简单,一行命令就搞定RPM包!
- 简单的来说就是把一种包类型转换成另一种(rpm)
github:https://github.com/jordansissel/fpm/
1.2、支持类型包
支持的源类型包:
- dir: 将目录打包成所需要的类型,可以用于源码编译安装的软件包
- rpm: 对rpm进行转换
- gem: 对rubygem包进行转换
- python: 将Python模块打包成相应的类型
支持的类型包:
- rpm: 转换为rpm包
- deb: 转换为deb包
- solaris: 转换为solaris包
- puppet: 转换为puppet包
1.3、常用参数
-s:指定源类型
-t:指定目标类型,即想要制作为什么包
-n:指定包的名字
-v:指定包的版本号
-C:指定打包的相对路径
-d:指定依赖于哪些包
-f:第二次包时目录下如果有同名安装包存在,则覆盖它;
-p:制作的rpm安装包存放路径,不想放在当前目录下就需要指定;
–post-install:软件包安装完成之后所要运行的脚本;同–offer-install
–pre-install:软件包安装完成之前所要运行的脚本;同–before-install
–post-uninstall:软件包卸载完成之后所要运行的脚本;同–offer-remove
–pre-uninstall:软件包卸载完成之前所要运行的脚本;同—before-remove
–prefix:制作好的rpm包默认安装路径;
2、fpm 安装
首先安装依赖:
- yum - y install ruby rubygems ruby - devel
添加阿里云rubygems仓库
- gem sources -a http://mirrors.aliyun.com/rubygems/
移除原来的源(不然会去拉取原来的源)
- gem sources --remove https://rubygems.org/
安装fpm 工具(指定版本,不然会安装不上)
- gem install fpm -v 1.3.3
遇到安装问题,可以参考具体的依赖:https://rubygems.org/gems/fpm
3、使用示例
3.1、编译源代码
这里我们以 pythonocc 为 例子,一个开源的3D图形工具。
下载源代码:
- wget https://codeload.github.com/tpaviot/pythonocc-core/tar.gz/0.18.2
- tar -zxvf pythonocc-core.tar.gz
- cd pythonocc-core-0.18
- mkdir cmake-build && cd cmake-build
编译:
- cmake -DOCE_INCLUDE_PATH=/usr/local/include/oce …
- make -j4
安装到指定目录:(这个很重要)
- make install DESTDIR=/opt/
3.2、查看目录结构
指定安装到目录里面去
里面的目录结构,会根据安装到你系统的目录
3.2、生成rpm 包
fpm -s dir -t rpm -n pythonocc -v 0.18.2 -C /opt/usr/ --prefix /
-C 要指定你导入的安装目录
–prefix 至关重要,意思是你要安装到系统的哪个目录下,这个的意思是再根目录下安装。
安装到系统里面的目录将会是:
rpm -qpl 可以查看,安装包安装后的路径。