如何用Nginx源码制作RPM包的详解

RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。使用rpm安装软件和管理软件非常的方便。而这节我们不是介绍如何使用rpm安装或管理软件,而是如何把源码制作成rpm包。

我们日常工作一般会使用源码包安装软件,因为源码包相对灵活多变,操作自由,唯一的问题就是容易编译出错。rpm包安装简单方便,唯一问题就是不能自定义参数且更新的速度相对于源码慢很多。

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

如何用Nginx源码制作RPM包的详解

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制作好的源码包。

如何用Nginx源码制作RPM包的详解

3、下载Nginx源码包

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

如何用Nginx源码制作RPM包的详解

4、手工创建SPEC文件,由于spec文件是由spec语言编写的,请注意spec语言的语法。

如何用Nginx源码制作RPM包的详解

SPEC文件内容如下:

  1. #############################
  2. # Example Spec File For Nginx
  3. # Edited By LaoXu 7.Mar.2013
  4. #############################
  5. Summary: High Performance Web Server
  6. Name: nginx
  7. Version: 1.3.9
  8. Release: el5
  9. License: GPL
  10. Group: Applications/Server
  11. Source: http://nginx.org/download/nginx-1.3.9.tar.gz
  12. URL: http://nginx.org/
  13. Distribution: Linux
  14. Packager: XuYuanzhen <absolutey.xu@gmail.com>
  15. %description
  16. nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server
  17. %prep
  18. rm -rf $RPM_BUILD_DIR/nginx-1.3.9
  19. zcat $RPM_SOURCE_DIR/nginx-1.3.9.tar.gz | tar -xvf -
  20. %build
  21. cd nginx-1.3.9
  22. ./configure --prefix=/usr/local/nginx
  23. make
  24. %install
  25. cd nginx-1.3.9
  26. make install
  27. %preun
  28. if [ -z "`ps aux | grep nginx | grep -v grep`" ];then
  29. killall nginx >/dev/null
  30. exit 0
  31. fi
  32. %files
  33. /usr/local/nginx

相关推荐