linux服务器RPM包制作

linux服务器RPM包制作

1、查看操作系统版本和内核版本

#uname –a

#more /etc/redhat-release


2 、创建相关目录

/usr/src/redhat/SOURCES //存放源代码,补丁,图标等文件。


/usr/src/redhat/SPECS //存放用于管理rpm制作进程的spec文件。


/usr/src/redhat/BUILD //解压后的文件存放在这里。


/usr/src/redhat/RPMS //存放由rpmbuild制作好的二进制包。


/usr/src/redhat/SRPMS //存放由rpmbuild制作好的源码包。


#mkdir -p /usr/src/redhat/

#cd /usr/src/redhat/

#mkdir SOURCES SPECS BUILD RPMS SRPMS


3 、下载 Nginx 源码包

下载源码包到SOURCES目录,不需要解压


#wget http://nginx.org/download/nginx-1.3.9.tar.gz


4、手工创建SPEC文件

由于spec文件是由spec语言编写的,请注意spec语言的语法。

#cd /usr/src/redhat/SPECS/

#cat < nginx.spec > EOC

  

Summary:  High Performance Web Server

  

Name:  nginx

  

Version:  1.3.9

  

Release:  el5

  

License:  GPL

  

Group:  Applications/Server

  

Source:  http://nginx.org/download/nginx-1.3.9.tar.gz

  

URL:  http://nginx.org/

  

Distribution:  Linux

  

Packager:  JingSheng <[email protected]>

  
  

%description

  

nginx  [engine x] is a HTTP and reverse proxy server

  

%prep

  

useradd  nginx -s /sbin/nologin

  

rm -rf  $RPM_BUILD_DIR/nginx-1.3.9

  

zcat  $RPM_SOURCE_DIR/nginx-1.3.9.tar.gz | tar -xvf -

  

%build

  

cd  $RPM_BUILD_DIR/nginx-1.3.9

  

./configure  --user=nginx --group=nginx --prefix=/usr/local/nginx/ --with-http_stub_status_module  --with-http_ssl_module

  

make

  

%install

  

cd  $RPM_BUILD_DIR/nginx-1.3.9

  

make  install

  

%preun

  

if [ -z  "`ps aux | grep nginx | grep -v grep`" ];then

  

killall  nginx >/dev/null

  

exit 0

  

fi

  

%files

  

/usr/local/nginx

  

#:以#开头是注释,rpm会忽略它。
Summary:简单描述软件。
Name :定义rpm的名称。
Version: 定义软件版本
Release: 发行版本
License: 定义许可证
Group: 软件分类
Source: 源码下载地址
URL: 源码相关网站
Distribution: 发行版系列
Packager: 打包人的信息

scription:软件详细描述,可多行
%prep :软件编译之前的处理,如解压。
%build :开始编译软件,如make
%install :开始安装软件,如make install
%files :指定哪些文件需要被打包,如/usr/local/nginx
%preun :定义卸载之前的动作,如杀掉进程。


5 、开始 RPM 制作

在制作RPM包之前,需要安装必要的编译工具

#yum install -y gcc rpm-build pcre-devel

开始编译生成rpm包

# rpmbuild-bb nginx.spec


注意:如果安装生成报错,请将安装过的东东全部去除,再重新打包


# rpm –qpl *.rpm 查看rpm包含哪些

你可能感兴趣的:(linux服务器RPM包制作)