日期:2014-05-16  浏览次数:20628 次

Linux学习记录--软件安装RPM|SRPM|YUM

软件安装RPM|SRPM|YUM


前面说到了软件安装可以直接下载源码压缩版编译安装。还有一种安装形式是使用厂商提供给用户的安装文件。厂商在他们的系统上编译好用户所需要的软件,然后将编译好的软件发布给用户使用。

 

目前厂商发布软件机制主要分为2大类

Dpkg:由Debian Linux社区开发,B2D,Ubantu等Linuxdistributions使用就是这种机制

RPM:由Red Hat开发,CentOs,SuSe使用就是这种机制

这两种机制安装软件会先检测前驱软件是否存在,如果不存在则不安装.如软件A安装。需系统内含有软件B,那么不存在则不会安装软件B

 

为了解决这种因依赖问题而导致软件不能安装厂商又提供了在线升级机制,简单的说就是先将前驱软件都安装以保证要安的软件能正确安装

 

Dpkg机制对应的在线升级机制APT

RPM机制对应的在线升级机制YUM

 

RPM软件管理程序


Rpm软件相关信息会写入/var/lib/rpm目录下的数据库文件内,未来软件升级以及版本比较都源自这个数据库,查询已安装RPM软件也会查询这个数据库

 

RPM安装与升级

前面提到过RPM软件的安装前会检查前驱依赖的软件是否已安装,如果为安装则此次安装不会进行,同时需要说明PRM机制软件是厂商根据特定系统所提供,因此不同的Linux distributions,以及不同版本之间PRM机制软件是不能相互安装的

 

语法:rpm –[i|F|U]vh软件名

选项与参数

-i: 安装

-U:后接的软件如果没有安装过则安装,如果安装过且版本较旧则更新

-F:后接的软件如未安装则不进行安装,如果安装过且版本较旧则更新

-v:查看详细安装信息

-h:显示安装进度

 

举例1:安装

[root@localhost ~]# 
rpm -ivh /media/CentOS_5.10_Final/CentOS/pam-devel-0.99.6.2-12.el5.i386.rpm 
Preparing...                ########################################### [100%]
   1:pam-devel              ########################################### [100%]

举例2:存在依赖的安装
[root@localhost ~]# rpm -i /media/CentOS_5.10_Final/CentOS/ant17-junit-1.7.1-1jpp.0.i386.rpm
error: Failed dependencies:
        ant17 = 0:1.7.1-1jpp.0 is needed by ant17-junit-1.7.1-1jpp.0.i386
        junit is needed by ant17-junit-1.7.1-1jpp.0.i386
=>提示其前驱软件为安装

RPM查询


语法: rpm –qa

rpm –q[iR] 存在于系统的软件名

rpm –qf 存在于系统的某个文件名

rpm -qp[iR] 未安装的某个文件名

 

-q:进查询后面接的软件名是否安装

-qa:列出所有已安装的软件信息

-qi :列出后面接软件的详细信息

-qR:列出与该软件有关的依赖软件所含的文件

-qf:由后面接的文件名称找出还文件属于哪一个以安装的软件

 

查询某个未安装软件包含文件的信息

-qp[iR]:iR属于与上面说的一致

[root@localhost ~]# rpm -q pam-devel =>不需要列出版本号
pam-devel-0.99.6.2-12.el5

[root@localhost ~]# rpm -qi pam-devel
Name        : pam-devel                    Relocations: (not relocatable)
Version     : 0.99.6.2                          Vendor: CentOS
Release     : 12.el5                        Build Date: 2013年01月09日星期三 13时30分55秒
Install Date: 2014年04月08日星期二 14时19分02秒      Build Host: builder17.centos.org
Group       : Development/Libraries         Source RPM: pam-0.99.6.2-12.el5.src.rpm
Size        : 504034                           License: GPL or BSD
Signature   : DSA/SHA1, 2013年01月10日星期四 03时18分55秒, Key ID a8a447dce8562897
URL         : http://www.us.kernel.org/pub/linux/libs/pam/index.html
Summary     : Files needed for developing PAM-aware applications and modules for PAM
Description :
PAM(可插入验证模块)是一个系统安全工具。它允许
系统管理员无需重新编译处理验证的程序而设置验证
策略。该软件包包括用于建构留意 PAM 的程序和 PAM
使用的模块所需的头文件和静态库。

[root@localhost ~]# rpm -qR pam-devel
libpam.so.0  
libpam_misc.so.0  
libpamc.so.0  
pam = 0.99.6.2-12.el5
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1

[root@localhost ~]# rpm -qf /usr/lib/libpam.so
pam-devel-0.99.6.2-12.el5

[root@localhost ~]# rpm –qa
tomcat5-servlet-2.4-api-5.5.23-0jpp.40.el5_9
xml-commons-resolver-1.1-1jpp.12
…..

RPM卸载与重建数据库


卸载:rpm –e 软件名

重建数据库:rpm