warren6

 

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

参考文献1

参考文献2

posted on 2022-10-10 13:46  Warren6  阅读(213)  评论(0编辑  收藏  举报

导航