1. yum介绍
1.1. yum是什么?
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
yum基於RPM包管理,能够从指定的yum服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
1.2. yum为什么而存在?
说到yum源就必须说到linux系统中特有的依赖关系问题,yum就是为了解决依赖关系而存在的。yum源就相当是一个目录项,当我们使用yum机制安装软件时,若需要安装依赖软件,则yum机制就会根据在yum源中定义好的路径查找依赖软件,并将依赖软件安装好。
1.3. yum的工作原理
yum采用的是client/server模式, yum的工作需要两部分来合作,一部分是yum服务器,还有就是client的yum工具。
1.3.1. yum服务器
服务器也就是yum仓库,存放着rmp包、元数据metadata等信息。(元数据整理出每个rpm包的基本信息,包括rpm包对应的版本号,conf文件,binary信息,以及很关键的依赖信息)
仓库里面最重要的两个目录
/repodata:存放metadata文件/Packges:存放rpm包
搭建yum服务器
1.3.2. yum客户端
当客户端要安装软件时,会按照客户端配置文件里指定的服务器路径,去访问yum服务器,并下载metadata缓存到客户端。然后根据metadata确认软件包的版本号,所需要的依赖包等,然后再去yum服务器一次下载安装所需要的rpm包。
客户端配置文件
/etc/yum.conf
此文件提供了yum公共配置,定义了yum客户端基本的信息:
$ cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever # 指定元数据缓存路径
keepcache=0 # 安装后是否保留客户端的rpm包
debuglevel=2
logfile=/var/log/yum.log # 指定日志路径
exactarch=1
obsoletes=1
gpgcheck=1 # 是否进行gpg验证
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
/etc/yum.repos.d/*.repo
yum仓库配置文件都存放在/etc/yum.repos.d/目录下,并且以.repo为文件名尾缀。这些文件指定了具体的仓库名称、路径等信息
$ cat /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base #仓库名
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ #仓库路径
enabled:1 #是否使能该仓库
gpgcheck=1 #是否坚持gpg
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #gpgkey路径