Oracle Linux 7如何用Yum源自动安装所有依赖包?

作者:技术拾光时间:2026-07-21 08:27:04浏览:227

在OracleLinux7上部署Oracle11gR2,使用元包oracle-rdbms-server-11gR2-preinstall自动安装依赖并配置系统。需正确配置yum源:ISO挂载后路径根据版本指定为/Server/Packages或/BaseOS/Packages,并设置gpgcheck=0。避免混用非Oracle源导致冲突。

在Oracle Linux 7上部署Oracle 11gR2,最省心的方式不是手动翻找几十个RPM包,而是直接安装一个元包——oracle-rdbms-server-11gR2-preinstall.x86_64。这个包不包含数据库本体,但会自动拉齐所有依赖、创建oracle用户、配置好内核参数和资源限制。

不过前提是Yum源必须先配置好,否则执行yum install只会收到“No package available”。ol7_latest或ol7_uX_base这两个仓库中才有这个包,默认的base和updates里找不到。建议先用yum repolist确认仓库状态是否为enabled。

Oracle Linux 7如何用Yum源自动安装所有依赖包?

本地ISO源配置容易漏掉的关键路径

将Oracle Linux 7的ISO挂载到/mnt后,很多人以为baseurl=file:///mnt就能直接使用——结果报错找不到包。问题出在ISO内部结构:RPM包实际位于/mnt/Server/Packages或/mnt/BaseOS/Packages,具体取决于ISO版本。早期OL7.0–7.6使用Server,OL7.9+使用BaseOS。

  • 正确写法:baseurl=file:///mnt/BaseOS/Packages(新版)或file:///mnt/Server/Packages(旧版)
  • gpgcheck=0必须显式设置为0,否则本地源因缺少GPG密钥会失败;enabled=1也不能遗漏
  • 执行yum clean all && yum makecache后再试,旧缓存可能掩盖路径错误

离线环境必须禁用gpgcheck并跳过metadata验证

网络不可达时,Yum默认会尝试连接远程元数据服务器验证仓库,导致超时卡住。即使本地源配置正确,也会卡在“Metadata Cache Created”之前。

  • 临时方案:添加--nogpgcheck参数,如yum install --nogpgcheck oracle-rdbms-server-11gR2-preinstall
  • 永久方案:在repo文件中设置gpgcheck=0和metadata_expire=0,防止Yum定期检查过期
  • 若仍提示“Cannot retrieve metalink”,说明Yum还在试图联网——检查是否启用了其他远程源(如epel),用yum repolist enabled确认只保留本地源

依赖包版本冲突常源于混用CentOS和OL源

在Oracle Linux 7上误加CentOS的epel或baseos源,会导致glibc、libaio等关键包版本不一致,yum install报“package conflicts with…”或“requires newer version”。Oracle官方包只适配OL自带的内核和库版本。

  • 删除所有非Oracle官方的.repo文件,只保留public-yum-ol7.repo或您自建的本地源文件
  • 运行yum distro-sync强制对齐系统基础包版本,再重试Preinstall安装
  • 如果已安装冲突包,先用rpm -e --nodeps 包名卸载后再走Yum流程,不要硬凑rpm -ivh

实际部署时,最常卡住的不是命令本身,而是源路径写错、gpgcheck没关、或者多源混用导致的静默冲突。确认这三点,oracle-rdbms-server-11gR2-preinstall就能真正发挥“自动装全依赖”的作用。