YUM管理
yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。(yum是有python写的前端工具,底层安装包,卸载包都是使用rpm来实现的,yum是一个工具来帮助解决rpm依赖关系的)
yum工作原理
当我们执行 yum install httpd -y ,yum会先访问本地缓存(1)如果有直接安装(2)如果没有,则通过元数据找到该软件包,通过该软件内部数据库的提示,找到相应的依赖包,然后继续查找元数据中是否有这些依赖包,如果没有会提示依赖包没有镜像提供。如果httpd软件包和依赖包都找到了,就根据配置文件中的url去下载。(总结就是先去本地缓存里面找,如果找到了直接安装,如果没有通过网络去yum服务器repodata文件里面找包名,根据URL去远程服务器上拿下这些包,如果有依赖性继续找包,远程服务器继续下载)
repodata存放数据库信息,根据这里面的信息找到依赖包,然后通过packages的URL下载。
Packages和repodata,Packages这个目录是yum安装时的rpm包。
repodata目录里面包含了一个以 .xml结尾的文件,这个文件是yum索引文件,包含了rpm包的一些信息,比如依赖关系这些的。通过它用yum安装才能在自动解决。
yum配置文件
什么是yum.conf文件:yum.conf文件是用来存储yum配置信息的文件,虽然yum.conf文件通常都比较简洁,却是yum软件管理器的重要组成部分。
[root@localhost ~]# rpm -qc yum --查看yum的配置文件位置
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf
[root@localhost ~]# vim /etc/yum.conf --yum配置文件
[main]
cachedir=/var/cache/yum/$basearch/$releasever --cachedir:yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum/$basearch/$releasever。
keepcache=1 --安装好软件包之后,会将软件包保存,不会删除(安卓Linux手机安装了软件,软件包会自动删除,相当于该值为0)
debuglevel=2
logfile=/var/log/yum.log --logfile:存放系统更新软件的日志的目录。用户可以到/var/log/yum.log文件去查询自己在过去的日子里都做了哪些更新
exactarch=1
obsoletes=1
gpgcheck=1 --gpgchkeck= 有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认是检查的
plugins=1 --是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。使用yum简化系统软件更新的工作,为了保证更新的持续进行,通常都会提供多个mirror(镜像)地址供下载使用,但由于存在地域问题,从不同的镜像下载速度差异很大。选择从适合的镜像下载软件包,会极大的影响更新速度。可使用一个叫fastestmirror的插件,让yum在更新时先根据ping值进行判断,然后从最快响应的地址下载
installonly_limit=3 --允许保留多少个内核包
repo文件
将yum的要配置的仓库信息文件,以.repo结尾的文件放在/etc/yum.repos.d目录下面。
什么是repo文件:repo文件是yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用。
[serverid] --serverid是用于区别各个不同的repository,必须有一个独一无二的名称,对于yum repolist的repo id
name=Some name for this server --name,是对repository的描述,支持像$releasever $basearch这样的变量; name=Fedora Core $releasever - $basearch - Released Updates,对于yum repolist的repo name
baseurl是服务器设置中最重要的部分,只有设置正确,才能从上面获取软件。它的格式是:
baseurl=url://server1/path/to/repository/,其中url支持的协议有 http:// ftp:// file://三种
gpgcheck:有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认是检查的
gpgkey:校验key,如果设置了gpgcheck为1,则需要提供校验key
配置网络源
[root@localhost yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo --这个是获取163yum源
[root@localhost yum.repos.d]# wget /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo --这个是获取阿里云的源
# 安装163的yum源:
wget -O /etc/yum.repos.d/CentOS7-Base-163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 安装阿里云的yum源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
base/7/x86_64 CentOS-7 - Base - 163.com 10,097
extras/7/x86_64 CentOS-7 - Extras - 163.com 323
updates/7/x86_64 CentOS-7 - Updates - 163.com
配置本地源
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
vim /etc/yum.repos.d/centos-7-local.repo
[local]
name=centos-releasever-local
baseurl=file:///mnt/cdrom
gpgcheck=0 --表示对从这个源下载的rpm包不进行校验;