一点一滴学Linux

    返回首页    发表留言
本文作者:李德强
          第五章 使用rpm命令安装软件包
 
 

一、安装软件包

        rpm套件管理员,简称rpm,全称为The RPM Package Manager。是在Linux下广泛使用的软件包管理器。rpm此名词可能是指.rpm的档案格式的软件包,也可能是指其本身的软件包管理器(RPM Package Manager)。最早由Red Hat研制,现在也由开源社区开发。rpm通常随附于Linux发行版,但也有单独将rpm作为应用软件发行的发行版(例如Gentoo)。rpm仅适用于安装用rpm来打包的软件,目前是GNU/Linux下软件包资源最丰富的软件包类型之一。rpm软件包分为二进制包(Binary)、源代码包(Source)和Delta包三种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。本教程主要介绍二进制rpm包的安装与管理。

        另外,使用rpm安装和移除rpm包时,需要有超级用户权限,可以使用root用户操作,也可以使用sudo来操作。如果使用sudo时,当前用户必须是管理员。

        安装一个rpm软件包可以使用-i参数:

rpm -i flash-plugin-11.2.202.332-release.x86_64.rpm

        可以使用-ivh来查看rpm软件包的安装进度:

rpm -ivh flash-plugin-11.2.202.332-release.x86_64.rpm 
Preparing...                             ################################# [100%]
Updating / installing...
  1:flash-plugin-11.2.202.332-release    ################################# [100%]
NOTICE:
Files belonging to older Flash plugins have been removed from the filesystem.  For your safety these files have been saved in /root/oldflashplugins.tar.gz.  You may remove this tarball if these files are no longer required.

二、移除软件包

        想要移除一个已经安装的rpm软件包可以使用-e参数:

rpm -e flash-plugin-11.2.202.332-release.x86_64

        可以使用-evh来查看rpm软件包的移除进度:

rpm -evh flash-plugin-11.2.202.332-release.x86_64
Preparing...                             ################################# [100%]
Cleaning up / removing...
  1:flash-plugin-11.2.202.332-release    ################################# [100%]

三、升级软件包

        升级一个rpm软件包可以使用-U参数:

rpm -U flash-plugin-11.2.202.332-release.x86_64.rpm

        可以使用-Uvh来查看rpm软件包的升级进度:

rpm -Uvh flash-plugin-11.2.202.332-release.x86_64.rpm 
Preparing...                              ################################# [100%]
Updating / installing...
  1:flash-plugin-11.2.202.332-release    ################################# [100%]
NOTICE:
Files belonging to older Flash plugins have been removed from the filesystem.  For your safety these files have been saved in /root/oldflashplugins.tar.gz.  You may remove this tarball if these files are no longer required.

四、搜索已安装软件包

        使用rpm -aq可以查看所有已安装的软件包,配合grep可以查找到相关rpm软件包:

rpm -aq | grep flash

        搜索所有带有player的rpm软件包:

rpm -aq | grep player
media-player-info-17-5.fc21.noarch
gnome-mplayer-nautilus-1.0.9-3.20150203svn2476.fc21.x86_64
kmplayer-0.11.3c-7.fc21.x86_64
smplayer-14.9.0.6690-1.fc21.x86_64
mplayer-1.1-32.20150123svn.fc21.x86_64
gnome-mplayer-1.0.9-3.20150203svn2476.fc21.x86_64
gnome-mplayer-minimal-1.0.9-3.20150203svn2476.fc21.x86_64
gnome-mplayer-common-1.0.9-3.20150203svn2476.fc21.x86_64
mplayer-common-1.1-32.20150123svn.fc21.x86_64
gnome-mplayer-nemo-1.0.9-3.20150203svn2476.fc21.x86_64

五、查看rpm软件包

        安装了一个rpm包,那么它被安装到了哪里?它内部都有什么文件呢?可以使用-ql来查看一个已经安装好的了rpm包:

rpm -ql vim-X11-7.4.475-2.fc21.x86_64
/usr/bin/evim
/usr/bin/gex
/usr/bin/gview
/usr/bin/gvim
/usr/bin/gvimdiff
/usr/bin/gvimtutor
/usr/bin/vimx
/usr/share/applications/gvim.desktop
/usr/share/icons/hicolor/16x16/apps/gvim.png
/usr/share/icons/hicolor/32x32/apps/gvim.png
/usr/share/icons/hicolor/48x48/apps/gvim.png
/usr/share/icons/hicolor/64x64/apps/gvim.png
/usr/share/man/man1/evim.1.gz

        可以看到一个rpm包里面的文件是被安装到不同的目录下,而不是将这所有的文件放在同一个目录下。

六、rpm安装时重定位

        在rpm安装时也可以使用—prefix=[path]这样的命令将它内部的文件统一安装到这个目录下,比如:

rpm -ivh gimp-2.8.8-3.fc21.x86_64.rpm –prefix=/usr/local/gimp-2.8.8
Preparing...                          ################################# [100%]
Updating / installing...
  1:gimp-2.8.8-3.fc21.x86_64.rpm      ################################# [100%]

        再使用rpm -al查看就可以看到gimp里所有的文件都被安装到了/usr/local/gimp-2.8.8目录下:

rpm -ql gimp-2.8.8.fc21.x86_64
/usr/local/gimp-2.8.8/etc/gimp
/usr/local/gimp-2.8.8/etc/gimp/2.0
/usr/local/gimp-2.8.8/etc/gimp/2.0/gimprc
/usr/local/gimp-2.8.8/etc/gimp/2.0/gtkrc
/usr/local/gimp-2.8.8/usr/bin/gimp
/usr/local/gimp-2.8.8/usr/bin/gimp-2.8
/usr/local/gimp-2.8.8/usr/bin/gimp-console
/usr/local/gimp-2.8.8/usr/lib64/gimp
/usr/local/gimp-2.8.8/usr/lib64/gimp/2.0
/usr/local/gimp-2.8.8/usr/lib64/gimp/2.0/environ

        在安装rpm时,常常会遇到rpm软件包的依赖问题。就是说这个A.rpm依赖于另外一个B.rpm包。所以要先安装B.rpm再安装A.rpm。问题是当安装B.rpm时,它又依赖于另一个叫C.rmp的软件包。当然可以使用--nodeps参数来强制安装,但是这样就会导致很多rpm运行不正常。所以也不推荐这样忽略rpm依赖并强制安装的办法。

        rpm依赖问题常常会出现,手动的下载,安装和解决rpm依赖问题往往是很费时费力的,所以在下一章将会介绍一种可以自动解决rpm依赖问题的安装办法。

    返回首页    返回顶部
  看不清?点击刷新

 

  Copyright © 2015-2018 问渠网 辽ICP备15013245号