linux rpm包 安装 升级 卸载 查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux rpm包 安装 升级 卸载 查询相关的知识,希望对你有一定的参考价值。

RPM是 “Redhat Package Manager” 的缩写,根据名字也能猜到这是Redhat公司开发出来的。RPM 是以一种数据库记录的方式来将您所需要的套件安装到您的Linux 主机的一套管理程序。也就是说,您的linux系统中存在着一个关于RPM的数据库,它记录了安装的包以及包与包之间依赖相关性。RPM包是预先在linux机器上编译好并打包好的文件,安装起来非常快捷。但是也有一些缺点,比如安装的环境必须与编译时的环境一致或者相当;包与包之间存在着相互依赖的情况;卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。

如果您的光驱中还有系统安装盘的话,我们可以通过 mount /dev/cdrom /mnt 命令把光驱挂载到/mnt目录下,那么您会在/mnt/Packages目录下看到很多.rpm的文件,这就是RPM包了。

[[email protected] ~]# mount /dev/cdrom /mnt/

mount: block device /dev/sr0 is write-protected, mounting read-only

[[email protected] ~]# ls /mnt/

CentOS_BuildTag  Packages                    RPM-GPG-KEY-CentOS-Security-6

EULA             RELEASE-NOTES-en-US.html    RPM-GPG-KEY-CentOS-Testing-6

GPL              repodata                    TRANS.TBL

images           RPM-GPG-KEY-CentOS-6

isolinux         RPM-GPG-KEY-CentOS-Debug-6

[[email protected] ~]# ls /mnt/Packages/|head

389-ds-base-1.2.11.15-11.el6.i686.rpm

389-ds-base-libs-1.2.11.15-11.el6.i686.rpm

abrt-2.0.8-15.el6.centos.i686.rpm

abrt-addon-ccpp-2.0.8-15.el6.centos.i686.rpm

abrt-addon-kerneloops-2.0.8-15.el6.centos.i686.rpm

abrt-addon-python-2.0.8-15.el6.centos.i686.rpm

abrt-cli-2.0.8-15.el6.centos.i686.rpm

abrt-desktop-2.0.8-15.el6.centos.i686.rpm

abrt-gui-2.0.8-15.el6.centos.i686.rpm

abrt-libs-2.0.8-15.el6.centos.i686.rpm

每一个rpm包的名称都由 - 和 . 分成了若干部分。就拿 “abrt-cli-2.0.8-15.el6.centos.i686.rpm” 这个包来解释一下, “abrt-cli” 为包名, “2.0.8” 则为版本信息, “15.el6.centos” 为发布版本号, “i686” 为运行平台。其中运行平台常见的有i386, i586, i686, x86_64 ,需要您注意的是cpu目前是分32位和64位的,i386,i586和i686都为32位平台,x86_64则代表为64位的平台。另外有些rpm包并没有写具体的平台而是noarch,这代表这个rpm包没有硬件平台限制。例如 “alacarte-0.10.0-1.fc6.noarch.rpm”. 下面介绍一下rpm常用的命令。

  1. 安装一个rpm包

[[email protected] ~]# rpm -ivh /mnt/Packages/libjpeg-turbo-devel-1.2.1-1.el6.i686.rpm

Preparing...                ########################################### [100%]

   1:libjpeg-turbo-devel    ########################################### [100%]

“-i” : 安装的意思

“-v” : 可视化

“-h” : 显示安装进度

另外在安装一个rpm包时常用的附带参数有:

--force : 强制安装,即使覆盖属于其他包的文件也要安装

--nodeps : 当要安装的rpm包依赖其他包时,即使其他包没有安装,也要安装这个包

  1. 升级一个rpm包

命令 rpm -Uvh filename

“-U” : 即升级的意思

  1. 卸载一个rpm包

命令 rpm -e filename

这里的filename是通过rpm的查询功能所查询到的,稍后会作介绍。

[[email protected] ~]# rpm -qa |grep libjpeg-turbo-devel

libjpeg-turbo-devel-1.2.1-1.el6.i686

[[email protected] ~]# rpm -e libjpeg-turbo-devel

卸载时后边跟的filename和安装时的是有区别的,安装时是把一个存在的文件作为参数,而卸载时只需要包名即可。

  1. 查询一个包是否安装

