如何用nginx源码制作rpm包的详解
2013-03-06 22:07
423 查看
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。使用rpm安装软件和管理软件非常的方便。而这节我们不是介绍如何使用rpm安装或管理软件,而是如何把源码制作成rpm包。
我们日常工作一般会使用源码包安装软件,因为源码包相对灵活多变,操作自由,唯一的问题就是容易编译出错。rpm包安装简单方便,唯一问题就是不能自定义参数且更新的速度相对于源码慢很多。
下面我们就研究一下如何自己制作rpm包,我们以Nginx源码为例
1、查看操作系统版本和内核版本
/usr/src/redhat/SPECS //存放用于管理rpm制作进程的spec文件。
/usr/src/redhat/BUILD //解压后的文件存放在这里。
/usr/src/redhat/RPMS //存放由rpmbuild制作好的二进制包。
/usr/src/redhat/SRPMS //存放由rpmbuild制作好的源码包。
4、手工创建SPEC文件,由于spec文件是由spec语言编写的,请注意spec语言的语法。
SPEC文件内容如下:
开始编译生成rpm包
经过一段时间的编译后最终生成了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源码制作并安装成功!
本文出自 “老徐的私房菜” 博客,谢绝转载!
我们日常工作一般会使用源码包安装软件,因为源码包相对灵活多变,操作自由,唯一的问题就是容易编译出错。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文件内容如下:
############################# # Example Spec File For Nginx # Edited By LaoXu 7.Mar.2013 ############################# 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: XuYuanzhen <absolutey.xu@gmail.com> %description nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server %prep rm -rf $RPM_BUILD_DIR/nginx-1.3.9 zcat $RPM_SOURCE_DIR/nginx-1.3.9.tar.gz | tar -xvf - %build cd nginx-1.3.9 ./configure --prefix=/usr/local/nginx make %install cd 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
5、开始RPM制作
在制作RPM包之前,需要安装必要的编译工具,如rpmbuild,gcc等。开始编译生成rpm包
cd /usr/src/redhat/SPECS/ rpmbuild -bb nginx.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源码制作并安装成功!
本文出自 “老徐的私房菜” 博客,谢绝转载!
相关文章推荐
- 通过nginx源码包制作rpm包
- 通过定制nginx的rpm包学习如何制作rpm安装包
- 文章10:Nginx源码分析----Nginx如何获得数据包(未完成)
- 阿里云ECS安装MySQL通过yum安装,rpm源码安装,navicat for mysql 无法远程连接解决办法 包括Tomcat,Nginx无法远程访问等
- rpm包打包过程详解(二)——制作源代码安装包
- 详解使用JS如何制作简单的ASCII图与单极图
- 如何构建自己的游戏框架并且制作游戏(一)(附源码)
- Kafka详解六:Kafka如何通过源码实现监控
- nginx 源码安装参数详解
- ceph-deploy源码制作rpm包 <转>
- 如何用WPS表格制作甘特图?WPS表格制作甘特图详解!
- Netstat命令详解 如何关闭TIME_WAIT连接 如何查看nginx的访问流量
- rpm包打包过程详解(二)——制作源代码安装包
- rpm包制作及rpm命令详解
- 如何使用shell 脚本手动制作nginx电子书
- 如何制作rpm包
- 源码包制作成rpm包
- 将源码包制作成RPM包
- 详解CentOS下Nginx如何禁止IP访问
- 如何在CentOS/RedHat下实现根据源码包创建rpm包