一、YUM/DNF 服务架构解析
1.1 核心组件交互流程
sequenceDiagram
participant Client
participant YUM
participant Repository
participant RPMDB
Client->>YUM: yum install oracle-database-preinstall
YUM->>Repository: 获取元数据(repodata)
Repository-->>YUM: 返回软件包列表
YUM->>RPMDB: 检查已安装依赖
YUM->>Client: 显示解决方案
Client->>YUM: 确认安装
YUM->>Repository: 下载.rpm文件
Repository-->>YUM: 传输软件包
YUM->>RPMDB: 执行安装并更新数据库
1.2 Oracle Linux 仓库类型
仓库类型 |
访问方式 |
典型用途 |
ULN (Unbreakable Linux Network) |
在线认证 |
获取官方安全更新 |
本地镜像仓库 |
HTTP/NFS |
内网高速访问 |
Oracle Public Yum |
公共HTTP |
基础包获取 |
EPEL |
第三方源 |
扩展软件包支持 |
二、本地 YUM 仓库搭建
2.1 基础仓库创建
# 创建仓库目录结构
mkdir -p /var/www/html/repos/OracleLinux/OL9/baseos/x86_64
cp /mnt/iso/*.rpm /var/www/html/repos/OracleLinux/OL9/baseos/x86_64/
# 安装创建工具
dnf install -y createrepo
# 生成仓库元数据
createrepo -v /var/www/html/repos/OracleLinux/OL9/baseos/x86_64/
# 配置 Web 服务
systemctl enable --now httpd
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
三、ULN 仓库配置
3.1 注册系统到 ULN
# 安装所需工具
dnf install -y uln-registration
# 注册系统(需替换认证信息)
uln_register --username oracle_ocp_user --password MySecurePass123! \
--serverurl https://linux-update.oracle.com
# 查看已注册频道
uln-channel --list
四、故障排查与日志分析
4.1 常见问题处理
故障现象 |
排查命令 |
解决方案 |
仓库元数据无法下载 |
curl -v <repo_url>/repodata/repomd.xml |
检查网络/Firewall/路径权限 |
软件包依赖冲突 |
dnf repoquery --deplist <package> |
使用 --skip-broken 跳过 |
GPG 验证失败 |
rpm --import <new_key> |
更新 GPG 密钥 |
下载速度慢 |
dnf --setopt=timeout=30 install <pkg> |
调整超时时间或更换镜像源 |
4.2 关键日志文件
日志路径 |
信息类型 |
分析工具建议 |
/var/log/yum.log |
软件安装历史记录 |
grep "Installed:" |
/var/cache/dnf/* |
缓存元数据与软件包 |
du -sh 查看缓存大小 |
/var/log/httpd/access_log |
仓库访问日志 |
`awk '{print $1}' |
sort |
uniq -c` |
欢迎在评论区提交您的仓库配置案例或技术疑问!带你了解OCP证书含金量解析与高效备考攻略 | 2025年职业发展必备_博睿谷培训