当前位置: > Linux教程 > Linux学习 >

Linux下的软件包管理(RPM & YUM)

时间:2017-04-13 12:00来源:linux.it.net.cn 作者:IT
软件包管理是指系统中一种安装和维护软件的方法。

打包系统: 
  不同的Linux发行版使用不同的打包系统,一般而言,大多数发行版分别属于两大包管理技术阵营:Debian的“.ded”以及Redhat的“.rpm”。当然,也有一些是例外,例如Gentoo、Slackware和Foresight,但大多数都是使用这两个基本系统的其中一个。

包管理系统 发行版(部分列表)
Debian style(.ded) Debian,Ubuntu,Xandros,Linspire
Redhat style(.rpm) Fedora,CentOS,Red Hat Enterprise Linux,OpenSUSE

在此只介绍RPM(以及基于其的YUM)包管理工具

一、RPM

RPM命令可以完成对软件包的所有管理功能:
  • 查询已安装在Linux系统中的RPM软件包信息
  • 查询RPM软件包安装文件的信息
  • 在当前Linux系统中安装RPM软件包
  • 从当前Linux系统中卸载已安装的RPM软件包
  • 升级当前Linux系统中已安装的RPM软件包
RPM的简单使用:
  1. rpm查询命令 
    rpm-qa 查询Linux系统中所有的软件包

    rpm-q 包名称 查询指定名称的软件包是否安装

    rpm-qi 包名称 查询指定名称软件包的详细信息

    rpm-ql 包名称 查询指定名称软件包中所包括的文件列表

    rpm-qf 文件名称 查询指定文件所属的软件包

    rpm-qpi 包文件名 查询指定RPM包文件的详细信息

    rpm-qpl 包文件名 查询指定RPM包中包含的文件列表

  2. rpm安装 
    rpm -ivh 包文件名称 
      - i 安装、v 显示附加信息、h 显示安装进度
  3. rpm升级 
    rpm -U 包文件名称
  4. rpm卸载 
    rpm -e 包名称

注意:安装、升级、卸载软件包的时候可能提示依赖关系,需要先解决包之间的依赖关系

二、更友好的包管理工具——YUM

Yum(全称为 Yellow dog Updater, Modified)是一个在RHEL6中的软件包管理器。基于RPM包管理工具,能从指定的安装源(服务器或者本地目录等)自动下载目标RPM包并安装,可以自动处理包依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。所有YUM被称为更友好的包管理软件。 
YUM的另一个功能:进行系统中所有软件的升级。

YUM的RPM包来源于安装源,所以要使用YUM,必须先设置yum安装源,安装源有/etc/yum.repos.d/目录中的 .repo文件指定。 
安装源可以是一个网络服务器地址,也可以是本地的安装光盘。

YUM的简单使用:
  1. 安装软件 
    yum install 包名称
  2. 删除软件 
    yum remove 包名称
  3. 升级软件 
    yum updata 包名称
  4. 查询信息 
    yum info 包名称
【用RHEL安装光盘配置本地yum安装源】
  1. “虚拟机”–>“设置”–>“CD/DVD(IDE)”–>“连接”–>“使用ISO镜像文件”,通过“浏览”选择Redhat安装光盘,并确保“设备状态”中的“已连接”选项勾选上;
  2. 把光驱挂载到/test 目录下(也可以是其他目录,自己创建) 
    a. mkdir /test 
    b. mount /dev/sr0 /test #挂载光驱 
    c. mount -s #查看是否挂载成功
  3. vim /etc/yum.repos.d/dvd.repo #新建yum源配置文件dvd.repo 
    【配置文件中内容如下】 
    [dvd]            #配置文件名 
    name = install dvd      #同上 
    baseurl = file:///aa      #从挂载处获取安装源 
    enabled = 1        #是否启用yum源,0不启用,1启用 
    gpgcheck = 0        #是否检查安装源,0不检查,1检查

注意:配置完yum源后,为了避免/etc/yum.repos.d/下的rhel-debuginfo.repo 启用,所有将其打包为rhel-debuginfo.repo.bak 
  mv rhel-debuginfo.repo rhel-debuginfo.repo.bak




(责任编辑:IT)
------分隔线----------------------------