1、查看操作系统版本和内核版本
#uname –a
#more /etc/redhat-release2、创建相关目录
/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 SRPMS3、下载Nginx源码包
下载源码包到SOURCES目录,不需要解压4、手工创建SPEC文件
由于spec文件是由spec语言编写的,请注意spec语言的语法。
#cd /usr/src/redhat/SPECS/
#cat < nginx.spec > EOCSummary: High Performance Web Server
Name: nginx
Version: 1.3.9
Release: el5
License: GPL
Group: Applications/Server
Distribution: Linux
%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包含哪些