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. Swing编程中为什么对Panel设置了位置后,它的lable位置也跟这变了呢?

    总结: package com.da; //这里我不明白,我对每一个Panle里的按钮设置了位置BorderLayout.SOUTH.可是为什么Lable的位置和它一样同步设置了呢? //做一个界面 ...

  2. Java多线程中的常用方法

    本文将带你讲诉Java多线程中的常用方法   Java多线程中的常用方法有如下几个 start,run,sleep,wait,notify,notifyAll,join,isAlive,current ...

  3. 高效C#编码优化

    1.foreach VS for 语句 Foreach 要比for具有更好的执行效率Foreach的平均花费时间只有for的30%.通过测试结果在for和foreach都可以使用的情况下,我们推荐使用 ...

  4. MFC简单的橡皮筋程序

    void CMainWindow::OnLButtonDown(UINT nFlags,CPoint point) { //以下三个是在CMainWindow中定义 m_ptFrom=point; m ...

  5. numpy.percentile

    http://docs.scipy.org/doc/numpy/reference/generated/numpy.percentile.html numpy.percentile(a, q, axi ...

  6. 部署和调优 1.5 vsftp部署和优化-1

    系统自带的ftp服务软件.vsftpd 安装vsftpd yum install -y vsftpd 启动vsftpd /etc/init.d/vsftpd start 如果启动失败,可能是端口被占用 ...

  7. 一个servlet处理多个请求(使用Method的反射机制)

    方法一 可以通过在请求的时候加上参数,然后在servlet中获取请求的参数,再去调用对应的方法.达到一个servlet处理多个请求的目的 test.jsp: <%@ page language= ...

  8. 关联查询 join的使用

    #!/usr/bin/env python import sqlalchemy from sqlalchemy import create_engine from sqlalchemy.ext.dec ...

  9. solr replication原理探究

    原文出自:http://sbp810050504.blog.51cto.com/2799422/1423199 无论是垂直搜索,还是通用搜索引擎,对外提供搜索服务其压力都比较大,经常有垂直电商在做活动 ...

  10. Swing界面组件的通用属性

    ----------------siwuxie095                             Swing 界面组件(控件)的通用属性:         (1)enabled:启用/禁用 ...