rpm打包

1,需要安装rpmbuild

2,准备好工作目录:

mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

3,自定义环境:

vim ~/.rpmmacros
%_topdir /root/rpmbuild
%_tmppath /root/rpmbuild/tmp
%buildroot /root/rpmbuild/BUILDROOT
%_prefix  /

4,将tarball拷贝到~/rpmbuild/SOURCES下

5,创建相应spec文件(举例nginx):

Summary: nginx-1.6.2 
Name: nginx
Version: 1.6.2
Release: 1
Source0: %{name}-%{version}.tar.gz
License: GPL 
Group: Development/Tools
BuildRoot: %{_builddir}/%{name}-root 
%description
nginx-1.6.2


%prep
%setup -q

%build
./configure 
make -j4 

%install
make DESTDIR=$RPM_BUILD_ROOT install
%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root)
/usr/local/nginx/conf/fastcgi.conf
/usr/local/nginx/conf/fastcgi.conf.default
/usr/local/nginx/conf/fastcgi_params
/usr/local/nginx/conf/fastcgi_params.default
/usr/local/nginx/conf/koi-utf
/usr/local/nginx/conf/koi-win
/usr/local/nginx/conf/mime.types
/usr/local/nginx/conf/mime.types.default
%config /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/conf/nginx.conf.default
/usr/local/nginx/conf/scgi_params
/usr/local/nginx/conf/scgi_params.default
/usr/local/nginx/conf/uwsgi_params
/usr/local/nginx/conf/uwsgi_params.default
/usr/local/nginx/conf/win-utf/usr/local/nginx/html/50x.html
/usr/local/nginx/html/index.html
/usr/local/nginx/sbin/nginx

1),其中%file段只写 /usr/local也没有问题,因为它实际是从 $RPM_BUILD_ROOT/usr/local/下拷贝的文件

2),%install 段:

make DESTDIR=$RPM_BUILD_ROOT install

这是由相应tarball 的configure文件决定的,若不是标准的,则有可能不是指定DESTDIR这个变量。如php5:

make INSTALL_ROOT=$RPM_BUILD_ROOT  install

否则打包会找不到文件

6,

rpmbilld -ba xxxx.spec

7,去RPMS目录下检查RPM包

rpm -Vp XXXXXXX.rpm # or -qpl
http://www.cnblogs.com/skynext/
原文地址:https://www.cnblogs.com/skynext/p/4536118.html