zoukankan      html  css  js  c++  java
  • N天学习一个linux命令之yum

    yum命令

    用途

    yum(Yellowdog Updater Modified),RedHat系Linux操作系统包管理器,基于rpm,从源远程仓库下载rpm包安装,同时解决依赖关系,使用Python语言编写。除了安装,还可以更新,卸载,查询软件包等。

    用法

    yum [options] [command] [package ...]
    

    常用命令列表

    install
    安装源仓库包

    update
    更新软件包,没有指定包,会更新所有已安装的包

    update-to
    更新到指定的版本

    check-update
    检查更新列表,看看是否有新版本

    upgrade
    和update --obsoletes含义一样

    upgrade-to
    含义和upgrade一样,只不过指定更新到某个版本

    remove
    erase
    卸载包,包括依赖

    list
    列出可用的包信息

    search
    根据关键字搜索包

    info
    显示包信息

    clean
    清空缓存

    makecache
    生成缓存

    groupinstall
    安装组里所有的包

    groupupdate
    更新组里所有的包

    grouplist
    列出仓库里所有的组

    groupremove
    删除组内所有的包

    groupinfo
    显示组内包所有的信息

    localinstall
    安装本地包

    localupdate
    更新本地包

    reinstall
    重新安装包

    downgrade
    降级包或者降级到指定的版本

    deplist
    显示依赖的包和提供者

    repolist
    列出源仓库列表

    check
    检查本地rpmdb数据库,速度比较慢

    help
    显示帮助信息或者某个命令的帮助信息,如果有指定

    常用选项

    -h, --help
    显示帮助信息

    -y, --assumeyes
    安装过程中,每一步自动选择同意

    --assumeno
    每次都选择不同意

    -c, --config=[config file]
    指定配置文件

    -q, --quiet
    运行时不输出信息

    -v, --verbose
    跟-q选项相反,输出详细信息

    -d, --debuglevel=[number]
    设置调试级别

    -e, --errorlevel=[number]
    设置错误级别

    -C, --cacheonly
    仅从缓存读

    --version
    显示程序版本信息

    --showduplicates
    显示所有版本,默认是只显示最新的包版本

    --enablerepo=repoidglob
    启用源仓库,可以是名字,标识,通配符

    --disablerepo=repoidglob
    禁用源仓库

    --obsoletes
    更新时,启用过时处理逻辑(不知道是什么鬼?删除不必要的文件?)

    -x, --exclude=package
    排除指定的包

    --nogpgcheck
    不进行gpg检验

    --downloadonly
    不更新,只下载

    设置yum源

    源文件所在目录

    /etc/yum.repos.d

    163源

    国内一般使用网易源,毕竟是大厂,安全和速度有保障

    # CentOS-Base.repo
    #
    # The mirror system uses the connecting IP address of the client and the
    # update status of each mirror to pick mirrors that are updated to and
    # geographically close to the client.  You should use this for CentOS updates
    # unless you are manually picking other mirrors.
    #
    # If the mirrorlist= does not work for you, as a fall back you can try the 
    # remarked out baseurl= line instead.
    #
    #
    
    [base]
    name=CentOS-$releasever - Base - 163.com
    baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
    gpgcheck=1
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
    
    #released updates 
    [updates]
    name=CentOS-$releasever - Updates - 163.com
    baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
    gpgcheck=1
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
    
    #additional packages that may be useful
    [extras]
    name=CentOS-$releasever - Extras - 163.com
    baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
    gpgcheck=1
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
    
    #additional packages that extend functionality of existing packages
    [centosplus]
    name=CentOS-$releasever - Plus - 163.com
    baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
    
    #contrib - packages by Centos Users
    [contrib]
    name=CentOS-$releasever - Contrib - 163.com
    baseurl=http://mirrors.163.com/centos/$releasever/contrib/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
    

    yum配置文件(/etc/yum.conf)

    [main]
    cachedir=/var/cache/yum/$basearch/$releasever
    keepcache=0
    debuglevel=2
    logfile=/var/log/yum.log
    exactarch=1
    obsoletes=1
    gpgcheck=1
    plugins=1
    installonly_limit=5
    bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
    distroverpkg=centos-release
    
    #  This is the default, if you make this bigger yum won't see if the metadata
    # is newer on the remote and so you'll "gain" the bandwidth of not having to
    # download the new metadata and "pay" for it by yum not having correct
    # information.
    #  It is esp. important, to have correct metadata, for distributions like
    # Fedora which don't keep old packages around. If you don't like this checking
    # interupting your command line usage, it's much better to have something
    # manually check the metadata once an hour (yum-updatesd will do this).
    # metadata_expire=90m
    
    # PUT YOUR REPOS HERE OR IN separate files named file.repo
    # in /etc/yum.repos.d
    

    实践

    1 源仓库搜索指定的包,比如php

    [root@vm ~]# yum search php
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    gitlab_gitlab-ee/signature                                                                                  |  836 B     00:00     
    gitlab_gitlab-ee/signature                                                                                  | 1.0 kB     00:00 ... 
    gitlab_gitlab-ee-source/signature                                                                           |  836 B     00:00     
    gitlab_gitlab-ee-source/signature                                                                           |  951 B     00:00 ... 
    ======================================================== N/S Matched: php =========================================================
    cups-php.x86_64 : Common Unix Printing System - php module
    graphviz-php.x86_64 : PHP extension for graphviz
    php.x86_64 : PHP scripting language for creating dynamic web sites
    php-bcmath.x86_64 : A module for PHP applications for using the bcmath library
    php-cli.x86_64 : Command-line interface for PHP
    php-common.x86_64 : Common files for PHP
    php-dba.x86_64 : A database abstraction layer module for PHP applications
    php-devel.x86_64 : Files needed for building PHP extensions
    php-embedded.x86_64 : PHP library for embedding in applications
    php-fpm.x86_64 : PHP FastCGI Process Manager
    php-gd.x86_64 : A module for PHP applications for using the gd graphics library
    php-imap.x86_64 : A module for PHP applications that use IMAP
    

    2 列出可用的包,比如php,未指定显示所有已安装和未安装可用的包列表

    [root@vm ~]# yum list php
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    Available Packages
    php.x86_64                                                    5.3.3-49.el6                                                     base
    

    3 显示包依赖,比如php依赖的包和提供方

    [root@vm ~]# yum deplist php
    Loaded plugins: fastestmirror
    Finding dependencies: 
    Loading mirror speeds from cached hostfile
    package: php.x86_64 5.3.3-49.el6
      dependency: libssl.so.10(libssl.so.10)(64bit)
       provider: openssl.x86_64 1.0.1e-57.el6
      dependency: libc.so.6(GLIBC_2.8)(64bit)
       provider: glibc.x86_64 2.12-1.209.el6
       provider: glibc.x86_64 2.12-1.209.el6_9.1
       provider: glibc.x86_64 2.12-1.209.el6_9.2
      dependency: libxml2.so.2(LIBXML2_2.5.2)(64bit)
       provider: libxml2.x86_64 2.7.6-21.el6_8.1
      dependency: libz.so.1()(64bit)
       provider: zlib.x86_64 1.2.3-29.el6
      dependency: libkrb5.so.3()(64bit)
       provider: krb5-libs.x86_64 1.10.3-65.el6
      dependency: libxml2.so.2(LIBXML2_2.6.5)(64bit)
       provider: libxml2.x86_64 2.7.6-21.el6_8.1
      dependency: libcrypt.so.1()(64bit)
       provider: glibc.x86_64 2.12-1.209.el6
       provider: glibc.x86_64 2.12-1.209.el6_9.1
       provider: glibc.x86_64 2.12-1.209.el6_9.2
      dependency: libm.so.6(GLIBC_2.2.5)(64bit)
       provider: glibc.x86_64 2.12-1.209.el6
       provider: glibc.x86_64 2.12-1.209.el6_9.1
       provider: glibc.x86_64 2.12-1.209.el6_9.2
    

    4 显示包信息,比如php

    [root@vm ~]# yum info php
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    gitlab_gitlab-ee/signature                                                                                  |  836 B     00:00     
    gitlab_gitlab-ee/signature                                                                                  | 1.0 kB     00:00 ... 
    gitlab_gitlab-ee-source/signature                                                                           |  836 B     00:00     
    gitlab_gitlab-ee-source/signature                                                                           |  951 B     00:00 ... 
    Available Packages
    Name        : php
    Arch        : x86_64
    Version     : 5.3.3
    Release     : 49.el6
    Size        : 1.1 M
    Repo        : base
    Summary     : PHP scripting language for creating dynamic web sites
    URL         : http://www.php.net/
    License     : PHP
    Description : PHP is an HTML-embedded scripting language. PHP attempts to make it
                : easy for developers to write dynamically generated webpages. PHP also
                : offers built-in database integration for several commercial and
                : non-commercial database management systems, so writing a
                : database-enabled webpage with PHP is fairly simple. The most common
                : use of PHP coding is probably as a replacement for CGI scripts.
                : 
                : The php package contains the module which adds support for the PHP
                : language to Apache HTTP Server.
    

    5 删除包,比如已经安装的lynx包

    [root@vm ~]# yum -v remove lynx
    Loading "fastestmirror" plugin
    Config time: 0.006
    Yum Version: 3.2.29
    rpmdb time: 0.000
    Setting up Remove Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package lynx.x86_64 0:2.8.6-27.el6 will be erased
    Checking deps for lynx.x86_64 0:2.8.6-27.el6 - e
    --> Finished Dependency Resolution
    Dependency Process ending
    Depsolve time: 0.183
    
    Dependencies Resolved
    
    ===================================================================================================================================
     Package                    Arch                         Version                             Repository                       Size
    ===================================================================================================================================
    Removing:
     lynx                       x86_64                       2.8.6-27.el6                        installed                       4.7 M
    
    Transaction Summary
    ===================================================================================================================================
    Remove        1 Package(s)
    
    Installed size: 4.7 M
    Is this ok [y/N]: y
    Downloading Packages:
    Running rpm_check_debug
    Member: lynx.x86_64 0:2.8.6-27.el6 - e
    Removing Package lynx-2.8.6-27.el6.x86_64
    rpm_check_debug time: 0.029
    Running Transaction Test
    Member: lynx.x86_64 0:2.8.6-27.el6 - e
    Removing Package lynx-2.8.6-27.el6.x86_64
    Transaction Test Succeeded
    Transaction Test time: 1.374
    Member: lynx.x86_64 0:2.8.6-27.el6 - e
    Removing Package lynx-2.8.6-27.el6.x86_64
    Running Transaction
      Erasing    : lynx-2.8.6-27.el6.x86_64                                                                                        1/1 
      Verifying  : lynx-2.8.6-27.el6.x86_64                                                                                        1/1 
    VerifyTransaction time: 0.125
    Transaction time: 1.338
    
    Removed:
      lynx.x86_64 0:2.8.6-27.el6                                                                                                       
    
    Complete!
    

    6 安装包,比如lynx包

    # 仅下载,不安装
    [root@vm ~]# yum --downloadonly install lynx
    Loaded plugins: fastestmirror
    Setting up Install Process
    Loading mirror speeds from cached hostfile
    Resolving Dependencies
    --> Running transaction check
    ---> Package lynx.x86_64 0:2.8.6-27.el6 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ===================================================================================================================================
     Package                     Arch                          Version                               Repository                   Size
    ===================================================================================================================================
    Installing:
     lynx                        x86_64                        2.8.6-27.el6                          base                        1.3 M
    
    Transaction Summary
    ===================================================================================================================================
    Install       1 Package(s)
    
    Total download size: 1.3 M
    Installed size: 4.7 M
    Is this ok [y/N]: y
    Downloading Packages:
    lynx-2.8.6-27.el6.x86_64.rpm                                                                                | 1.3 MB     00:00     
    exiting because --downloadonly specified
    
    # 直接安装
    [root@vm ~]# yum install lynx
    Loaded plugins: fastestmirror
    Setting up Install Process
    Loading mirror speeds from cached hostfile
    Resolving Dependencies
    --> Running transaction check
    ---> Package lynx.x86_64 0:2.8.6-27.el6 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ===================================================================================================================================
     Package                     Arch                          Version                               Repository                   Size
    ===================================================================================================================================
    Installing:
     lynx                        x86_64                        2.8.6-27.el6                          base                        1.3 M
    
    Transaction Summary
    ===================================================================================================================================
    Install       1 Package(s)
    
    Total size: 1.3 M
    Installed size: 4.7 M
    Is this ok [y/N]: y
    Downloading Packages:
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing : lynx-2.8.6-27.el6.x86_64                                                                                        1/1 
      Verifying  : lynx-2.8.6-27.el6.x86_64                                                                                        1/1 
    
    Installed:
      lynx.x86_64 0:2.8.6-27.el6                                                                                                       
    
    Complete!
    

    7 清空所有缓存

    [root@vm ~]# yum clean all
    Loaded plugins: fastestmirror
    Cleaning repos: base extras gitlab_gitlab-ee gitlab_gitlab-ee-source updates
    Cleaning up Everything
    Cleaning up list of fastest mirrors
    

    参考资料

    【1】man yum
    【2】linux yum命令详解
    http://www.cnblogs.com/chuncn/archive/2010/10/17/1853915.html

  • 相关阅读:
    团队作业2
    神琪宝贝
    自我介绍
    新博客破蛋日!
    关于mysql的索引原理与慢查询优化
    mysql主从复制(超简单)
    MySQL 主从复制与读写分离概念及架构分析
    nginx配置image_filter生成缩略图
    关于ueditor多图上传加水印
    linux下php调用root权限实现方案
  • 原文地址:https://www.cnblogs.com/wadeyu/p/8710594.html
Copyright © 2011-2022 走看看