暂无图片
暂无图片
1
暂无图片
暂无图片
1
暂无图片

rhel8安装Oracle19c缺少libnsl如何解决

DigOps 2022-03-28
6153

具体报错如下面代码,是说找不到共享库libnsl.so.1
,因此无法进行安装。

    /u01/app/oracle/product/19.3.0/dbhome_1/perl/bin/perl: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory
    复制

    1. libnsl和libnsl.so.1是什么关系?

    libnsl是库名称,在安装好以后,会在/lib64目录下生成实际的库文件libnsl.so.1.0.0
    ,而libnsl.so.1
    libnsl.so.1.0.0
    的软链接。

    2.libnsl
    是干什么的?

    这个介绍的材料不多,且关于LInux底层开发的一些东西。但我还是想弄清楚Oracle在安装的时候为什么要依赖这个。

    要了解libnsl.so.1
    ,首先要了解NIS(network information serivce),翻译成中文是网络信息服务,主要作用是一种识别和定位网络对象和资源的机制,不仅存储有关机器名称和地址的信息,还存储有关用户、网络本身和网络服务的信息。要区别于DNS,DNS主要作用是通过主机名称而不是ip地址的方式简化通信。NIS的通信是分为服务端和客户端的,要通信就存在通信接口,早期NIS的通信接口是通过glibc实现的,而现在,我们用上RHEL8的版本后,NIS的接口已经从glibc移除,而是通过libnsl来独立实现。

    3. Oracle19c安装为什么需要libnsl
    ?

    我查了一下Oracle官方文档,在Database文档中,只有Oracle Net Services章节有介绍NIS,在sqlnet.ora中的NAMES.DIRECTORY_PATH有可能被使用到,当然默认值是没有NIS的。因此也就是为了兼容才会用到,这种方式几乎已经不会用到了。

    在GRID文档中,只有Grid Naming Service上会用到,在/etc/nsswitch.conf
    中配置解析策略,Oracle自己都不建议用的,如果网络问题,会对解析造成很大问题。

    总结以上两点,可以看出,要libnsl
    只是为了客户的使用场景可能会用到NIS。并不是强依赖的。

    4. 为什么RHEL8安装Oracle 19c会报libnsl.so.1
    找不到

    这是因为在RHEL8上默认安装了libnsl
    的2.0升级版本,2.0版本对IPV6支持的更出色。因此我们可以在/lib64目录下找到libnsl.so.2.0.0
    。当然RHEL7是不会出这个问题的。

    5.该如何解决libnsl.so.1
    找不到的问题?

    有两种方法可以解决:

    1. 通过yum安装libnsl
      yum install libnsl
      复制
      1. 通过修改软链接方式进行欺骗
      • 在没有yum源的情况下可以考虑此方法
        cd /lib64
        ln -s libnsl.so.2.0.0 libnsl.so.1
        复制

        其他小问题

        在rhel8上安装Oracle 19c时,要先执行以下命令,不然会报操作系统不匹配。这是因为19c安装包有bug,命中Bug 30286976

          export CV_ASSUME_DISTID=OL7
          复制

          参考文档:

          How to install libnsl.so.1 in Red Hat Enterprise Linux 8.1? - Red Hat Customer Portal

          rhel8: Warning about linking a program with both libnsl.so.1 and libnsl.so2 - Red Hat Customer Portal

          https://github.com/thkukuk/libnsl

          Parameters for the sqlnet.ora File (oracle.com)

          Issues Affecting Linux for Oracle Database 19c

          文章转载自DigOps,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论

          hjx
          暂无图片
          9月前
          评论
          暂无图片 0
          厉害了我的哥,只看见你说了原理
          9月前
          暂无图片 点赞
          评论