✎ 2024년

libnsl.so.1()(64bit) is needed by oracle-instantclient

위지원 2024. 5. 9. 18:02

문제의 서막..

 

redhat ubi8에서 진행하였고, oracle 19c에 연결하려 했다.

 

superset 에서 oracle을 연결할때 , cx_oracle과 더불어 instantclient도 필요하다고 해서 버전에 맞추어 19c를 설치하려했다.

 

그래서 공식페이지에서 rpm 파일을 받아서 아래처럼 설치를 진행하려했는데,

rpm -ivh oracle-instantclient19.19-basic-19.19.0.0.0-1.el9.x86_64.rpm

 

 

아래처럼 의존성 문제가 발생했다.

error: Failed dependencies:
        libnsl.so.1()(64bit) is needed by oracle-instantclient19.19-basic-19.19.0.0.0-1.x86_64

 

 

인터넷에 찾아보니 yum install libnsl 로 해결하라고 하는데, yum install dnf 전부 안 되었다.

No match for argument: libnsl
Error: Unable to find a match: libnsl

 

 

그럼 남은건,, 수동 설치뿐 이제 의존성 지옥에 빠지게 된다.

라이브러리 다운 경로를 정리해둔 아래 싸이트로 가서 libnsl 을 검색했고,

https://centos.pkgs.org/

 

 

아래처럼 존재하는 것을 확인할 수 있었다.

libnsl-2.28-251.el8.aarch64.rpm

 

그럼 또 다음과 같이 의존성 에러가 발생한다.

다시 의존성 사이트에서 두 라이브러리를 찾아서 다운로드해준다.

libnsl 설치하려고 하면 아래 의존성 에러 발생

error: Failed dependencies:
        glibc(x86-64) = 2.28-251.el8 is needed by libnsl-2.28-251.el8.x86_64
        
glibc 설치하려고 하면 아래 의존성 에러 발생

error: Failed dependencies:
        glibc-common = 2.28-251.el8 is needed by glibc-2.28-251.el8.x86_64
        glibc-langpack = 2.28-251.el8 is needed by glibc-2.28-251.el8.x86_64

 

근데 이 친구들이 서로 의존하는 친구다...ㅠㅠ 그래서 아래 순서로 진행했다.

 

1. common과 langpack을 --nodeps 옵션으로 의존성을 무시하고 설치했다.

2. common 같은경우는 기존 버전과 충돌 나서 rpm -ivh 가 아니라 rpm -Uvh로 업그레이드해줬다.

3. 이제 다시 glibc를 설치해줬다.

 

그리고 나서 libnsl을 설치하면!!!!

ㅜ.ㅜ 드디어 성공 

sh-4.4# rpm -ivh libnsl-2.28-251.el8.x86_64.rpm
warning: libnsl-2.28-251.el8.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:libnsl-2.28-251.el8              ################################# [100%]

 

 

오라클 client도 깔끔하게 설치 완료되었다!!

Updating / installing...
   1:oracle-instantclient19.23-basic-1################################# [100%]

 

신난다 ><