【linux】配置YUM/DNF仓库
概念:
YUM (Yellow dog Updater,Modified) ,RHEL9中默认使用的软件批量管理工具由原版本的yum换成了速度更快的dnf(DNF = Dandified YUM),原有的yum命令仅为dnf的软链接,当然依旧可以使用。
YUM/DNF 功能
- 在线下载、 安装、 卸载、 升级rpm软件包
- 自动查找并解决rpm包之间的依赖关系,一次性安装所有具有依赖关系的rpm包,而无需管理员逐 个、 手工地去安装每一个rpm包
- 首先将编译好的rpm软件放置在YUM服务器中,并将这些软件的依赖性等信息记录下来形成表格组成数据库,YUM软件仓库包含编译好的软件和软件依赖关系数据库。
- 当用户输入 yum install 软件包 时,客户机系统会去读取 /etc/yum.repos.d/ 目录下的所有以 .repo 结尾的文件,从该文件中读取软件仓库实现装包:(rhel8开始有两个仓库,rhel7只有一 个仓库)
- BaseOS存储库:提供一套核心的底层操作系统功能,为基础软件安装库
- AppStream存储库:包括额外的用户空间应用程序、运行时语言和数据库
- 用户安装软件时会向网络中的YUM服务器下载对应表格并与本机RPM数据库进行比较,最后一同下 载全部软件进行安装,自动解决软件包之间的依赖性。
YUM的常用命令详解:
# 查看包、包组相关信息
yum repolist [all] # 查看系统中yum资源库配置信息
yum list all # 列出仓库里所有可安装的软件包
yum list installed [包名] # 列出己经安装的所有的或指定的rpm包(包名中可使用匹配符)
yum info 包名 # 查看指定软件包的详细信息
yum grouplist # 查看仓库里而所有包组
yum groupinfo 包组名 #查看指定包组里而的详细信息
# 安装、更新包和包组
yum install [-y] 包名 # 安装指定的软件包,-y则在工作过程中需要使用者响应, 这个选个参数
可以直接回答yes
yum update [-y] 包名 # 升级指定的软件包或主机中所有已安装的软件包
yum groupinstall 包组名 # 安装指定包组里面的所有包
# 卸载软件包
yum remove [-y] 包名 # 卸载已经安装在系统中的指定的软件包
# 搜索文件由哪个包产生
yum provides 文件名 # 查找指定的文件属于哪个包
yum whatprovides /etc/fstab # 查看这个文件是由那个包提供的
# 模糊搜索包名
yum search 模糊包名 # 查看模糊包名的软件包
# 清空缓存
yum clean packages all # 清除下载到本机的指定的软件包或所有软件包的yum源缓存
配置YUM源
(1)建立本地源
步骤:
- 将本地的光盘挂载到本地的目录/media下(也可以自己指定目录)
- 备份已存在的yum源配置文件,使其失效
- 在/etc/yum.repos.d/目录下新建本地yum源配置文件(注意:以.repo结尾)
- vim编辑写入内容
- 重建缓存(容易忘记)
- 验证是否配置成功
# 将本地光盘挂载至本地目录/media下
[root@server /]# mount /dev/cdrom /media
mount: /media: WARNING: source write-protected, mounted read-only.
# 注意有2个yum源
[root@server /]# cd /media/
[root@server media]# ls
AppStream EFI extra_files.json images media.repo
RPMGPG-KEY-redhat-release BaseOS
EULA GPL isolinux RPM-GPG-KEY-redhat-beta
# 切换目录到yum源配置文件路径
[root@server media]# cd /etc/yum.repos.d
[root@server yum.repos.d]# ls
CentOS-9-Stream.repo redhat.repo
# 备份已存在yum源配置文件,使其失效
[root@server yum.repos.d]# mv CentOS-9-Stream.repo CentOS-9-Stream.repo.back
[root@server yum.repos.d]# mv redhat.repo redhat.repo.back
[root@server yum.repos.d]# ls
CentOS-9-Stream.repo.back redhat.repo.back
# 新建本地yum源配置文件
[root@server yum.repos.d]# vim dvd.repo
[BaseOS] #仓库标识
name=BaseOS #仓库名称
baseurl=file:///media/BaseOS #仓库位置
gpgcheck=0 #是否进行仓库中软件包校验,为0则不校验
[Appstream]
name=Appstream
baseurl=file:///media/AppStream
gpgcheck=0
# 重建缓存
[root@server yum.repos.d]# yum makecache
[root@server yum.repos.d]# yum repolist
# 验证能否装包成功
[root@master ~]# yum install tree -y
(2)建立网络源
方法同上本地yum的建立
- Redhat9暂时无公开的网络源,可以使用Centos9的yum源
- 重建缓存生效
#示例
[root@master01 yum.repos.d]# cat aliyun.repo
[ali-app]
name=ali-app
baseurl=https://mirrors.aliyun.com/centos-stream/9-
stream/AppStream/x86_64/os/
gpgcheck=0
[ali-base]
name=ali-base
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/x86_64/os/
gpgcheck=0