当前位置: 首页 > news >正文

RHEL9 DNF/YUM仓库管理软件包

DNF/YUM仓库管理软件包

  • 一个基于RPM包的软件包管理器
  • 能够从指定的服务器自动下载RPM包并且安装,自动处理依赖性关系,并且一次性安装所有依赖的软件包
  • C/S模式
    • Server服务端提供RPM软件包与数据库文件repodata
    • Client客户端使用dnf仓库

常用组合

组合参数意义
dnf info查看软件包详情rpm -qip
dnf install安装软件包rpm -ivh
dnf list显示全部软件包名称rpm -a
dnf search搜索仓库中的指定软件包`rpm -qa
dnf version显示版本信息
dnf update更新软件包需要订阅或拥有开发者权限
dnf remove删除软件软件包rpm -evh
dnf history查看使用dnf进行的历史操作
dnf provides查询文件来源rpm -qf

列出软件包

dnf list "chor*"  # 使用通配符模糊查询
dnf list   # 列出所有包

在这里插入图片描述

列出包组,我们可以直接安装整个服务,而不需要一个一个安装

dnf grouplist

在这里插入图片描述

搜索对应的包

dnf search ntp    # dnf search NAME

在这里插入图片描述

搜索包的作用、信息

dnf info dos2unix  # 从软件仓库中搜索,即使软件包没有安装
# dnf info package_name

在这里插入图片描述

查看历史记录,可以查看使用dnf进行了什么操作

dnf history

在这里插入图片描述

查询文件来源

# 如果使用rpm,我们要指定文件的绝对路径
rpm -qf /etc/chrony.conf# dnf 可以使用通配符代替路径
dnf provides *chrony.conf# 搜索命令的来源文件,显示搜寻不到结果,在没有订阅的前提下,需要搭建第三方软件仓库
dnf provides sl

在这里插入图片描述
在这里插入图片描述

DNF和YUM其实一个东西,只是YUM是DNF的前身,通过查询命令可以看到其实都是连接到dnf-3上

which dnf
which yum
ll /usr/bin/dnf
ll /usr/bin/yum

在这里插入图片描述

查看存在的软件仓库

在RHEL7版本中,AppStream和BaseOS两个是在一个目录下;从RHEL8版本后开始分开放

  • 通过web查看(默认会一个Web共享),可以通过web访问http://content

  • 查看本地目录
    在这里插入图片描述

BaseOS:指的是系统包(例如web服务)

AppStream:应用软件包

ll /content/rhel9.0/x86_64/dvd/AppStream
ll /content/rhel9.0/x86_64/dvd/repodata

我们可以发现在文件夹内都存在相同的文件夹

  • Packages:RPM软件包
  • repodata:软件包索引
    在这里插入图片描述

查看当前已经启用仓库

dnf repolist

在这里插入图片描述

查看当前主机所有仓库,包括未启用

dnf repolist all

在这里插入图片描述

启用指定的仓库

dnf config-manager --enable openstack-17-tools-for-rhel-9-x86_64-debug-rpmsdnf config-manager --disenable openstack-17-tools-for-rhel-9-x86_64-debug-rpms  # 关闭

在这里插入图片描述

DNF仓库客户端配置

查看所有仓库文件

ll /etc/yum.repos.d/*.repo

在这里插入图片描述

查看redhat.repo仓库文件,这个是由订阅管理自动生成的内容
在这里插入图片描述

以第一段内容为例

  • [xxxx]:表示ID(唯一)
  • name:仓库名
  • baseurl:仓库地址
  • enabled:是否启用仓库
  • gpgcheck:是否检测签名(通过公钥检测)
  • gpgkey:公钥地址
  • sslverify:是否启用https
  • sslcacert:https使用的CA证书
  • sslclientkey:https使用的Client私钥
  • sslclientcert:https使用的Client证书
  • metadata_expire:仓库元数据(例如,软件包列表、依赖关系等)在本地缓存中的过期时间,针对Red Hat官方仓库的特定设置,以确保与官方仓库的同步和更新
  • enabled_metadata:自定义配置项
[名称]  --- 用于区分不同的源
name=  --- 名称/注释信息
baseurl=  --- 指定仓库/源的URL地址enabled=  --- 用于指定是否启用这个仓库/源 [enable也可以写成enable]0--- 不使用这个仓库1--- 使用这个仓库gpgcheck=  --- 用于指定安装的软件包是否要进行数字签名的验证0--- 不对每个安装包进行数字签名验证1--- 对每个包做数字签名验证gpgkey=/path/  如果gpgcheck=1,则需要使用此选项指定公钥;如果gpgcheck=0,可以不写
通过修改配置文件自定义软件仓库/软件源
rm -rf /etc/yum.repos.d/*.repo   # 先删除原有的所仓库文件
vim /etc/yum.repo/yum.repo  # 创建仓库文件,文件名自定义即可,只需要保证后缀为.repo# 写入下列内容
[AppStream]
name=AppStream
baseurl=file:///content/rhel9.0/x86_64/dvd/AppStream
enabled=1   # 默认启用 可以不写
gpgcheck=0  # 默认启用,0为不启用仓库检查
# 不写的话此处默认为gpgcheck=1
# 还需要额外指定证书[gpgkey=file:///content/rhel9.0/x86_64/dvd/RPM-GPG-KEY-redhat-release ][BaseOS]
name=BaseOS
baseurl=file:///content/rhel9.0/x86_64/dvd/BaseOS
enabled=1
gpgcheck=0

通过查看/etc/yum.repo文件可以查看默认选项
在这里插入图片描述

安装软件包

dnf install ftp

在这里插入图片描述

删除软件包

dnf remove ftp -y 

在这里插入图片描述

通过命令行自定义软件仓库/软件源
rm -rf /etc/yum.repos.d/*  # 分别测试,删除上述文件
dnf config-manager --help   # 我们可以查看到一个选项[--add-repo URL,添加后自动启用]

在这里插入图片描述

dnf config-manager --add-repo file:///content/rhel9.0/x86_64/dvd/BaseOS
dnf config-manager --add-repo file:///content/rhel9.0/x86_64/dvd/AppStream

在这里插入图片描述

查看添加后的仓库文件

ll /etc/yum.repos.d

在这里插入图片描述

可以发现仓库文件内容缺少了一条gpgcheck=0,其没有指定公钥

  • 可以修改/etc/yum.conf文件,将gpgchek=0 --> gpgcheck=1
vim /etc/yum.conf# 修改文件内容
gpgcheck=0

在这里插入图片描述

  • 或者在仓库文件末尾追加一行gpgcheck=1
echo "gpgcheck=1" >> /etc/yum.repos.d/content_rhel9.0_x86_64_dvd_AppStream.repo
echo "gpgcheck=1" >> /etc/yum.repos.d/content_rhel9.0_x86_64_dvd_BaseOS.repo

查看追加后的内容
在这里插入图片描述

测试安装软件

dnf -y install ftp

在这里插入图片描述

第三方DNF仓库

因为只有Foundation可以联网,所以在Foundation上进行实验。

EPEL(Extra Packages for Enterprise Linux)是一个为Red Hat Enterprise Linux(RHEL)、CentOS以及其他兼容的系统提供额外软件包的仓库。

搭建RHEL的仓库

首先查询当前主机的版本

cat /etc/redhat-release

在这里插入图片描述

访问南京大学的镜像站,baseurl实际就是repodata所在的路径

# https://mirror.nju.edu.cn/epel/RHEL版本/Everything/系统架构
https://mirror.nju.edu.cn/epel/9/Everything/x86_64/

搭建软件仓库,自主选择搭建的方式

vim /etc/yum.repos.d/epel_nju.repo# 写入下列内容
[nju]
name= nju
baseurl= https://mirror.nju.edu.cn/epel/9/Everything/x86_64/
enabled=1
gpgcheck=0

在这里插入图片描述

继续检索上面搜索不到的sl命令来源

dnf provides sl

在这里插入图片描述

安装

dnf install sl

在这里插入图片描述

查看软件包中的包含的文件

rpm -ql sl

在这里插入图片描述

查看效果

sl

在这里插入图片描述

搭建CentOS的仓库

我们先把sl删除,然后在把所有仓库文件删除

dnf remove sl
rm -rf /etc/yum.repos.d/*.repo

访问南京大学镜像站,查找Centos

https://mirror.nju.edu.cn/centos/8-stream/AppStream/x86_64/os/
https://mirror.nju.edu.cn/centos/8-stream/BaseOS/x86_64/os/

搭建软件仓库,这里我们使用命令添加的方式

dnf config-manager --add-repo https://mirror.nju.edu.cn/centos/8-stream/AppStream/x86_64/os/
dnf config-manager --add-repo https://mirror.nju.edu.cn/centos/8-stream/BaseOS/x86_64/os/# 别忘记要添加“不对每个安装包进行数字签名验证”,也就是gpgcheck=0,默认=1;这里我们直接修改主文件
vim /etc/yum.conf
gpgcheck=1   -->  gpgcheck=0

在这里插入图片描述
在这里插入图片描述

查看所有仓库文件
在这里插入图片描述

如果不想出现redhat.repo,可以取消订阅

subscription-manager unregister

在这里插入图片描述

搜索openssh包

dnf search openssh

在这里插入图片描述

第三方RPM包

https://pkgs.org/

可以搜索我们需要的RPM包
在这里插入图片描述

Official代表官方的
在这里插入图片描述

相关文章:

  • 【More Effective C++】条款24:了解虚函数的成本
  • day16_购物车(添加购物车,购物车列表查询,删除购物车商品,更新选中商品状态,完成购物车商品的全选,清空购物车)
  • springboot单体项目链路日志跟踪及接口耗时
  • Sklearn线性回归
  • WebSocket:实现客户端与服务器实时通信的技术
  • 考研复习C语言初阶(4)+标记和BFS展开的扫雷游戏
  • 嵌入式学习37-TCP并发模型
  • 铅酸充电器开关电源设计
  • k8s-生产级的k8s高可用(2) 25
  • 目标检测数据集:手机顶盖焊缺陷检测数据集
  • Midjourney绘图欣赏系列(十一)
  • 美团2025春招第一次笔试题
  • GIS之深度学习10:运行Faster RCNN算法
  • window.postMessage学习(问答式)
  • 怎么判断你的模型是好是坏?模型性能评估指标大全!
  • 345-反转字符串中的元音字母
  • Effective Java 笔记(一)
  • es6--symbol
  • HTML-表单
  • Java 网络编程(2):UDP 的使用
  • javascript从右向左截取指定位数字符的3种方法
  • js面向对象
  • MySQL的数据类型
  • 翻译:Hystrix - How To Use
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 使用 @font-face
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 在Unity中实现一个简单的消息管理器
  • postgresql行列转换函数
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • (k8s中)docker netty OOM问题记录
  • (补)B+树一些思想
  • (分布式缓存)Redis分片集群
  • (分类)KNN算法- 参数调优
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (五)c52学习之旅-静态数码管
  • (一) storm的集群安装与配置
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转)一些感悟
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .Net - 类的介绍
  • .NET : 在VS2008中计算代码度量值
  • .NET的数据绑定
  • .net经典笔试题
  • /boot 内存空间不够
  • ??myeclipse+tomcat
  • @JoinTable会自动删除关联表的数据
  • [AIGC] MySQL存储引擎详解
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用