답변:
우선 Instant Client 다운로드 를 다운로드해야합니다 . 터미널에 다음 명령을 입력하여 rpm 패키지를 설치할 수 있도록 외계인 패키지를 설치하십시오.
sudo apt-get install alien
완료되면 rpm 파일이있는 폴더로 이동하여 다음을 실행하십시오.
sudo alien -i oracle-instantclient*-basic*.rpm
sudo alien -i oracle-instantclient*-sqlplus*.rpm
sudo alien -i oracle-instantclient*-devel*.rpm
설치해야합니다 libaio.so
. 다음 명령을 입력하여 수행하십시오.
sudo apt-get install libaio1
Oracle 구성 파일을 작성하십시오.
sudo sensible-editor /etc/ld.so.conf.d/oracle.conf
이 줄을 해당 파일에 넣으십시오.
/usr/lib/oracle/<your version>/client/lib/
참고-64 비트 설치의 경우 경로는 다음과 같습니다.
/usr/lib/oracle/<your version>/client64/lib/
다음 명령을 실행하여 구성을 업데이트하십시오.
sudo ldconfig
다음을 사용하여 연결을 시도하십시오.
sqlplus username/password@//dbhost:1521/SID
또는:
sqlplus testuser/password
64 비트 버전을 설치 한 경우 클라이언트를 호출 sqlplus64
합니다.
외계인은 다음과 같은 이유로 작동하지 않았습니다.
Error: cannot open Name index using db5 - Permission denied (13)
그래서 쉬운 해결책을 찾았습니다. Oracle (기본 및 sqlplus) 에서 zip 파일을 다운로드하고 압축을 풀고 프로그램 파일을 넣은 폴더를 넣으십시오 (예 :) . 그런 다음 라이브러리를 찾을 수 있도록 변수를 설정 한 후 실행 파일을 실행하는 스크립트를 작성하십시오 ./usr/share
LD_LIBRARY_PATH
#!/bin/bash
DIR=/usr/share/instantclient_12_2 # <------- adjust this to the path you use
export LD_LIBRARY_PATH="$DIR"
"$DIR"/sqlplus "$@"
그것을 호출하고 sqlplus
실행 가능하게 만들고 ( chmod 755 sqlplus
) bash가 찾도록 디렉토리 PATH
(예 :)에 넣으 /usr/bin/
십시오.
다음과 같이 실행
sqlplus user/password@host:port/service
당신이 얻는다면
error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
라이브러리를 설치 sudo apt-get install libaio1
이 링크 가 도움 이 될 것이라고 생각합니다 . 꽤 설명 적입니다. 모든 단계를 따르십시오. 그래도 문제가 있으면 주저하지 말고 의견을 보내십시오.
물론 올바른 설치는 위와 같은 공식 패키지 ( Instant Client 다운로드 다운로드 )에서 이루어 지지만 이러한 파일을 복사하여 전체 sqlplus를 얻을 수 있습니다 (Oracle 클라이언트가 설치된 모든 컴퓨터에서 찾을 수 있음). 일부 msb는 선택 사항입니다 :
./sqlplus
./sqlplus/mesg
./sqlplus/mesg/sp1zhs.msb
./sqlplus/mesg/sp2zhs.msb
./sqlplus/mesg/sp2ptb.msb
./sqlplus/mesg/sp2us.msb
./sqlplus/mesg/sp1us.msb
./sqlplus/mesg/sp1ptb.msb
./sqlplus/mesg/cpyja.msb
./sqlplus/mesg/sp1ja.msb
./sqlplus/mesg/cpyus.msb
./sqlplus/mesg/cpyzhs.msb
./sqlplus/mesg/cpyptb.msb
./sqlplus/mesg/sp2ja.msb
./sqlplus/sqlplus
./README
./lib
./lib/libaio.so.1
./lib/libclntsh.so.11.1
./lib/libsqlplus.so
./lib/libnnz11.so
./lib/libociei.so
추가 의존성으로 다음을 포함 libaio.so
했습니다.sudo apt-get install libaio1
따라서 샘플 사용은 다음과 같습니다.
cd <PATH_OF_FILES>
ORACLE_HOME=$PWD LD_LIBRARY_PATH=$PWD/lib ./sqlplus/sqlplus user/pw@server:PORT/
@Ketan Patel의 훌륭한 답변에 대한 부록과 마찬가지로 :
다운로드 한 rpm 파일과 함께 유지되는이 간단한 스크립트는 추가 설치 프로세스를 자동화합니다.
#!/usr/bin/env sh
# /ubuntu//a/207145/585248
CURRDIR="$(pwd)";
cd $(dirname "${0}");
# Tools and dependencies:
sudo apt-get update
sudo apt-get install alien libaio1
# Oracle Packages:
echo "Installing instantclient-basic..."
sudo alien -i oracle-instantclient*-basic*.rpm
echo "Installing instantclient-sqlplus..."
sudo alien -i oracle-instantclient*-sqlplus*.rpm
echo "Installing instantclient-devel..."
sudo alien -i oracle-instantclient*-devel*.rpm
echo "Configuring LD path..."
# LD config:
echo /usr/lib/oracle/*/client64/lib \
| sort -V \
| tail -n 1 \
| sudo tee /etc/ld.so.conf.d/oracle.conf \
;
sudo ldconfig
cd "${CURRDIR}"
echo "DONE!!";
참고 : 그것은 설치
libaio1
이다 가 libaio 적어도 우분투의 이름 (내가 너무 데비안에서 생각). 다른 배포판에서는이 패키지 이름을 "libaio"또는 해당 패키지 이름으로 조정해야합니다.
편집 : 여기에 readline 줄 바꿈 ( 이 게시물 의 credists)이있는 향상된 버전 이 있습니다 .
#!/usr/bin/env sh
# /ubuntu//a/207145/585248
CURRDIR="$(pwd)";
cd $(dirname "${0}");
# Tools and dependencies:
sudo apt-get update
sudo apt-get install alien libaio1 rlwrap
# Oracle Packages:
echo "Installing instantclient-basic..."
sudo alien -i oracle-instantclient*-basic*.rpm
echo "Installing instantclient-sqlplus..."
sudo alien -i oracle-instantclient*-sqlplus*.rpm
echo "Installing instantclient-devel..."
sudo alien -i oracle-instantclient*-devel*.rpm
# LD config:
echo "Configuring LD path..."
echo /usr/lib/oracle/*/client64/lib \
| sort -V \
| tail -n 1 \
| sudo tee /etc/ld.so.conf.d/oracle.conf \
;
sudo ldconfig
# Readline wrapping:
echo "Configuring readline wrapping..."
echo "WARNING: You need to manually execute this command or re-read /etc/profile"
echo "if you want readline wrapped 'sqlplus' alias to work in current session".
(cat | sudo tee /etc/profile.d/sqlplus_rlwrap.sh) <<!EOF
alias sqlplus="rlwrap -i -f ~/.sqlplus_history -H ~/.sqlplus_history -s 30000 sqlplus64"
!EOF
touch ~/.sqlplus_history
cd "${CURRDIR}"
echo "DONE!!";
여전히 오라클이지만 적어도 고통을 좀 더 견딜 수있게합니다 ...
sudo alien -i