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

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 9CentOS 6.4httpd-2.4.7.tar.gz

实验步骤:

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

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

wKiom1MK_nHQOrLVAAGp7J23gz4077.jpg

3,制作rpm包。

wKiom1MK_qjBtcjqAAFTbiVnEfI662.jpg

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

wKiom1MK_uyQQDFBAAJ1-nawPdA064.jpg

由于yum仓库中无GeoIP-devel,从EPEL下载GeoIP-develhttp://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包,开始安装。

wKiom1MK_-6xdLP4AAF272OFW5o600.jpg

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

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

wKiom1MLAHGg-spyAABzeVRAUO4117.jpg

wKioL1MLARuwsm3cAAK7w6KXT0U058.jpg

 

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

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

问题的原因是:本实验的唯一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)下载安装完成。

wKioL1MLAV7gB0UzAAccPOVudI8185.jpg

wKioL1MLAZjy1CZxAAXIxaaIXb4327.jpg

 

 

 

你可能感兴趣的:(SRPM)