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

 我来答
huanglenzhi
2016-05-02 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517193
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部

  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: 
URL: 
Distribution: Linux 
Packager: XuYuanzhen <absolutey.> 

%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源码制作并安装成功!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式