Jawaban:
Pertama-tama Anda perlu mengunduh Unduhan Klien Instan . Instal paket alien sehingga Anda dapat menginstal paket rpm dengan mengetik perintah berikut di terminal.
sudo apt-get install alien
Setelah selesai, buka folder tempat file rpm berada dan jalankan yang berikut:
sudo alien -i oracle-instantclient*-basic*.rpm
sudo alien -i oracle-instantclient*-sqlplus*.rpm
sudo alien -i oracle-instantclient*-devel*.rpm
Anda perlu menginstal libaio.so
. Ketik perintah berikut untuk melakukannya:
sudo apt-get install libaio1
Buat file konfigurasi Oracle:
sudo sensible-editor /etc/ld.so.conf.d/oracle.conf
Letakkan baris ini di file itu:
/usr/lib/oracle/<your version>/client/lib/
Catatan - untuk instalasi 64-bit, jalurnya adalah:
/usr/lib/oracle/<your version>/client64/lib/
Perbarui konfigurasi dengan menjalankan perintah berikut:
sudo ldconfig
Coba sambung menggunakan:
sqlplus username/password@//dbhost:1521/SID
atau:
sqlplus testuser/password
Perhatikan bahwa jika Anda menginstal versi 64-bit, klien dipanggil sqlplus64
.
Benda asing itu tidak berfungsi karena:
Error: cannot open Name index using db5 - Permission denied (13)
Jadi saya pergi dengan solusi mudah: Unduh file zip dari Oracle (dasar dan sqlplus), ekstrak, dan letakkan folder tempat Anda meletakkan file program (misalnya /usr/share
). Kemudian buat skrip yang menjalankan executable setelah pengaturan LD_LIBRARY_PATH
variabel, sehingga pustaka ditemukan:
#!/bin/bash
DIR=/usr/share/instantclient_12_2 # <------- adjust this to the path you use
export LD_LIBRARY_PATH="$DIR"
"$DIR"/sqlplus "$@"
Sebut saja sqlplus
, buatlah itu dapat dieksekusi ( chmod 755 sqlplus
) dan letakkan di direktori pada PATH
(misalnya /usr/bin/
) Anda, sehingga bash menemukannya.
Jalankan seperti
sqlplus user/password@host:port/service
Jika Anda mendapatkan
error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
instal perpustakaan dengan sudo apt-get install libaio1
Saya pikir tautan ini akan membantu. Ini cukup deskriptif. Pastikan Anda mengikuti semua langkah. Masih jika Anda memiliki masalah, jangan ragu untuk berkomentar.
Tentu saja instalasi yang benar berasal dari paket resmi seperti di atas ( unduh Unduhan Klien Instan ), tetapi Anda bisa mendapatkan sqlplus yang berfungsi penuh hanya dengan menyalin file-file ini (Anda dapat menemukannya di komputer mana pun dengan klien oracle diinstal), dan beberapa msb bersifat opsional. :
./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
Sebagai ketergantungan tambahan, saya memang menyertakan libaio.so
- itu dapat diinstal dengansudo apt-get install libaio1
Jadi, penggunaan sampel dapat:
cd <PATH_OF_FILES>
ORACLE_HOME=$PWD LD_LIBRARY_PATH=$PWD/lib ./sqlplus/sqlplus user/pw@server:PORT/
Sama seperti tambahan untuk jawaban bagus @Ketan Patel:
Skrip sederhana ini, disimpan bersama-sama dengan file-file rpm yang diunduh, meng-autpmate proses untuk pemasangan lebih lanjut:
#!/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!!";
CATATAN: Ini menginstal
libaio1
yang merupakan nama libaio setidaknya di Ubuntu (dan saya pikir di Debian juga). Distribusi lain mungkin perlu menyesuaikan nama paket ini menjadi "libaio" atau apa pun nama paket yang sesuai.
Sunting: Ini adalah versi yang ditingkatkan dengan pembungkus readline (kreditor untuk posting ini ):
#!/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!!";
Ini masih Oracle, tapi setidaknya itu membuat rasa sakitnya sedikit lebih tertahankan ...
sudo alien -i