Loading

CentOS系统制作RPM包

打包编译好的命令,即可直接安装使用

#使用yum可解决依赖问题
[root@localhost ~]# yum -y localinstall *.rpm   

一、使用fpm工具直接打包。

Fpm安装

fpm是ruby写的,系统环境需要ruby,且ruby版本大于1.8.5

[root@localhost ~]# yum -y install ruby rubygems ruby-devel

查看当前rubygem仓库

[root@localhost ~]# gem sources list

安装fpm,gem从rubygem仓库安装软件类似于yum安装。

#CentOS 6 安装方式
[root@localhost ~]# gem install json -v 1.8.3
[root@localhost ~]# gem install fpm -v 1.3.3

#CentOS 7 安装方式
[root@localhost ~]# gem install 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命令在另一台服务器上安装该软件包

[root@localhost ~]# rpm -vhi htop-2.2.0-1.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:htop-2.2.0-1                     ################################# [100%]

二、使用rpmbuild工具制作

安装工具

[root@localhost ~]# yum install rpmdevtools

执行如下rpmdev-setuptree生成rpmbuild的工作目录

[root@localhost ~]# rpmdev-setuptree

查看工作目录

[root@localhost ~]# tree rpmbuild/
rpmbuild/
├── BUILD       #打包过程中的工作目录
├── RPMS        #存放生成的二进制包
├── SOURCES     #放置打包资源,包括源码打包文件和补丁文件等
├── SPECS       #放置SPEC文档
└── SRPMS       #存放生成的源码包

切换目录

[root@localhost ~]# cd ~/rpmbuild/SPECS/

会自动生成模板,修改即可

[root@localhost SPECS]# vim myrpm.spec
Name:       nginx
Version:    1.15.2
Release:    1%{?dist}
Summary:    Asdas

License:    GPL
URL:        http://www.localhost
Source0:    http://ftp.gnu.org/gnu/hello/%{name}-%{version}.tar.gz

BuildRequires:  gettext

%description
Garena self-build Nginx.

%prep
%setup -q


%build
./configure --prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--pid-path=/usr/local/nginx/run/nginx.pid \
--with-http_ssl_module \
--with-http_stub_status_module


make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}

%files
%defattr(-,root,root,-)
/usr/local


%changelog

执行打包命令

[root@localhost ~]# rpmbuild -bb htop2.2.0.spec  
posted @ 2019-06-23 16:50  Outsrkem  阅读(3460)  评论(0编辑  收藏  举报