Linux实验报告-SRPM源码包安装nginx

实验背景:

一个软件包发布时,基于License方面和不同平台编译方面考虑,除了该软件的RPM包,还会发布一个包含源代码的SRPM源码包,通常以.src.rpm结尾。通过SRPM用户可以自定义重新编译生成适合用户自己Linux环境的RPM包。

按照默认参数安装一个源码格式的RPM程序包通常分为3个步骤:

1,安装源码包



#rpm -ivh xxxxx.src.rpm     此命令会在当前用户家目录自动生成一个rpmbuild目录 #cd rpmbuild/ #ls rpmbuild/SOURCES         存放源程序、补丁、脚本等 #ls rpmbuild/SPECS          存放.spec文件,此文件定义了rpm包制作的过程,至关重要




2,通过spec文件制作rpm包



#cd ~/rpmbuild/SPECS  #rpmnbuild -ba xxx.spec



              rpmbuild -ba编译生成二进制格式的rpm包,并生成一个源码格式的rpm包(将原.src再生成一次

rpmbuild -bb只生成二进制格式的rpm包

    此命令执行结束后,rpmbuild目录下会新生成几个目录



#ls rpmbuild/RPMS/x86_64/



 此目录中生成制作好的rpm包,即可以开始安装此RPM包



#ls rpmbuild/SRPMS



此目录中生成一个.src包,这个包可以拿到别的系统上安装再一次编译

3,安装制作好的rpm包



#cd ~/rpmbuild/RPMS/arch #rpm -ivh xxxxxx.rpm




实验目的:

了解SRPM源码包的安装步骤。

完成SRPM源码包格式Nginx安装,开启服务后,测试是否成功。

实验环境:

VmwareWorkstation 9,CentOS 6.4,httpd-2.4.7.tar.gz

实验步骤:

1,下载nginx源码包至本地 (http://mirrors.sohu.com/fedora-epel/6/SRPMS/)

2,安装源码包。完成后即可看到~/rpmbuild/SPECS目录下已经生成nginx.spec文件。

rpm 安装nginx到指定为止_操作系统

3,制作rpm包。

rpm 安装nginx到指定为止_rpm包_02

提示依赖性检查错误,有4个程序包需要安装。从yum仓库(本实验中yum仓库为系统镜像光盘)即可查找到除GeoIP-devel之外的其他3个程序包,依次安装完成。

rpm 安装nginx到指定为止_rpm包_03

由于yum仓库中无GeoIP-devel,从EPEL下载GeoIP-devel(http://mirrors.sohu.com/fedora-epel/6/x86_64/)至本地,依赖性要求,需先下载安装GeoIP。

[root@localhost SPECS]# yum localinstall/tmp/localpackage/GeoIP-1.4.8-1.el6.x86_64.rpm

[root@localhost SPECS]# yum install/tmp/localpackage/GeoIP-1.4.8-1.el6.x86_64.rpm

(实验环境是CentOS6.4,所以yuminstall/localinstall本地程序包同样有效)

重新执行命令 rpmbuild -ba nginx.spec即可正常完成。

4,之后,再~/rpmbuild/RPMS/x86_64目录下即可看到打包好的rpm包,开始安装。

rpm 安装nginx到指定为止_运维_04

至此,源码包格式的nginx程序包完成安装。

5,开始nginx服务,并测试成功。

rpm 安装nginx到指定为止_数据库_05

rpm 安装nginx到指定为止_操作系统_06

 

实验中遇到的问题:(已解决)

--------------------------------------------------------------------------------------

问题的原因是:本实验的唯一yum源是系统光盘,而且这是DVD1, 而gd-devel在DVD2上,#yum list all ge-devel 可以查找的到是因为yum的数据库信息是针对于整个系统镜像,即包含DVD2

-------------------------------------------------------------------------------------


1,在安装gd-devel时,yum search gd-devel可以查找的到,但实际c6-media仓库中并不存在此程序包,以致yum install gd-devel无法安装。但既然其实没有此程序包的,不知为什么yum search还可以查询的到?已经yum clean all过了。最终通过网上(http://rpmfind.net)下载安装完成。

rpm 安装nginx到指定为止_操作系统_07

rpm 安装nginx到指定为止_运维_08

 

 

 


转载于:https://blog.51cto.com/zebralinux/1363615