Red Hat Package Manager(简称RPM)工具包由于其使用简单操作方便,可以实现软件的查询、安装、卸载、升级和验证等功能,为Linux使用者节省大量的时间,所以被广泛的用于Linux下安装、删除软件。RPM命令详细说明可以在Linux终端使用man命令显示出来。

1)查询RPM软件包

在新软件安装之前,一般都要先查看一下这个软件包里有什么内容。RPM软件包的查询使用带参数-q的rpm命令实现的,系统将会列出待查询软件包的详细资料,包括含有多少个文件、各文件名称、文件大小、创建时间、编译日期等信息。RPM软件包查询命令的格式如下:

rpm {-q|--query} [select-option] [query-option]

(1)查询文件所属软件包

rpm -qf /usr/share/pixmaps/Xplns.png

xplns-3.3.1-lglibc23

(2)查询软件包所包含的文件列表

rpm -ql xplns-3.3.1-lglibc23

(3)查询软件包概要信息

rpm -qi xplns-elm-3.3.1-1

(4)查询所有已经安装的软件包

rpm -qa

2)RPM软件包的安装

软件包查询完成以后,用户就可以进行软件的实际安装了。使用带参数-i的rpm命令可以实现RPM软件包的安装,其命令格式如下:

rpm -i ( or --install) options file1.rpm ... fileN.rpm

(1)普通安装:使用最多的安装方式,采用一般的安装参数ivh,表示显示附加信息和安装进度的#符号的安装方式。

rpm -ivh xplns-elm-3.3.1-1.i386.rpm

(2)测试安装:测试安装其实并未实际安装

rpm -i --test xplns-elm-3.3.1-1.i386.rpm

(3)强制安装:强制安装软件,忽略软件包依赖性以及文件的冲突。如果对软件包的依赖性很清楚,而且确定要忽视文件的冲突,可以选择强制安装。不建议使用这个安装方式。

rpm -ivh --force xplns-elm-3.3.1-1.i386.rpm

3)RPM软件包安装可能出现的问题

(1)重复安装

如果用户的软件包已经被安装,将会出现以下的信息。

rpm -ivh xplns-elm-3.3.1-1.i386.rpm

foo package foo-1.0-1 is already installed

error: xplns-elm-3.3.1-1.i386.rpm cannot be installed

如果用户仍然要安装该软件包,可以在命令行上使用--replacepkgs选项,RPM将忽略该错误信息强行安装

(2)文件冲突

如果用户要安装的软件包中有一个文件已经在安装其他软件包时安装,会出现以下的错误信息。

rpm -ivh xplns-elm-3.3.1-1.i386.rpm

foo /usr/bin/foo conflicts with file from bar-1.0-1

error: xplns-elm-3.3.1-1.i386.rpm cannot be installed

要想让RPM忽略该错误信息,请使用--replacefiles命令行选项

(3)依赖关系

RPM软件包可能依赖于其他软件包,也就是说要求在只有安装特定的软件包之后才能正常安装该软件包。如果在用户安装某个软件包时存在这种未解决的依赖关系,会产生以下信息。

rpm -ivh bar-1.0-1.i386.rpm

failed dependencies:foo is needed by bar-1.0-1

用户必须先安装完所依赖的软件包,才能解决这个问题。如果用户想强制安装,请使用--nodeps命令行选项,不推荐Linux初学者使用。

4)RPM软件包的卸载

如果某个软件安装后不再需要,或者为了腾出空间,则可以卸载该软件。RPM同样也提供软件卸载的功能。卸载RPM软件包的命令的格式如下:

rpm -e rpm_name

需要注意的是,这里的rpm_name是软件包的名称,而不是软件包的文件名。如下所示:

rpm -e xplns-elm

另外,如果其他软件包依赖于用户要卸载的软件包,卸载时则会产生类似如下的错误信息:

removing these packages would break dependencies: foo is needed by bar-1.0-1

如果需要忽略这个错误,并继续卸载,可以使用--nodeps命令行选项进行强制卸载。通常并不提倡强制卸载,因为强制卸载后依赖于该软件包的程序可能无法正常运行。

5)RPM软件包的升级

升级软件包用于较新的版本软件包替代旧版本软件包,应使用带-U参数的RPM命令完成,其命令格式如下:

rpm -U options file1.rpm ... fileN.rpm

其中,-U参数表明需要更新软件,options是一些其他的参数选项,file.rpm到fileN.rpm指明需要升级的软件包名称。

例如需要更新系统中的xplns-elm软件,方法如下所示。

rpm -Uvh xplns-elm-3.3.1-1.i386.rpm

RPM将自动卸载已经安装的老版本的xplns-elm软件包,用户不会看到有关信息。事实上用户可以总是使用-U来安装软件包,因为即便以往未安装过该软件包,也能正常运行。

