霜天部落 | 关注LAMP高性能、高并发架构的设计与研究

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 <jingsheng1@staff.sina.com.cn>

%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: 打包人的信息
description:软件详细描述,可多行
%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包含哪些

原文地址:http://cloudbbs.org/forum.php?mod=viewthread&tid=13065