zoukankan      html  css  js  c++  java
  • Linux命令——yum

    翻译自:20 Linux YUM (Yellowdog Updater, Modified) Commands for Package Management

    前言

    本篇文章将介绍如何使用RedHat开发的YUM(Yellowdog Updater Modified)工具,在Linux系统上安装,更新,删除,查找,管理软件包和软件仓库。

    yum简介

    yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器。起初是由yellow dog 这一发行版的开发者Terra Soft 研发,用python 写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke 开发团队进行改进,遂有此名。yum 的宗旨是自动化地升级,安装/移除rpm 包,收集rpm 包的相关信息,检查依赖性并自动提示用户解决。yum 的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http 或ftp 站点,也可以是本地软件池,但必须包含rpm 的header,header 包括了rpm 包的各种信息,包括描述,功能,提供的文件,依赖性等。正是收集了这些header 并加以分析,才能自动化地完成余下的任务。

    yum 的理念是使用一个中心仓库(repository)管理一部分甚至一个distribution 的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了Linux 用户一直头痛的dependencies 的问题。这一点上,yum 和apt 相同。yum 可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm 包时遇到的依赖性问题,保持与RPM 数据库的一致性。

    yum命令使用示例

    使用YUM安装包

    要安装名为Firefox 14的软件包,只需运行以下命令,它将自动查找并安装Firefox所需的所有依赖项。

    # yum install firefox
    Loaded plugins: fastestmirror
    Dependencies Resolved
    
    ================================================================================================
     Package                    Arch        Version                    Repository            Size        
    ================================================================================================
    Updating:
    firefox                        i686        10.0.6-1.el6.centos     updates             20 M
    Updating for dependencies:
     xulrunner                     i686        10.0.6-1.el6.centos     updates             12 M
    
    Transaction Summary
    ================================================================================================
    Install       0 Package(s)
    Upgrade       2 Package(s)
    
    Total download size: 32 M
    Is this ok [y/N]: y
    Downloading Packages:
    (1/2): firefox-10.0.6-1.el6.centos.i686.rpm                                |  20 MB   01:10
    (2/2): xulrunner-10.0.6-1.el6.centos.i686.rpm                              |  12 MB   00:52
    ------------------------------------------------------------------------------------------------
    Total                                                           63 kB/s |  32 MB   02:04
    
    Updated:
      firefox.i686 0:10.0.6-1.el6.centos
    
    Dependency Updated:
      xulrunner.i686 0:10.0.6-1.el6.centos
    
    Complete!
    View Code

    在系统上安装任何软件包之前,上述命令将询问确认。如果要在不要求任何确认的情况下自动安装软件包,请使用选项-y,如下例所示。

    yum -y install firefox
    View Code

    使用YUM删除包

    删除包时,如果连依赖一起删除,只需要执行以下命令

    yum remove firefox
    Loaded plugins: fastestmirror
    Setting up Remove Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package firefox.i686 0:10.0.6-1.el6.centos set to be erased
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ====================================================================================================
     Package                    Arch        Version                        Repository            Size        
    ====================================================================================================
    Removing:
     firefox                    i686        10.0.6-1.el6.centos            @updates              23 M
    
    Transaction Summary
    ====================================================================================================
    Remove        1 Package(s)
    Reinstall     0 Package(s)
    Downgrade     0 Package(s)
    
    Is this ok [y/N]: y
    Downloading Packages:
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Erasing        : firefox-10.0.6-1.el6.centos.i686                                                                                                                          1/1
    
    Removed:
      firefox.i686 0:10.0.6-1.el6.centos
    
    Complete!
    View Code

    同样,上面的命令会在删除包之前询问确认。要禁用确认提示,只需添加选项-y,如下所示。

    yum -y remove firefox
    View Code

    yum remove有个弊端,例如yum remove -y vim,他只会匹配vim-xxx.rpm这个包,他的依赖包并不会被卸载。比如vim-minimal-7.4.160-4.el7.x86_64,必须单独写在才可以yum -y remove vim-minimal

    使用YUM更新包

    假设你有一个旧版本的MySQL,你希望将其更新为最新的稳定版本。只需运行以下命令,它将自动解决所有依赖项问题并安装它们。

    # yum update mysql
    Loaded plugins: fastestmirror
    Dependencies Resolved
    
    ============================================================================================================
     Package            Arch                Version                    Repository                    Size
    ============================================================================================================
    Updating:
     vsftpd             i386                2.0.5-24.el5_8.1           updates                       144 k
    
    Transaction Summary
    ============================================================================================================
    Install       0 Package(s)
    Upgrade       1 Package(s)
    
    Total size: 144 k
    Is this ok [y/N]: y
    Downloading Packages:
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Updating       : vsftpd                                                                     1/2
      Cleanup        : vsftpd                                                                     2/2
    
    Updated:
      vsftpd.i386 0:2.0.5-24.el5_8.1
    
    Complete!
    View Code

    使用YUM列出包

    使用list参数搜索具有名称的特定包。例如,要搜索名为openssh的包,使用命令

    # yum list openssh
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirror.neu.edu.cn
     * epel: mirror.neu.edu.cn
     * extras: mirror.neu.edu.cn
     * rpmforge: mirror.nl.leaseweb.net
     * updates: mirror.nus.edu.sg
    Installed Packages
    openssh.i386                                       4.3p2-72.el5_6.3                                                                      installed
    Available Packages                                 4.3p2-82.el5   
    View Code

    为了使您的搜索更准确,请使用其版本定义包名称,如果你知道的话。例如,搜索包的特定版本openssh-4.3p2

    # yum list openssh-4.3p2
    View Code

    使用YUM搜索包

    如果你不记得包的确切名称,请使用search参数搜索所有可用包以匹配你指定的包的名称。

    # yum search vsftpd
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirror.neu.edu.cn
     * epel: mirror.neu.edu.cn
     * extras: mirror.neu.edu.cn
     * rpmforge: mirror.nl.leaseweb.net
     * updates: ftp.iitm.ac.in
    ============================== Matched: vsftpd ========================
    ccze.i386 : A robust log colorizer
    pure-ftpd-selinux.i386 : SELinux support for Pure-FTPD
    vsftpd.i386 : vsftpd - Very Secure Ftp Daemon
    View Code

    使用YUM获取包的信息

    假设您想在安装之前知道包的信息。要获取包的信息,只需发出以下命令。

    # yum info firefox
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirror.neu.edu.cn
     * epel: mirror.neu.edu.cn
     * extras: mirror.neu.edu.cn
     * rpmforge: mirror.nl.leaseweb.net
     * updates: ftp.iitm.ac.in
    Available Packages
    Name       : firefox
    Arch       : i386
    Version    : 10.0.6
    Release    : 1.el5.centos
    Size       : 20 M
    Repo       : updates
    Summary    : Mozilla Firefox Web browser
    URL        : http://www.mozilla.org/projects/firefox/
    License    : MPLv1.1 or GPLv2+ or LGPLv2+
    Description: Mozilla Firefox is an open-source web browser, designed for standards
               : compliance, performance and portability.
    View Code

    使用YUM列出所有可用包

    要列出Yum数据库中的所有可用包,请使用以下命令。

    # yum list | less
    View Code

    使用YUM列出所有已安装的软件包

    要列出系统上所有已安装的软件包,只需发出以下命令,它将显示所有已安装的软件包。

    # yum list installed | less
    View Code

    找出文件属于哪个软件包

    provides参数用于查找特定文件所属的包。例如,如果您想知道包含/etc/httpd/conf/httpd.conf文件的包名称。

    # yum provides /etc/httpd/conf/httpd.conf
    Loaded plugins: fastestmirror
    httpd-2.2.3-63.el5.centos.i386 : Apache HTTP Server
    Repo        : base
    Matched from:
    Filename    : /etc/httpd/conf/httpd.conf
    
    httpd-2.2.3-63.el5.centos.1.i386 : Apache HTTP Server
    Repo        : updates
    Matched from:
    Filename    : /etc/httpd/conf/httpd.conf
    
    httpd-2.2.3-65.el5.centos.i386 : Apache HTTP Server
    Repo        : updates
    Matched from:
    Filename    : /etc/httpd/conf/httpd.conf
    
    httpd-2.2.3-53.el5.centos.1.i386 : Apache HTTP Server
    Repo        : installed
    Matched from:
    Other       : Provides-match: /etc/httpd/conf/httpd.conf
    View Code

    使用whatprovides 效果是一样的

    使用Yum检查可用更新

    要查找系统上已安装的软件包有多少可用更新,请检查以下命令。

    # yum check-update
    View Code

    使用Yum更新系统

    如下命令将为系统安装所有最新补丁和安全更新。

    # yum update
    View Code

    列出所有可用的Group Packages

    在Linux中,若干个包可以捆绑到特定组。 你可以安装特定组(组中包的依赖会自动安装),而不是使用yum单个组内的软件包。 例如,要列出所有可用组,只需发出以下命令。

    # yum grouplist
    Installed Groups:
       Administration Tools
       DNS Name Server
       Dialup Networking Support
       Editors
       Engineering and Scientific
       FTP Server
       Graphics
       Java Development
       Legacy Network Server
    Available Groups:
       Authoring and Publishing
       Base
       Beagle
       Cluster Storage
       Clustering
       Development Libraries
       Development Tools
       Eclipse
       Educational Software
       KDE (K Desktop Environment)
       KDE Software Development
    View Code

    安装Group Packages

    要安装特定的软件包组,我们使用参数groupinstall。例如,要安装“MySQL数据库”,只需执行以下命令即可。

    # yum groupinstall 'MySQL Database'
    Dependencies Resolved
    
    =================================================================================================
    Package                                Arch      Version             Repository        Size
    =================================================================================================
    Updating:
     unixODBC                           i386      2.2.11-10.el5      base              290 k
    Installing for dependencies:
     unixODBC-libs                      i386      2.2.11-10.el5      base              551 k
    
    Transaction Summary
    =================================================================================================
    Install       1 Package(s)
    Upgrade       1 Package(s)
    
    Total size: 841 k
    Is this ok [y/N]: y
    Downloading Packages:
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing     : unixODBC-libs    1/3
      Updating       : unixODBC         2/3
      Cleanup        : unixODBC         3/3
    
    Dependency Installed:
      unixODBC-libs.i386 0:2.2.11-10.el5
    
    Updated:
      unixODBC.i386 0:2.2.11-10.el5
    
    Complete!
    View Code

    更新Group Packages

    使用参数groupupdate 

    # yum groupupdate 'DNS Name Server'
    
    Dependencies Resolved
    ================================================================================================================
     Package            Arch            Version                Repository           Size
    ================================================================================================================
    Updating:
     bind                           i386            30:9.3.6-20.P1.el5_8.2          updates              981 k
     bind-chroot                    i386            30:9.3.6-20.P1.el5_8.2          updates              47 k
    Updating for dependencies:
     bind-libs                      i386            30:9.3.6-20.P1.el5_8.2          updates              864 k
     bind-utils                     i386            30:9.3.6-20.P1.el5_8.2          updates              174 k
    
    Transaction Summary
    ================================================================================================================
    Install       0 Package(s)
    Upgrade       4 Package(s)
    
    Total size: 2.0 M
    Is this ok [y/N]: y
    Downloading Packages:
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Updating       : bind-libs            1/8
      Updating       : bind                 2/8
      Updating       : bind-chroot          3/8
      Updating       : bind-utils           4/8
      Cleanup        : bind                 5/8
      Cleanup        : bind-chroot          6/8
      Cleanup        : bind-utils           7/8
      Cleanup        : bind-libs            8/8
    
    Updated:
      bind.i386 30:9.3.6-20.P1.el5_8.2                  bind-chroot.i386 30:9.3.6-20.P1.el5_8.2
    
    Dependency Updated:
      bind-libs.i386 30:9.3.6-20.P1.el5_8.2             bind-utils.i386 30:9.3.6-20.P1.el5_8.2
    
    Complete!
    View Code

    移除Group Packages

    使用参数groupremove

    # yum groupremove 'DNS Name Server'
    
    Dependencies Resolved
    
    ===========================================================================================================
     Package                Arch              Version                         Repository          Size
    ===========================================================================================================
    Removing:
     bind                   i386              30:9.3.6-20.P1.el5_8.2          installed           2.1 M
     bind-chroot            i386              30:9.3.6-20.P1.el5_8.2          installed           0.0
    
    Transaction Summary
    ===========================================================================================================
    Remove        2 Package(s)
    Reinstall     0 Package(s)
    Downgrade     0 Package(s)
    
    Is this ok [y/N]: y
    Downloading Packages:
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Erasing        : bind                                                   1/2
    warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave
      Erasing        : bind-chroot                                            2/2
    
    Removed:
      bind.i386 30:9.3.6-20.P1.el5_8.2                                        bind-chroot.i386 30:9.3.6-20.P1.el5_8.2
    
    Complete!
    View Code

    列出已启用的Yum仓库

    要列出系统中所有已启用的Yum存储库,请使用以下选项。

    # yum repolist
    
    repo id                     repo name                                            status
    base                        CentOS-5 - Base                                      enabled:  2,725
    epel                        Extra Packages for Enterprise Linux 5 - i386         enabled:  5,783
    extras                      CentOS-5 - Extras                                    enabled:    282
    mod-pagespeed               mod-pagespeed                                        enabled:      1
    rpmforge                    RHEL 5 - RPMforge.net - dag                          enabled: 11,290
    updates                     CentOS-5 - Updates                                   enabled:    743
    repolist: 20,824
    View Code

    列出所有已启用和已禁用的Yum存储库

    # yum repolist all
    
    repo id                     repo name                                            status
    C5.0-base                   CentOS-5.0 - Base                                    disabled
    C5.0-centosplus             CentOS-5.0 - Plus                                    disabled
    C5.0-extras                 CentOS-5.0 - Extras                                  disabled
    base                        CentOS-5 - Base                                      enabled:  2,725
    epel                        Extra Packages for Enterprise Linux 5 - i386         enabled:  5,783
    extras                      CentOS-5 - Extras                                    enabled:    282
    repolist: 20,824
    View Code

    从特定yum仓库安装包

    要从特定的yum仓库(已启用或已禁用)安装特定软件包,必须在yum命令中使用-enablerepo选项。 例如,要安装PhpMyAdmin 3.5.2软件包,只需执行命令即可。

    # yum --enablerepo=epel install phpmyadmin
    
    Dependencies Resolved
    =============================================================================================
     Package                Arch           Version            Repository           Size
    =============================================================================================
    Installing:
     phpMyAdmin             noarch         3.5.1-1.el6        epel                 4.2 M
    
    Transaction Summary
    =============================================================================================
    Install       1 Package(s)
    
    Total download size: 4.2 M
    Installed size: 17 M
    Is this ok [y/N]: y
    Downloading Packages:
    phpMyAdmin-3.5.1-1.el6.noarch.rpm                       | 4.2 MB     00:25
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing : phpMyAdmin-3.5.1-1.el6.noarch             1/1
      Verifying  : phpMyAdmin-3.5.1-1.el6.noarch             1/1
    
    Installed:
      phpMyAdmin.noarch 0:3.5.1-1.el6
    
    Complete!
    View Code

    交互式yum shell

    Yum提供自定义shell,可以在其中执行多个命令。

    # yum shell
    Loaded plugins: fastestmirror
    Setting up Yum Shell
    > update httpd
    Loading mirror speeds from cached hostfile
     * base: mirrors.sin3.sg.voxel.net
     * epel: ftp.riken.jp
     * extras: mirrors.sin3.sg.voxel.net
     * updates: mirrors.sin3.sg.voxel.net
    Setting up Update Process
    >
    View Code

    清除Yum缓存

    默认情况下,yum再/var/cache/yum及其子目录下保存已启用Yum仓库中的rpm包,要清除这些缓存下来的rpm包,需要定期运行以下命令来清理所有缓存并确保 没有什么不必要的空间正在使用。

    # yum clean all
    View Code

    查看Yum历史

    查看Yum命令的历史纪录

    # yum history
    
    Loaded plugins: fastestmirror
    ID     | Login user               | Date and time    | Action(s)      | Altered
    -------------------------------------------------------------------------------
        10 | root               | 2012-08-11 15:19 | Install        |    3
         9 | root               | 2012-08-11 15:11 | Install        |    1
         8 | root               | 2012-08-11 15:10 | Erase          |    1 EE
         7 | root               | 2012-08-10 17:44 | Install        |    1
         6 | root               | 2012-08-10 12:19 | Install        |    2
         5 | root               | 2012-08-10 12:14 | Install        |    3
         4 | root               | 2012-08-10 12:12 | I, U           |   13 E<
         3 | root               | 2012-08-09 13:01 | Install        |    1 >
         2 | root               | 2012-08-08 20:13 | I, U           |  292 EE
         1 | System            | 2012-08-08 17:15 | Install        |  560
    history list
    View Code
    
    
    
  • 相关阅读:
    软件工程——第六章 软件测试【转】
    软件工程——第五章 程序编码【转】
    软件工程——第四章 面向过程的软件设计方法 【转】
    软件工程——第三章 软件需求分析 【转】
    软件工程——第二章 软件计划 【转】
    如何修改远程桌面的端口号
    关于导出Excel
    软件工程——第一章 软件和软件工程的基本概念【转】
    重构代码的7个阶段
    hibernate @JoinColumn
  • 原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/9937182.html
Copyright © 2011-2022 走看看