CentOS将可执行程序打成rpm包
CentOS将可执行程序打成rpm包
使用fpm工具直接打包
1.安装ruby
fpm是ruby写的,系统环境需要ruby,且ruby版本大于2.4
yum -y install ruby rubygems ruby-devel
查看当前rubygem仓库
gem sources list
添加国内仓库
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem sources list
2.安装fpm
gem从rubygem仓库安装软件类似于yum安装。
(1)直接安装
安装成功可跳过下一步手动安装
#CentOS 6 安装方式
gem install json -v 1.8.3
gem install fpm -v 1.3.3
#CentOS 7 安装方式
gem install fpm
(2)ruby版本过低时,进行手动安装
卸载老版本ruby
yum remove ruby -y
下载ruby稳定版
cd /usr/local/
wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.gz
安装ruby
tar zxf ruby-2.5.1.tar.gz
cd ruby-2.5.1
./configure --prefix=/usr/local/ruby
make
make install
安装后查看版本
/usr/local/ruby/bin/ruby -v
设置环境变量
vi /etc/profile
# 最后一行添加
export PATH=$PATH:/usr/local/ruby/bin
验证
source /etc/profile
ruby -v
重新安装fpm
gem install fpm
3.fpm打包
fpm常见参数,详情查看man帮助。
-s 指定源类型
-t 指定目标类型,就是你想要制作什么包
-n 指定包的名字
-v 指定包的版本号
-C 指定打包的相对路径
-d 指定依赖于哪些包
打包实例:
#把编译好的文件按绝对路径创建相应的目录,并移动到位,如htop命令的目录结构如下
./htop/
└── usr
├── local
│ └── bin
│ └── htop
└── share
├── applications
│ └── htop.desktop
├── man
│ └── man1
│ └── htop.1
└── pixmaps
└── htop.png
#切换目录
[root@localhost ~]# cd htop
#执行fpm打包命令
[root@localhost htop]# fpm -s dir -t rpm -n htop -v 2.2.0 ./usr/
Created package {:path=>"htop-2.2.0-1.x86_64.rpm"}
此时会在当前目录下生成rpm包
[root@localhost htop]# ls
htop-2.2.0-1.x86_64.rpm usr
使用rpm命令在另一台服务器上安装该软件包
rpm -ivh htop-2.2.0-1.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:htop-2.2.0-1 ################################# [100%]
完
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix