Linux yum的实现和配置

  • Linux yum的实现和配置已关闭评论
  • 199 次浏览
  • A+
所属分类:linux技术
摘要

使用yum或dnf解决rpm包的依赖关系。yum 服务器存放rpm包和相关rpm包的元数据库(一个叫做repodata的文件夹–存放包的列表、依赖关系等信息)
yum 客户端访问yum服务器进行安装或查询等
客户端通过yum命令进行相关操作的时候,会通过客户端的配置文件连接到对应的仓库操作。
客户端会下载yum服务器的repodata到自己的缓冲区,通过对元数据检索找到对应的软件。
然后下载到客户端,按照一定要求进行安装。最后会删除掉下载的rpm包,repodata会保留下来

使用yum或dnf解决rpm包的依赖关系。

YUM:Yellowdog Update Modifier。是rpm的前端程序

作用:解决软件包之间的依赖关系

yum工作原理:

yum 服务器存放rpm包和相关rpm包的元数据库(一个叫做repodata的文件夹--存放包的列表、依赖关系等信息)
yum 客户端访问yum服务器进行安装或查询等
客户端通过yum命令进行相关操作的时候,会通过客户端的配置文件连接到对应的仓库操作。
客户端会下载yum服务器的repodata到自己的缓冲区,通过对元数据检索找到对应的软件。
然后下载到客户端,按照一定要求进行安装。最后会删除掉下载的rpm包,repodata会保留下来

yum实现过程:

1.首先在yum服务器上创建仓库 -- 仓库存储相关包和元数据信息
2.客户端使用yum工具进行包的安装时,自动下载repodata中的元数据,查询是否存在依赖关系
3.从仓库中下载相关的包进行安装

yum仓库里面至少要存在两个文件:

  1. 存放包的目录文件
  2. 存放元数据信息的目录文件
    centos7只有要给repodata。包和元数据都放在一起。
    EPEL:额外企业级的仓库包

yum客户端配置:

想要使用yum安装软件,需要进行客户端的配置。

配置文件:

作用:告诉客户端机器yum仓库在哪儿

/etc/yum.conf #为所有仓库提供公共配置 --- 了解就行,不用修改 /etc/yum.repos.d/*.repo: #为每个仓库的提供配置文件 --- yum客户端配置文件 

repo仓库配置文件基本格式义:

[repositoryID] --- #仓库的id(唯一) name=Some name for this repository --- #仓库的描述 baseurl=url://path/to/repository/  --- #去哪儿找到仓库(仓库路径:能看到repodata) 一行可以放一个地址的路径 gpgcheck={1|0}  --- #安装软件之前要不要进行校验 gpgkey=URL --- #开启校验就要指定gpgkey(不开启就不配置)  

一个repo文件里面也可以放多个仓库配置信息
例:baseurl指定url

baseurl=http://mirrors.aliyun.com/epel/$releasever/Everything/$basearch         http://mirrors.huaweicloud.com/epel/$releasever/Everything/$basearch 

yum服务器的baseurl支持一下四种地址形式:

file:// 使用本地路径
http:// 使用网络地址
https://
ftp://
注意:yum仓库指向的路径一定必须是repodata目录所在目录

baseurl 指向的路径

阿里云提供了写好的CentOS和ubuntu的仓库文件下载链接: http://mirrors.aliyun.com/repo/
CentOS系统的yum源:

#阿里云 https://mirrors.aliyun.com/centos/$releasever/  #腾讯云 https://mirrors.cloud.tencent.com/centos/$releasever/  #华为云 https://repo.huaweicloud.com/centos/$releasever/  #清华大学 https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/ 

EPEL的yum源:

#阿里云 https://mirrors.aliyun.com/epel/$releasever/x86_64 #腾讯云 https://mirrors.cloud.tencent.com/epel/$releasever/x86_64 #华为云 https://mirrors.huaweicloud.com/epel/$releasever/x86_64 #清华大学 https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64 

范例:为CentOS7用系统安装光盘作的本地yum仓库
1.挂载光盘到某个目录 -- mount /dev/cdrom /mnt/cdrom
2.创建yum服务器的配置文件

vim /etc/yum.repos.d/centos7.repo [CentOS7] name=CentOS 7 baseurl=file:///mnt/cdrom #file:// 代表本地地址 gpgcheck=0 enabled=1 #注意:与之前的版本不同,CentOS 8 系统有两个yum 源:BaseOS和AppStream ,需要分别设置两个仓库 

yum应该配置的两个基本源

  1. 光盘源
  2. epel源:存放了大量丰富的软件
    epel源配置方式:
    方法一:
    epel源的gpgkey不是在本地
    yum -y install epel-release 安装这个以后就会生成epel的配置
    卸载这个软件包就自动移除了epel源
    方法二:
    使用国内的镜像站点自己编写对应的配置文件

yum相关命令

格式: yum [option] [command] [package]
选项:
-y:自动回答‘yes’

显示仓库列表:

yum repolist --- 可以查询本地配置了多少个yum源的信息
选项:
-v: 显示yum源的详细信息

显示程序包:

yum list --- 列出当前仓库中所有的程序包
yum list available -- 只列出没有装好的程序包
yum list installed --- 只列出装好了的程序包
yum list xxxx ---查看指定的包是否存在yum源中
yum info xxx --- 查看软件包的相关信息

安装程序包:

yum install package
只下载不安装:yum -y install --downloadonly --downloaddir=xxx packagename

卸载程序包:

yum remove package

升级程序包:

yum update

查询:

查看指定的特性(可以是某文件)是由哪个程序包所提供:yum provides | whatprovides feature1 [feature2] [...]