linux亦步亦趋(25)RPM软件包管理

任何操作系统都属于系统软件,我们使用这个操作系统的时候肯定需要运行在该系统上的应用软件,比如我们使用win7系统我们不可能只开机,不干别的啊,比如我们要使用word,excel,qq等,这些软件。linux操作系统也是一样的,我们需要安装各种各样的然间来满足我们的服务器需求。因此我们需要进行软件包的管理。

也就是对软件的查看,升级,卸载,安装等操作。目前linux操作系统中常用的安装工具是RPM和YUM两个工具。我们将依次来认识这两个东东。

初识RPM

rpm最早是用redhat公司开发的一个二进制的软件管理格式,后来被各个linux版本所使用,现在几乎是所有linux操作系统的标配,系统安装的时候就进行了安装(大多数的redhat系列的,其他的就不知道鸟。。。)。

我们看看man rpm这个命令的结果先:

    rpm - RPM Package Manager

结果很扫兴吧,该命令里面有个名词就是rpm,该名词也就是上面说的是一种安装文件的组织格式。

从rpm命令的解释来看,rpm这个命令是来管理rpm这种格式的安装包和程序的。在学习rpm命令前我们先学习一下rpm这种格式的文件的特点:

在研究rpm包的特点前我们应该有这么个文件才行啊,因此我们想到了安装光盘。下面是我们将安装光盘挂到虚拟机上的过程。

安装光盘挂载到虚拟机系统

  • 虚拟机-右键选择设置-光盘设置-连接到-指定iso文件-确定。整个过程如图:

  • 上述步骤完成后我们还需将光盘mount到一个目录,这个我们在后面还会介绍到,命令是:mount /dev/cdrom   /加载的目录

这样我们就能在加载的目录里面访问光盘了,整个步骤如下:

  • [root@localhost mnt]# mount /dev/cdrom /mnt/cdrom
    mount: 找不到介质  ##这是因为我们的光盘没有加载成功,也就是虚拟机的设置没有成功。加载后再执行mount命令就好了。
    [root@localhost mnt]# 
    [root@localhost mnt]# mount /dev/cdrom /mnt/cdrom
    mount: block device /dev/cdrom is write-protected, mounting read-only
    [root@localhost mnt]# 

查看安装盘里的rpm包

安装光盘加载好了以后我们就可以查看一下里面的rpm包了,会多的惊人的。

  • 进入到我们的挂在目录也就是/mnt/cdrom里面。整个过程如下:
  • [root@localhost CentOS]# pwd
    /mnt/cdrom/CentOS  ##进入这个目录 该目录下是系统安装的rpm包的存放目录,
    [root@localhost CentOS]# 
    [root@localhost CentOS]# ls -l | grep ".rpm$" |wc -l
    2599  ##经过统计可以发现.rpm的文件个数多大2599个啊,惊讶不!!
    [root@localhost CentOS]# 
  • 我们已经看到了大量的rpm包,我们随便找两个文件就会发现大多数的文件的特点,比如:
-rw-r--r-- 1 root root 234772 2010-04-27 sudo-1.7.2p1-5.el5.i386.rpm
[root@localhost CentOS]# ls -l tar-1.15.1-30.el5.i386.rpm 
-rw-r--r-- 1 root root 765338 2010-04-27 tar-1.15.1-30.el5.i386.rpm
[root@localhost CentOS]# 
都有 红  蓝 绿 橙 几个部分组成,
  •  rpm包的名字解释,
  • 红色是软件名称,这个很重要我们要经常使用,比如tar,
  • 蓝色是版本号的名字,
  • 绿色是发行号,一个版本多次发行。
  • 橙色是平台的名字 i386指的32位的intel架构主机,常见的还有i686 、x86_64、noarch(指通用与硬件架构无关)、
  • rpm结尾就不解释啦。

使用rpm卸载程序

使用rpm -e  软件名称 卸载软件。如下: 注意sudo是软件名。常用的选项有 --nodeps  忽略依赖性进行强制卸载。格式如:rpm -e --nodeps 软件名

[root@localhost CentOS]# rpm -e sudo
[root@localhost CentOS]# 
##上面就是卸载成功啦。
[root@localhost CentOS]# rpm -e --nodeps sudo
[root@localhost CentOS]# 

使用rpm安装程序

常用命令格式:rpm -ivh 软件包名,i表示安装即install、v表示显示详细信息即view、h表示hash即井号,表示进度条。举例如下:,

  • 常用选项也有--nodeps 这个选项最好不要用,因为经常会导致软件不能使用。
  • --excludedocs  不安装帮助文档
  • --prefix PATH 指定安装目录,大多数没用,因为rpm包不支持自定义安装路径。
  • --test  只测试,比如环境,依赖性等,并不实际安装。经常使用。
  • --repackage 覆盖安装  常用于不卸载的情况下重新安装。
  • --replacefiles 覆盖文件 常用语文件冲突。
  • --nodeps  忽略依赖关系。大多数我们会遇到依赖问题,但是又不能想当然的使用该选项,因此依赖问题是很头疼的rpm问题。
[root@localhost CentOS]# rpm -ivh sudo-1.7.2p1-5.el5.i386.rpm 
warning: sudo-1.7.2p1-5.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
Preparing...                ########################################### [100%]
   1:sudo                   ########################################### [100%]
[root@localhost CentOS]# 

使用rpm进行软件升级:

命令格式: rpm -Uvh 软件包名

例子如下:

[root@localhost CentOS]# rpm -Uvh sudo-1.7.2p1-5.el5.i386.rpm 
warning: sudo-1.7.2p1-5.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
Preparing...                ########################################### [100%]
        package sudo-1.7.2p1-5.el5.i386 is already installed
[root@localhost CentOS]#

使用rpm查询软件是否安装

常用命令格式:

     rpm -q 软件名  将返回是否安装及安装的包的全称;

     rpm -qa | grep 关键字;这个命令是列出全部然后过滤。

[root@localhost CentOS]# rpm -q sudo
sudo-1.7.2p1-5.el5
[root@localhost CentOS]# rpm -q tar
tar-1.15.1-30.el5
[root@localhost CentOS]# 
[root@localhost CentOS]# rpm -q hah
package hah is not installed
[root@localhost CentOS]# 
[root@localhost CentOS]# rpm -qa | grep zip
bzip2-1.0.3-4.el5_2
gzip-1.3.5-11.el5.centos.1
zip-2.31-2.el5
bzip2-libs-1.0.3-4.el5_2
unzip-5.52-3.el5
You have new mail in /var/spool/mail/root
[root@localhost CentOS]# 

猜你喜欢

转载自xuelianbobo.iteye.com/blog/2103651