You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 22.04 LTS安装Oracle 11g 64位时make-3.80依赖缺失及其他依赖问题求助

Ubuntu 22.04 LTS安装Oracle 11g 64位时make-3.80依赖缺失及其他依赖问题求助

兄弟,你碰到的是老软件与新系统的版本兼容典型问题——Oracle 11g是2009年左右发布的老旧版本,而Ubuntu 22.04是非常新的LTS系统,系统里的软件包版本都远高于Oracle 11g预检查脚本里硬编码的要求,比如你装的make 4.3功能完全覆盖3.80,但预检查只认死版本号,所以才会报“missing”,并不是真的缺少这个工具。

下面给你几个可行的解决思路:

1. 直接跳过预检查错误

Oracle安装程序本身允许忽略这些预检查告警,你只需要在Prerequisite Checks界面,找到对应的make-3.80错误项,点击「忽略」,如果还有其他依赖错误,也可以选择「忽略全部」,然后继续安装流程。

大部分情况下,新版本的软件包是向下兼容的,make 4.3完全能满足Oracle 11g的编译需求,跳过预检查不会影响后续安装和使用。

2. 修改Oracle预检查脚本(针对较真的预检查逻辑)

如果你不想跳过,或者某些预检查跳过之后安装报错,可以手动修改Oracle安装介质里的预检查脚本,放宽版本判断条件:

  • 找到Oracle安装包解压后的prereq目录,里面有对应各个依赖检查的脚本(比如检查make的脚本可能叫check_make.sh之类的)
  • 打开脚本找到版本判断的代码段,把原本要求的make-3.80改成>=3.80,或者直接注释掉版本校验的逻辑
  • 保存脚本后重新运行预检查,就能通过了

3. 处理其他依赖的通用方案

你提到还有很多其他依赖找不到,本质上和make的问题一样——都是Oracle 11g的预检查只认旧版本,而Ubuntu 22.04里的包版本更高。除了上面的两种方法,你还可以:

  • 安装Ubuntu 22.04里对应功能的包,比如gcc、libc相关的包,哪怕版本高于要求,功能都是兼容的
  • 有些Oracle 11g的组件依赖32位库,Ubuntu 22.04默认没装,可以手动安装:
    sudo apt install lib32z1 lib32ncurses6 lib32stdc++6
    

额外提醒

Oracle 11g在Ubuntu 22.04上可能还会碰到内核版本过高、库文件路径不匹配等问题,如果你安装后遇到启动或运行报错,可以尝试设置环境变量指定库路径,或者调整内核参数,但核心思路还是用新版本兼容老软件,绕过死板的版本检查

备注:内容来源于stack exchange,提问作者alexis ibarra

火山引擎 最新活动