首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载共享库libresolv.so.2时出错:没有这样的文件或目录(/lib/libclntsh.so需要)

加载共享库libresolv.so.2时出错:没有这样的文件或目录(/lib/libclntsh.so需要)
EN

Stack Overflow用户
提问于 2021-04-14 16:44:36
回答 1查看 1.2K关注 0票数 2

每次我尝试连接到Oracle DB时都会收到此错误:

代码语言:javascript
复制
DPI-1047: Cannot locate a 64-bit Oracle Client library: "Error loading shared library libnsl.so.1: N
o such file or directory (needed by /lib/libclntsh.so)". See https://oracle.github.io/node-oracledb/INSTALL.html for help
Node-oracledb installation instructions: https://oracle.github.io/node-oracledb/INSTALL.html
You must have 64-bit Oracle client libraries in LD_LIBRARY_PATH, or configured with ldconfig.
If you do not have Oracle Database on this computer, then install the Instant Client Basic or Basic Light package from
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

在我的Dockerfile中,我有这样的代码:

代码语言:javascript
复制
ENV LD_LIBRARY_PATH=/lib
RUN curl -OL https://download.oracle.com/otn_software/linux/instantclient/19600/instantclient-basic-linux.x64-19.6.0.0.0dbru.zip && \
    unzip instantclient-basic-linux.x64-19.6.0.0.0dbru.zip && \
    cp -r instantclient_19_6/* /lib && \
    rm -rf instantclient-basic-linux.x64-19.6.0.0.0dbru.zip && \
    apk add --no-cache libaio && \
    apk add --no-cache libaio libnsl libc6-compat && \
    cd /lib && \
    # Linking ld-linux-x86-64.so.2 to the lib/ location (Update accordingly)
    ln -s /lib64/* /lib && \
    ln -s libnsl.so.2 /usr/lib/libnsl.so.1 && \
    ln -s libc.so.6 /usr/lib/libresolv.so.2

我做错了什么?我也尝试过ln -s libc.so /usr/lib/libresolv.so.2,它似乎找不到libresolv.so.2

EN

回答 1

Stack Overflow用户

发布于 2021-04-16 18:28:22

我解决了这个问题

代码语言:javascript
复制
RUN chmod 755 /usr/local/bin/docker-entrypoint.sh && \
    mkdir /opt/oracle && \
    cd /opt/oracle && \
    curl -OL https://download.oracle.com/otn_software/linux/instantclient/19600/instantclient-basic-linux.x64-19.6.0.0.0dbru.zip && \
    unzip instantclient-basic-linux.x64-19.6.0.0.0dbru.zip && \
    rm -rf instantclient-basic-linux.x64-19.6.0.0.0dbru.zip && \
    cd /opt/oracle/instantclient_19_6 && \
    ln -s /usr/lib/libnsl.so.2 /usr/lib/libnsl.so.1 && \
    ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2 && \
    apk add --no-cache libaio libnsl libc6-compat && \
    echo "export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_6:/lib64:$LD_LIBRARY_PATH" >> /etc/profile.d/oracle_client.sh && \
    echo "export PATH=/opt/oracle/instantclient_19_6:$PATH" >> /etc/profile.d/oracle_client.sh
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67088381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档