RPM简述:

       RPMRedhat Package Manager的缩写,是由RedHat公司开发的软件包安装和管理程序,同Windows平台上的Uninstaller比较类似。使用RPM,用户可以自行安装和管理Linux上的应用程序和系统工具。现在包括OpenLinuxS.u.S.E.以及Turbo LinuxLinux的分发版本都有采用,可以算是公认的行业标准了。

   首先我们先了解一下在Linux下软件的安装方式,我们众所周知的Windows都在是图形化界面下安装软件的,而我们的Linux也有图形化界面但基本上都是不用的,在Linux下安装软件几乎都是在命令行界面下完成的,哈哈是不是很神奇!!!

一、我们先介绍一下Linux下软件包种类及软件包的组成:

1、二进制rpm它的组成如:nginx-1.0.15-5.el6.x86_64.rpm

  Nginx:  表示软件包的名称

  1.0.15:表示软件包的版本信息;其中1表示主版本信息,0表示次版本信息,15表示修订号

  5.el6:  其中5表示发行号,而el6则表示平台。这里表示的是RHEL6

  X86_64: 表示软件包支持的系统平台

  .rpm:   表示软件包的格式

2rpm源码包它的组成如:nginx-1.0.15-5.el6.src.rpm

  Nginx表示软件包的名称

  1.0.15:表示软件包的版本信息;其中1表示主版本信息,0表示次版本信息,15表示修订号

  5.el6:  其中5表示发行号,而el6则表示平台。这里表示的是RHEL6

  Src:    (Source)表示是rpm源码包

  X86_64: 表示软件包支持的系统平台

  .rpm:   表示软件包的格式

3tar源码包它的组成如:nginx-1.4.1.tar.gz

  Nginx:  表示软件包的名称

  1.4.1: 表示软件包的版本信息;其中1表示主版本信息,4表示次版本信息,1表示修订号

  .tar.gz:表示软件包的格式

4、软件包主要由:二进制文件、配置文件、库文件、帮助文件以及头文件等部分组成。他们分别存放在系统的哪些位置呢?下面我们分别来介绍:

  二进制文件:/bin/sbin/usr/bin/usr/sbin/usr/local/bin/usr/local/sbin

  配置文件:/etc/usr/local/etc

  库文件:/lib/usr/lib/usr/local/lib

  帮助文件:/usr/share/man/usr/local/share/man/usr/share/info/etc/share/doc、

/usr/local/share/info

  头文件:/usr/include/usr/local/include

二、在我们安装软件之前首先要学会rpm命令的一些常用选项:

  命令格式:rpm [OPTION...]Packages




安装

OPTION

注释

-i

安装(通常与vh选项一起使用)

-h

#进度显示进度信息

--force

强制

--nodeps

忽略依赖关系

--test

测试安装(不真正安装)

--replacepkgs

重新安装软件包



升级

-U

升级(如果没有安装则安装)

-F

升级(软件包要事先安装过)

--force

强制

--nodeps

忽略依赖关系

卸载

-e

卸载




查询已安装软件

-q

查询单个软件包

-qa

查看所有已安装软件包

-qi

查看软件包摘要信息

-ql

查看软件包生成的文件列表

-qd

查看软件包生成的帮助文件

-qf

查看文件是由哪个软件包安装的

-q –scripts

查看软件包安装脚本

查询未安装软件

-qp[i|c|d]

选项与-q的一样

校验

-V

校验已安装软件包

-K

校验软件包中的文件

通用选项

-v

显示详细信息

-vv

显示调试信息

RPM数据库

--initdb

新建RPM数据库

--rebuilddb

重建RPM数据库

示例:

1、安装、卸载软件包

194851966.jpg

2、忽略依赖关系安装软件包

195039509.png

3、查看已安装的软件与一个文件是由哪个软件安装

195154872.png

4、查询未安装软件

195300543.png

5、校验nginx软件是否被修改及重建RPM数据库

195418794.png

三、YUM介绍:

