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. Cache-Control头

    介绍 Cache-Control头在HTTP中有一定的难度,第一它既可以用于请求头,也可以用于响应头(这里主要将响应缓存).第二,它控制着两个缓存,本地缓存:指客户端本地及其中的缓存(大多指浏览器缓存 ...

  2. mina在spring中的配置多个端口

    本次练习中是监听2个端口 applicationContext-mina.xml: <?xml version="1.0" encoding="UTF-8" ...

  3. pom.xm首行报错Failure to transfer org.codehaus.plexus:plexus-components:pom:1.1.20

    从SVN导出一个Maven项目,pom.xml首行报错: Failure to transfer org.codehaus.plexus:plexus-components:pom:1.1.20 fr ...

  4. Spring学习十一

    一:  创建bean的方法: 1: 如果不采用构造注入:默认调用bean的无参构造函数,因此该类必须要提供无参构造函数,用无参构造函数用反射创建bean. :               如果采用构造 ...

  5. CUDA编程接口:异步并发执行的概念和API

    1.主机和设备间异步执行 为了易于使用主机和设备间的异步执行,一些函数是异步的:在设备完全完成任务前,控制已经返回给主机线程了.它们是: 内核发射; 设备间数据拷贝函数; 主机和设备内拷贝小于64KB ...

  6. CentOS 6.3安装jdk(笔记整理)

    1. 下载bin文件,切忌oracle上现在下载到的旧版本的jdk的bin都是网页(执行会报错,见本文最后的截图),他们需要登录oracle后才能下载,所以我这里的url是从googlecode里觅来 ...

  7. 企业级搜索引擎Solr 第三章 索引数据(Indexing Data)

    虽然本书中假设你要建索引的内容都是有着良好结构的,比如数据库表,XML文件,CSV,但在现实中我们要保存很混乱的数据,或是二进制文件,如PDF,Microsoft Office,甚至是图片和音乐文件. ...

  8. Android LayoutInflater学习

    在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById().不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例 ...

  9. 【总结整理】arcgis js api的Map类

    关于ArcGis for javascrept之Map类   ArcGis for javascrept_ESRI_Map类:  1. 构造方法:esri.Map(); 参数: extent 如果设置 ...

  10. SqlServer中把结果集放到到临时表的方法(转)

    一. SELECT INTO   1. 使用select into会自动生成临时表,不需要事先创建   select * into #temp from sysobjects   01. 把存储过程结 ...