打包编译好的命令,即可直接安装使用
#使用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