命令 rpm -q rpm包名 (这里的包名,是不带有平台信息以及后缀名的)

[[email protected] ~]# rpm -q libjpeg-turbo-devel

package libjpeg-turbo-devel is not installed

[[email protected] ~]# rpm -ivh /mnt/Packages/libjpeg-turbo-devel-1.2.1-1.el6.i686.rpm

Preparing...                ########################################### [100%]

   1:libjpeg-turbo-devel    ########################################### [100%]

[[email protected] ~]# rpm -q libjpeg-turbo-devel

libjpeg-turbo-devel-1.2.1-1.el6.i686

我们可以使用 rpm -qa 查询当前系统所有安装过的rpm包,限于篇幅,阿铭只列出前十个。

[[email protected] ~]# rpm -qa |head

plymouth-core-libs-0.8.3-27.el6.centos.i686

xml-common-0.6.3-32.el6.noarch

sgpio-1.2.0.10-5.el6.i686

iso-codes-3.16-2.el6.noarch

gnome-vfs2-2.24.2-6.el6.i686

libX11-common-1.5.0-4.el6.noarch

curl-7.19.7-35.el6.i686

ca-certificates-2010.63-3.el6_1.5.noarch

cups-libs-1.4.2-48.el6_3.3.i686

kbd-misc-1.15-11.el6.noarch
  1. 得到一个已安装rpm包的相关信息

命令 rpm -qi 包名 (同样不需要加平台信息与后缀名)

[[email protected] ~]# rpm -qi libjpeg-turbo-devel

Name        : libjpeg-turbo-devel          Relocations: (not relocatable)

Version     : 1.2.1                             Vendor: CentOS

Release     : 1.el6                         Build Date: 2013年02月22日 星期五 06时49分08秒

Install Date: 2013年05月13日 星期一 01时37分48秒      Build Host: c6b9.bsys.dev.centos.org

Group       : Development/Libraries         Source RPM: libjpeg-turbo-1.2.1-1.el6.src.rpm

Size        : 321085                           License: wxWidgets

Signature   : RSA/SHA1, 2013年02月24日 星期日 01时53分55秒, Key ID 0946fca2c105b9de

Packager    : CentOS BuildSystem <http://bugs.centos.org>

URL         : http://sourceforge.net/projects/libjpeg-turbo

Summary     : Headers for the libjpeg-turbo library

Description :

This package contains header files necessary for developing programs which

will manipulate JPEG files using the libjpeg-turbo library.
  1. 列出一个rpm包安装的文件

命令 rpm -ql 包名

[[email protected] ~]# rpm -ql libjpeg-turbo-devel

/usr/include/jconfig.h

/usr/include/jerror.h

/usr/include/jmorecfg.h

/usr/include/jpeglib.h

/usr/lib/libjpeg.so

/usr/share/doc/libjpeg-turbo-devel-1.2.1

/usr/share/doc/libjpeg-turbo-devel-1.2.1/coderules.txt

/usr/share/doc/libjpeg-turbo-devel-1.2.1/example.c

/usr/share/doc/libjpeg-turbo-devel-1.2.1/jconfig.txt

/usr/share/doc/libjpeg-turbo-devel-1.2.1/libjpeg.txt

/usr/share/doc/libjpeg-turbo-devel-1.2.1/structure.txt

通过上面的命令可以看出文件 “/usr/lib/libjpeg.so” 是通过安装 “libjpeg-turbo-devel” 这个rpm包得来的。那么反过来如何通过一个文件去查找是由安装哪个rpm包得来的?

  1. 列出某一个文件属于哪个rpm包

命令 rpm -qf 文件的绝对路径

[[email protected] ~]# rpm -qf /usr/lib/libjpeg.so

libjpeg-turbo-devel-1.2.1-1.el6.i686


本文出自 “Linux菜鸟” 博客,请务必保留此出处http://490617581.blog.51cto.com/11186315/1757810

以上是关于linux rpm包 安装 升级 卸载 查询的主要内容,如果未能解决你的问题,请参考以下文章

Linux下安装与卸载工具(三种方法)

linux 软件安装

Linux rpm -e卸载命令e是哪个单词

[Linux] 021 RPM 包的安装升级与卸载

Linux之RPM包管理_安装升级与卸载

Linux安装及管理程序精讲