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%]
完