亦是美网络

致力于操作系统应用与计算机网络技术的IT网站。

站内搜索


最新文章

推荐文章

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

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

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

下面我们就研究一下如何自己制作rpm包,我们以Nginx源码为例

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

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

3、下载Nginx源码包

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

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

SPEC文件内容如下:

  1. #############################
  2. #ExampleSpecFileForNginx
  3. #EditedByLaoXu7.Mar.2013
  4. #############################
  5. Summary:HighPerformanceWebServer
  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[enginex]isaHTTPandreverseproxyserver,aswellasamailproxyserver
  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. cdnginx-1.3.9
  22. ./configure--prefix=/usr/local/nginx
  23. make
  24. %install
  25. cdnginx-1.3.9
  26. makeinstall
  27. %preun
  28. if[-z"`psaux|grepnginx|grep-vgrep`"];then
  29. killallnginx>/dev/null
  30. exit0
  31. fi
  32. %files
  33. /usr/local/nginx

5、开始RPM制作

在制作RPM包之前,需要安装必要的编译工具,如rpmbuild,gcc等。

开始编译生成rpm包

cd/usr/src/redhat/SPECS/

rpmbuild-bbnginx.spec //-ba 参数表示同时生成二进制包和源码包 -bb 参数表示只生成二进制包

经过一段时间的编译后最终生成了rpm包文件

如图所示,在/usr/src/redhat/RPMS/x86_64/该目录下生成了我们需要的rpm包,由于我编译的操作系统平台是64bit的,所以生成的rpm包也是64位的文件。在指定的目录下生成RPM,通常用%_topdir变量,需要在宏配置文件中指定,配置文件称为macrofiles,它们通常为 /usr/lib/rpm/macros:/usr/lib/rpm/macros.*:~/.rpmmacros,这个在rhel 5.8中可以通过rpmbuild --showrc | grep macrofiles 查看,我们这里在.rpmmacros文件中定义了生产rpm包的路径为/usr/src/redhat

最后安装生成的rpm包

至此Nginx源码制作并安装成功!

上一篇:redhat 常见系统故障及恢复之MBR丢失、Grub菜单丢失、挂件fstab配置错误
下一篇:脱离搜索引擎的网站怎么获取访问量

亦是美网络,成立于2012年12月5日,是一个致力于操作系统应用与计算机网络技术的综合IT网站,为大家不断提供和推荐有用的网络教程与技术。

本站文章归<亦是美网络 www.yishimei.cn>版权所有 网站地图 豫ICP备12013471号-4 豫公网安备41078202000395号