CentOS 使用 yum, dnf 解决rpm的包依赖关系
YUM: Yellowdog Update Modifier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具,CentOS 8 用dnf 代替了yum ,不过保留了和yum的兼容性,配置也是通用的。
1、yum/dnf 工作原理
yum/dnf 是基于C/S 模式
- yum 服务器存放rpm包和相关包的元数据库
- yum 客户端访问yum服务器进行安装或查询等
yum 实现过程
- 先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关元数据文件(放置于特定目录repodata下)
- yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
2、yum客户端配置
#yum客户端配置文件
/etc/yum.conf #为所有仓库提供公共配置
/etc/yum.repos.d/*.repo: #为每个仓库的提供配置文件
#repo仓库配置文件指向的定义
[repositoryID]
name=Some name for this repository
baseurl=url://path/to/repository/
enabled={1|0}
gpgcheck={1|0}
gpgkey=URL
enablegroups={1|0}
failovermethod={roundrobin|priority}
roundrobin:意为随机挑选,默认值
priority:按顺序访问
cost= 默认为1000
#yum服务器的baseurl形式
file:// 本地路径
http://
https://
ftp://
#yum仓库指向的路径一定必须是repodata目录所在目录
#相关变量
yum的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号,如:8,7,6
$arch: CPU架构,如:aarch64, i586, i686,x86_64等
$basearch:系统基础平台;i386, x86_64
$contentdir:表示目录,比如:centos-8,centos-7
$YUM0-$YUM9:自定义变量
#简单配置一个本地镜像源yum文件
mount /dev/sr0 /mnt/
mkdir /iso
cp -r /mnt/* /iso/
vim /etc/yum.repos.d/centos.repo
[iso]
name=iso
gpgcheck=0
enabled=1
baseurl=file:///iso/
yum clean all
yum makecache
#可以使用阿里源或者其他国内源
https://developer.aliyun.com/mirror/
https://mirrors.tuna.tsinghua.edu.cn/
3、yum命令
dnf用法与yum一致
yum [options] [command] [package ...]
-y #自动回答为"yes"
-q #静默模式
--nogpgcheck #禁止进行gpg check
--enablerepo=repoidglob #临时启用此处指定的repo,支持通配符,如:"*"
--disablerepo=repoidglob #临时禁用此处指定的repo,和上面语句同时使用,放在后面的
生效
#显示仓库列表
yum repolist [all|enabled|disabled]
#显示仓库的详细信息
yum repolist -v
#显示程序包
yum list
yum list [all | glob_exp1] [glob_exp2] [...]
yum list {available|installed|updates} [glob_exp1] [...]
#查看已经安装的包
yum list installed|head
#查看可安装的包
yum list available |head
#查看可以升级的包
yum list updates
#查看指定的包
yum list mysql
#支持通配符
yum list mysql*
#只下载相关的依赖包,而不安装
#/data/目录如果不存在,会自动创建
yum -y install --downloadonly --downloaddir=/data/httpd httpd
#卸载
yum remove | erase package1 [package2] [...]
#升级和降级
yum check-update
yum upgrade|update [package1] [package2] [...]
yum upgrade-minimal #最小化升级
yum downgrade package1 [package2] [...] (降级)
#查询包信息
yum info [...]
#以指定的关键字搜索程序包名及summary信息
yum search string1 [string2] [...]
#查看指定包所依赖的capabilities
yum deplist package1 [package2] [...]
#清除目录/var/cache/yum/缓存
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
#构建缓存
yum makecache
#查看yum事务历史
#yum 执行安装卸载命令会记录到相关日志中
#CentOS 7以前版本日志
/var/log/yum.log
#CentOS 8 版本日志
/var/log/dnf.rpm.log
/var/log/dnf.log
yum history [info|list|packages-list|packages-info|summary|addoninfo|redo|undo|rollback|new|sync|stats]
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END