W3CAPI 在线教程 | 菜鸟教程_LOGO
文档目录
文档目录
我的书签
 

CentOS

CentOS yum使用详解及常用命令参数

yum(全程:Yellow dog Updater, Modified)是一个在Fedora、CentOS、RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次可以安装所有相关依赖的软体包,无须手动一一寻找下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,以命令简洁方便又好记被广泛使用。

W3CAPI
1
2020-08-20 17:36:20

什么是yum?yum的由来及介绍

yum由来及历史

yum的由来,来自于Linux发行版系列系统中 特有的软件包依赖关系问题,yum就是为了解决依赖关系而存在的。yum源就相当是一个目录项,当我们使用yum机制安装软件时,若需要安装依赖软件,则yum机制就会根据在yum源中定义好的路径查找依赖软件,并将依赖软件安装好。YUM从指定的地方(相关网站的rpm包地址或本地的rpm路径)自动下载RPM包并且安装,能够很好的解决依赖关系问题。
yum是杜克大学(Duke University)(创建于1838年,坐落于美国北卡罗来纳州(North Carolina)的达勒姆(Durham),是一所世界顶级的研究型大学。杜克大学是全美优秀的大学之一,也是美国南部最好的私立大学,在各类排行榜上长期位居美国前十、世界前二十 )为了提高RPM 软件包的安装方便性而开发的一种软件包管理器。起初是由 yellow dog 这一发行版的开发者 Terra Soft 研发,用python语言编写,叫做yup(yellow dog updater),后来经过杜克大学的 Linux@Duke 开发团队进行改进,才更名为yum。

yum概述及简介

yum(全称:Yellow dogUpdater, Modified)是一个在 Linux系统的发行版(Fedora和RedHat以及CentOS)中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,不需要去一一下载各个软件依赖包进行安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
yum特性:
  • yum 的宗旨是可以自动化的升级、安装、移除RPM包,收集 RPM包的相关信息,检查依赖性并自动提示用户解决。yum 的关键之处是要有可靠的 repository,顾名思义,这是软件的仓库,它可以是 http 或 ftp 站点,也可以是本地软件池,但必须包含 RPM的header(header 包括了 RPM包的各种信息:描述,功能,提供的文件,依赖性等。正是收集了这些header并加以分析,才能自动化地完成余下的任务。
  • yum 的理念是使用一个中心仓库(repository)管理一部分甚至一个distribution 的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了Linux 用户一直头痛的dependencies 的问题。这一点上,yum 和apt 相同。apt 原为debian 的deb 类型软件管理所使用,但是现在也能用到RedHat 门下的rpm 了。
  • yum 主要功能是更方便的添加/删除/更新RPM 包,自动解决包的倚赖性问题,便于管理大量系统的更新问题。
  • yum 可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm 包时遇到的依赖性问题,保持与RPM 数据库的一致性。
yum的工作机制:
服务器端:在服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。 
客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过WWW或FTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。
yum命令语法:
yum [options] [command] [package ...]
  • options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
  • command:要进行的操作。
  • package操作的对象。
yum的命令格式跟其他Linux系统中的命令格式类似,示例如:yum –命令选项参数。其中 命令选项参数 是可选的,选项包括-h(帮助),-y(安装过程询问用户选择的全部默认为"yes"),-q(不显示安装的过程)等。

yum配置及目录结构

yum的一切信息都存储在一个叫yum.reops.d目录下的配置文件中,通常位于/etc/yum.reops.d目录下。 
[root@izj6c5d84aus1k307cz62iz ~]# cd /etc/yum.reops.d
[root@izj6c5d84aus1k307cz62iz yum.repos.d]# ls
CentOS-Base.repo  epel-testing.repo  epel.repo  epel.repo.rpmnew  mysql-community-source.repo  mysql-community.repo
[root@izj6c5d84aus1k307cz62iz yum.repos.d]# 
在这个目录下面有很多文件,都是.repo结尾的,repo文件是yum源(也就是软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用。接下来我们打开第一个.repo结尾的文件看一下它的文件结构:
[root@izj6c5d84aus1k307cz62iz yum.repos.d]# vi CentOS-Base.repo
[base]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7     
  • [base] #yum源的名称,起到标记yum源的作用,yum的唯一ID标识,本地有多个yum源的时候,这里必须是唯一的
  • name=CentOS-$releasever #具体的yum源的名字,其实相当于对它的描述描述信息,作用是使用户可以更容易的读懂该文件;$releasever你可以使用这个变量参考红帽企业Linux发行版,也就是说表示当前发行版的大版本号。
  • baseurl=    #是镜像服务器地址,只能有一个baseurl,但里面可以包含多个url,这个路径是yum用来查找依赖关系软件的路径(该路径可以是一个网址路径,也可以是本机上的一个路径)
  • enabled=0 #enabled 是使能够的意思,0表示baseurl定义的路径是不可用的,1表示定义的路径是可用的。
  • mirrorlist= #是镜像服务器的地址列表,里面有很多的服务器地址。这里有一个变量$arch,cpu体系,还有一个变量:$basearch,cpu的基本体系组,baseurl和mirrorlist都是指向yum源的地址,不同点是包含地址的多少。你若自己写的话,我们一般只写一个地址,直接用baseurl就行
  • gpgcheck=0 #0表示不进行验证,那么gpgkey就可以不填写;1表示使用公钥检验rpm的正确性,将对下载的rpm将进行gpg的校验,校验密钥就是gpgkey,一般自己的yum源是不需要检测的
  • gpgkey= # 进行gpg检查时,使用file协议导入公钥,后面接的路径就是系统自带的公钥存放路径。
注释:repo文件即是 Linux发行版系列系统中 常说的源文件(repositry),在使用yum命令的时候系统会自动读取repo文件,然后去repositry获取软件。每一个repo文件代表不同的软件源,其中的baseurl,表明了repositry的地址,支持ftp协议,http协议和file协议。你可以cat看一下里面的内容。
yum的配置文件:/etc/yum.conf文件:
  • yum 的配置文件分为两部分:main 和repository
  • main 部分定义了全局配置选项,整个yum 配置文件应该只有一个main。常位于/etc/yum.conf 中。
  • repository 部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d 目录下的各文件中。
  • yum.conf 文件一般位于/etc目录下,一般其中只包含main部分的配置选项。
[root@izj6c5d84aus1k307cz62iz yum.repos.d]# vi /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=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release        
  • cachedir=/var/cache/yum/$basearch/$releasever #yum下载的RPM包的缓存目录
  • keepcache=0 #缓存是否保存,1保存,0不保存
  • debuglevel=2 #调试级别(0-10),默认为2
  • logfile=/var/log/yum.log #yum的日志文件路径
  • exactarch=1 #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包
  • obsoletes=1 #这是一个update的参数标识,简单的说就是相当于upgrade,允许更新老版本的RPM包
  • gpgcheck=1 #是否检查GPG(GNU Private Guard),使用GPG加密算法对RPM包进行签名检测,以确定rpm 包的来源是有效和安全的
  • plugins=1 #是否允许使用插件,默认为0表示不允许,但是我们一般会用yum-fastestmirror(yum多个mirror自动选择速度最快的mirror,yum-fastestmirror插件,它会自动选择最快的mirror)这个插件
  • installonly_limit=5 #允许保留多少个内核包
  • bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
  • distroverpkg=centos-release
  • exclude=selinux* #屏蔽不想更新的RPM包,可以使用通配符,多个RPM包之间使用空格分隔

yum常用命令及参数详解

1、yum清空缓存列表

相关提问
敬请期待