1YUM是什么:

  yum :全称(Yellow dogUpdater, Modified主要功能是更方便的添加/删除/更新RPM包,它能自动解决包的倚赖性问题,它能便于管理大量系统的更新问题

2yum特点
  可以同时配置多个资源库(Repository) ,简洁的配置文件(/etc/yum.conf )自动解决增加或删除rpm包时遇到的倚赖性问题,使用方便并保持与RPM数据库的一致性

YUM常用选项及使用:

3YUM客户端配置文件:/etc/yum.repos.d/*.repo

195627585.png

4yum命令选项

  命令格式:yum [OPTION...] [Packages]

  -y  自动应答为yes

  yum check-update     列出所有可以更新的软件列表

  yum update           安装所有可以更新的软件

  yum update-to        升级到指定版本

  yum install          安装软件包

  yum reinstall        重新安装软件包

  yum list             列出yum源所有可以安装的软件包

  yum list available   列出所有升级源上面的软件包

  yum list updates     列出所有可以更新的软件包

  yum list installd    列出所有已安装的软件包

  yum remove           删除软件包

  yum search           模糊查找软件包

  yum info             查看软件包信息

  yum provides         列出软件包生成哪些文件

  yum history          列出yum历史操作命令

  yum clean [ packages |metadata | expire-cache | rpmdb | plugins | all ]     清除缓存

  yum repolist[all|enable|disable]        查看yum仓库,默认只查看已启用的

  yum grouplist        查看所有软件包组

  yum groupinfo        显示组包含的软件包

  yum groupinstall     安装RPM

  yum groupupdate      更新RPM软件包组

  yum groupremove      删除RPM软件包组

  yum makecache        手动生成YUM缓存

注:yum安装开发环境:

  RHEL6|CentOS6: "Developmenttools""Server PlatformDevelopment" "Desktop Platform Development"

  RHEL5|CentOS5:"Development tools""DevelopmentLibraries"

5、介绍完Yum命令的使用,接下来我们来制作一个Yum仓库示例:

  [root@station79 ~]#yum -yinstall createrepo #先安装用来创建本地仓库的软件包

  [root@station79 ~]#createrepo xen/          #创建本地源仓库,在xen文件夹下面会生成”repodata“文件夹

200229931.png

配置并查看yum

200358446.png

200401646.png

接下来就可以使用yum来安装Xen软件包了,安装完成Xen就可以使用了

200508508.png

三、tar源码包安装软件及常用选项:

1、命令格式:tar [OPTION...] [FILE]...

  -c:创建一个新归档

  -x:从归档中解压出文件

  -f filename:指定归档文件名称,一般以.tar作为文件名后缀

  -t:列出归档内容

  -C:指定展开位置

  -z:调用gzip格式压缩工具

  -j:调用bzip2格式压缩工具

  -J:调用xz格式压缩工具

  -v:详细地列出要处理的文件

2、在安装软件之前,我们需要先把开发包装上,来解决软件包依赖关系:

  [root@localhost~]# yum -y groupinstall "Development tools" "Server Platform Development""Desktop Platform Development"

  [root@localhost ~]# tar jxf httpd-2.2.21.tar.bz2     #解压软件包

  [root@localhost ~]# cd httpd-2.2.21       #切换到刚解压的软件包内

  [root@localhosthttpd-2.2.21]# ./configure --prefix=/usr/local/apache --enable-rewrite--enable-so           #编译前配置,后面有很多选项,可以根据自己需求来定

  [root@localhost httpd-2.2.21]#make && make install   #编译并安装

  [root@localhosthttpd-2.2.21]# ls /usr/local/apache/  #查看已成功安装并生成了文件

bin  build cgi-bin  conf  error htdocs  icons  include logs  man  manual modules lib

3、用源码包编译安装后,需要调整PATH环境变量、帮助文档、库文件及头文件,以便系统能够识别。

  (1)、把二进制文件“bin”目录加入到系统环境变量中,可以添加到”/etc/profile”

/etc/profile.d/*.sh”文件中,然后用”source”命令重新读取。还有就是可以直接使用“export”命令。export PATH="/usr/local/apache/bin:$PATH"

  [root@localhost ~]# echo "PATH=/usr/local/apache/bin:$PATH" >> /etc/profile

  [root@localhost ~]# source /etc/profile

  (2)、添加库文件到搜索路径”/etc/ld.so.conf””/etc/ld.so.conf.d/*.conf”

  [root@localhost ~]# echo "/usr/local/apache/lib" >> /etc/ld.so.conf

  [root@localhost ~]# ldconfig -v   #重新读取配置文件

  (3)、把帮助文档加入到系统搜索路径“/etc/man.conf”文件中

  将“MANPATH/usr/local/apache/man” 写入到”/etc/man.conf”文件中

  如果不加入到”/etc/man.conf”配置文件中可以使用”man –M /usr/local/apache/man httpd”指定man手册的路径

  (4)、将头文件加入到系统搜索路径中,可以使用”ln –s”来创建软链接的方式加入到”/usr/include”

   如:ln –s /usr/local/apache/include/ /usr/include/apache

  (5)、到此源码包安装软件一系列过程就大功告成了。接下来我们启动apache来测试一下:启动命令         apachectl [start|stop|restart] 分别为:启动/停止/重启

   启动apache: [root@localhost ~]#apachectl start

201527814.png

四、rpm源码包安装

1、下面以nginx-1.0.15-5.el6.src.rpm为例来介绍rpm源码包安装过程:

  [root@localhost ~]# yum -y install rpm-build      #安装rpm软件包制作工具

  [root@localhost ~]# useradd mockbuild            #添加用户,用户安装rpm源码包

  [root@localhost ~]# rpm -ivh nginx-1.0.15-5.el6.src.rpm #安装软件包会在用户家目录生成”rpmbuild”文件夹

  [root@localhost ~]# cd rpmbuild/SPECS/           #进入rpmbuild/SPECS文件夹,有一个nginx.spec是用来生成nginxrpm包文件

  [root@localhost SPECS]# ls

   nginx.spec

  [root@localhost SPECS]#rpmbuild -ba nginx.spec   #制作”nginx”rpm包,-ba选项会生成两个文件一个是rpm包二进制文件另一个是rpm源码包文件,而-bb只生成一个rpm二进制文件包。(这一步根据个人计算机环境,会有软件包依赖关系)

  [root@localhost ~]# ls rpmbuild/         #查看生成的rpm软件包在rpmbuild/RPMS文件夹下,而rpm源码包在SRPMS文件夹内

BUILD  BUILDROOT RPMS  SOURCES  SPECS SRPMS

  [root@localhost ~]# ls rpmbuild/RPMS/x86_64/    #查看生成的软件包

   nginx-1.0.15-5.el6.x86_64.rpm

  [root@localhost ~]# ls rpmbuild/SRPMS/

   nginx-1.0.15-5.el6.src.rpm

  [root@localhost x86_64]# rpm -ivh nginx-1.0.15-5.el6.x86_64.rpm #安装软件包

2、已经制作安装完成,接来下我们来启动测试一下是否正常(启动前要确定80端口没有被占用)。启动命令:    service nginx {start|stop|reload|status|restart}    分别为:启动、停止、重新加载、查看状态、重启

  [root@localhost x86_64]#service nginx start     #启动nginx成功

Starting nginx:                                           [  OK  ]

201954930.png

访问成功,那么我们rpm源码包安装也就告一段落到此结束。