最后附上url:  http://www.rpm.org/

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

Welcome to rpm.org

     enjoy

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

RPM软件包管理以及使用方法的更多相关文章

  1. 逐步搭建Lamp环境之rpm软件包管理

    Linux中的rpm软件包管理类似于windows下的"xxx软件管家"."xxx电脑管家",其作用主要用于查询软件的安装情况.安装软件.卸载软件. 以下针对这 ...

  2. CentOS软件管理之源代码以及RPM软件包管理

    在Linux系统下,对于软件包的管理有多种机制,有源代码方式.RPM软件包管理方式以及YUM软件管理方式,本篇随笔将详细讲解CentOS下源代码形式安装软件以及RPM软件包管理机制 一.源代码形式 首 ...

  3. linux RPM软件包管理

    linux RPM软件包管理 目录 1.软件包的介绍 2.rpm包管理 3.rpm包管理前端工具 1.软件包的介绍 在我们在对软件包管理前,先对软件包有个很好的了解,这样更方便我们来对其进行管理. 软 ...

  4. RPM软件包管理的查询功能 转

    RPM软件包管理的查询功能: 命令格式 rpm {-q|--query} [select-options] [query-options] RPM的查询功能是极为强大,是极为重要的功能之一:举几个常用 ...

  5. Linux - rpm 软件包管理

    rpm 是 Red-Hat Package Manager(rpm 软件包管理器)的缩写 rpm 的命名规则: 第一部分为 rpm 软件包的名称,第二部分是版本号,第三部分是版本发布次数,第四部分是软 ...

  6. linux常用命令---rpm软件包管理

    rpm软件包管理

  7. day61:Linux:权限管理&rpm软件包管理&yum工具

    目录 1.权限管理 2.rpm软件包管理 3.yum工具(联网) 权限管理 1.什么是权限? 权限主要用来约束用户能对系统所做的操作 2.为什么要使用权限? 因为系统中不可能只存在一个root用户,一 ...

  8. Fedora 22中的RPM软件包管理工具

    Introduction The RPM Package Manager (RPM) is an open packaging system that runs on Fedora as well a ...

  9. linux的RPM软件包管理工具

    RPM(Redhat Package Manage)原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他发行版的采 ...

随机推荐

  1. Java基础--枚举Enum

    Java中的枚举是一种特殊的类,可以将一组固定常量的集合组成一种类型,使用方便且类型安全.使用enum关键字定义. enum类型父类为Enum,通过Enum.class可见Enum为抽象类,实现了Co ...

  2. Oracle之into

    ), NVL() INTO SALE_ID, STORE_ID FROM SALEFROMSTORE WHERE ORDERID = IN_ORDER_ID; 这里要注意,into的时候是一个sele ...

  3. 关于java中getClass()和getSuperClass()的讲解

    为了讲解这个问题,我们先来看一下下面的代码: package com.yonyou.test; import java.util.Date; class Test extends Date{ priv ...

  4. PHP类(一)-类的实例化

    类的实例化就是对象.一个类可以分成两个部分,一个是静态描述,就是类里的成员属性.第二个是动态描述,就是类里的成员方法,也就是对象的功能. 声明一个类,可以在class前加一些关键字,如abstract ...

  5. Drools学习笔记1—规则文件

    Facts(即普通的POJO) 指普通业务对象插入到Workingmemory后的对象规则可以对fact对象进行任意的对象操作是规则与应用系统交换的桥梁返回FactHandler对象,是插入到Work ...

  6. 破解Mac版MyEclipse-2017-ci3 2017、11、21亲测有效

    一.前提 要有安装好的jdk,没有的Mac用户看这篇博客:给Mac安装最新版本的jdk(戳此)  Windows用户先去官网(戳此)下载jdk,然后百度”jdk配置环境变量”(戳此),很简单的,加油你 ...

  7. SqlServer——游标

    参考:http://www.cnblogs.com/94cool/archive/2010/04/20/1715951.html  http://www.cnblogs.com/moss_tan_ju ...

  8. 使用Javascript Ajax 通信操作JSON数据 [下]

    上一篇文章我们获得后台数据库的数据后转换成json格式然后返回到前台,但只是返回的一位数组,这次我们返回二维和三维数组和对象. 前台代码shizhan.html: <!DOCTYPE html& ...

  9. PCL—关键点检测(NARF)低层次点云处理

    博客转载自:http://www.cnblogs.com/ironstark/p/5051533.html 关键点检测本质上来说,并不是一个独立的部分,它往往和特征描述联系在一起,再将特征描述和识别. ...

  10. 关于 block的一些浅识

    block的定义:“带自动变量的匿名函数” (一)写法: ^ void (int iAge){ NSLog(@"%d", iAge);}; 和C函数写法区别在于: 1) :以插入符 ...