如何在一台不能联网的 Linux 服务器上安装 Oracle 数据库的相关依赖

2020-05-09 16:02:32 +08:00
 smartG
在一个没有外网不能使用 yum 的环境内,安装 Oracle 数据库时,本地上传了所需要的依赖包,准备使用 rpm 安装,而 rpm 是一个互相依赖的网络状包,安装第一个包时提示需要 GLIBC_2.14 版本,然后就去升级 glibc,升级过程中又需要 gcc,然后去安装 gcc,安装 gcc 时提示又依赖另外 5 个包,每个包还有对应的版本,看的头都大了,不知各位大佬有什么好的方法可以解决吗
2993 次点击
所在节点    问与答
20 条回复
tomczhen
2020-05-09 16:06:56 +08:00
都用 Oracle 了,找甲骨文工程师解决不就好了。
asilin
2020-05-09 16:08:13 +08:00
使用 createrepo 将本地目录的 rpm 包建成一个本地仓库,然后在 yum 中配置添加本地仓库,即可使用 yum install
来安装了

如果包特别多,特别大,建立仓库索引的时间就比较长,这时可以使用 C 语言实现的 createrepo_c 命令来代替 createrepo,多线程操作。
gefranks
2020-05-09 16:09:04 +08:00
mount Linux 光盘 然后把 yum repo 指向那个光盘?
数据库安装文档里我记得是列出了依赖包和版本的
xwg999
2020-05-09 16:27:21 +08:00
挺难的
nijux
2020-05-09 16:34:05 +08:00
自己打包一个 Oracle 的 docker 镜像,在机器上离线安装 docker,在加载自己打包的 Oracle 镜像
xcai
2020-05-09 16:38:17 +08:00
@nijux #5 并不是啥情况都能使用 Docker
xcai
2020-05-09 16:38:29 +08:00
动不动就 Docker
dot2017
2020-05-09 16:39:23 +08:00
你需要一个 CD ISO
Shirakawa
2020-05-09 16:44:41 +08:00
不知道用虚拟机开个一样的系统通过 yum install yum-downloadonly 下载相关依赖,然后传到目标机器上 rpm -ivh * 行不行
MonoLogueChi
2020-05-09 16:48:47 +08:00
光盘安装,oracle 应该有完整的解决方案
EdgarZhang
2020-05-09 16:54:01 +08:00
什么系统?如果是 Centos 你把两张 DVD 盘都下载下来。
然后,百度找下如何合并两张光盘,并重新生成索引,搭建本地 yum 库。我之前干过。
hotsun168
2020-05-09 17:35:59 +08:00
看楼主的帖子瞬间回忆起刚入行的时候也是在没有外网的 Red Hat 5.5 装 Oracle 11g,当时不懂搭建本地 yum 库,缺一个包就拔掉内网网线插上外网网线找一个包,再把网线换回来传到服务器并安装,硬生生手工装了几十个包上去。最后安装成功时的感受真的是无法形容。
flexbug
2020-05-09 21:13:11 +08:00
我公司也用 Oracle Linux,当然有自建的 yum 源
kebyn
2020-05-09 23:32:29 +08:00
yum localinstall 可以直接安装所有本地依赖
chihiro2014
2020-05-09 23:33:55 +08:00
自己搞个 docker 镜像可以破
Jirajine
2020-05-09 23:49:16 +08:00
最简单的办法,在内网开一个能连外网的代理服务器,通过代理安装。
当然你要是说整个内网下所有设备的都不能连外网那你只能搭个本地源了。
iloveayu
2020-05-10 00:06:18 +08:00
下载对应你系统版本的光盘 ISO 安装,如果是 CentOS,有 Everything ISO 。
这种情况还用 Docker 的,不是添乱么。
viggoc
2020-05-10 00:13:24 +08:00
自己用过的两种方案

1. 用 Everything ISO 建立一个本地仓库

2. yum downloadonly 下载好相关依赖,上传
redstar78kg
2020-05-10 06:18:02 +08:00
安全生产环境,我推荐 centOS,不能联网,没关系,下载好 DVD,scp 上去,挂载后,yum 配置指向 DVD 就搞定了。 用 Debian,弄个 DVD 园就比较麻烦了。

如果 A 可以访问互联网,服务器 B 不能访问互联网,但是 A 可以 ssh 管理 B 。简单方案是,A 采用 brook 运行服务端,B 采用 brook 做客户端,B 上设定 terminal 代理,然后愉快地在 B 上使用 yum 。brook 只需要一行指令就可以运行,无需其他配置。GitHub release 有各种平台的二进制文件。
julyclyde
2020-05-12 14:37:10 +08:00
这就是兼容性认证的意义啊
经过认证的系统可以保证你对着文档能装出来

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/670025

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX