Câu trả lời:
Trước hết bạn cần tải xuống Tải xuống ứng dụng khách tức thì . Cài đặt gói Alien để bạn có thể cài đặt các gói vòng / phút bằng cách gõ lệnh sau trong terminal.
sudo apt-get install alien
Khi đã xong, đi đến thư mục chứa các tệp vòng / phút và thực hiện các thao tác sau:
sudo alien -i oracle-instantclient*-basic*.rpm
sudo alien -i oracle-instantclient*-sqlplus*.rpm
sudo alien -i oracle-instantclient*-devel*.rpm
Bạn cần cài đặt libaio.so
. Gõ lệnh sau để làm điều đó:
sudo apt-get install libaio1
Tạo tập tin cấu hình Oracle:
sudo sensible-editor /etc/ld.so.conf.d/oracle.conf
Đặt dòng này trong tập tin đó:
/usr/lib/oracle/<your version>/client/lib/
Lưu ý - đối với cài đặt 64 bit, đường dẫn sẽ là:
/usr/lib/oracle/<your version>/client64/lib/
Cập nhật cấu hình bằng cách chạy lệnh sau:
sudo ldconfig
Hãy thử kết nối bằng cách sử dụng:
sqlplus username/password@//dbhost:1521/SID
hoặc là:
sqlplus testuser/password
Lưu ý rằng nếu bạn đã cài đặt phiên bản 64 bit, máy khách sẽ được gọi sqlplus64
.
Thứ ngoài hành tinh không hoạt động vì:
Error: cannot open Name index using db5 - Permission denied (13)
Vì vậy, tôi đã đi với giải pháp dễ dàng: Tải xuống các tệp zip từ Oracle (cơ bản và sqlplus), giải nén chúng và đặt thư mục nơi bạn đặt các tệp chương trình (ví dụ /usr/share
). Sau đó tạo một tập lệnh chạy tệp thực thi sau khi đặt LD_LIBRARY_PATH
biến, để các thư viện được tìm thấy:
#!/bin/bash
DIR=/usr/share/instantclient_12_2 # <------- adjust this to the path you use
export LD_LIBRARY_PATH="$DIR"
"$DIR"/sqlplus "$@"
Gọi nó sqlplus
, làm cho nó thực thi ( chmod 755 sqlplus
) và đặt nó vào một thư mục trên PATH
(ví dụ /usr/bin/
) của bạn , để bash tìm thấy nó.
Chạy nó như
sqlplus user/password@host:port/service
Nếu bạn nhận được
error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
cài đặt thư viện với sudo apt-get install libaio1
Tôi nghĩ rằng liên kết này sẽ giúp. Nó là khá mô tả. Hãy chắc chắn rằng bạn làm theo tất cả các bước. Tuy nhiên, nếu bạn có bất kỳ vấn đề, đừng ngần ngại để bình luận.
Tất nhiên, cài đặt chính xác là từ các gói chính thức như ở trên ( tải xuống Tải xuống ứng dụng khách tức thời ), nhưng bạn có thể nhận được một sqlplus hoạt động đầy đủ chỉ bằng cách sao chép các tệp này (bạn có thể tìm thấy nó trong bất kỳ máy tính nào có cài đặt máy khách oracle) và một số msb là tùy chọn :
./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
Là phụ thuộc vào mục đích, tôi đã bao gồm libaio.so
- nó có thể được cài đặt vớisudo apt-get install libaio1
Vì vậy, việc sử dụng mẫu có thể là:
cd <PATH_OF_FILES>
ORACLE_HOME=$PWD LD_LIBRARY_PATH=$PWD/lib ./sqlplus/sqlplus user/pw@server:PORT/
Cũng như một phụ lục cho câu trả lời tuyệt vời của @Ketan Patel:
Kịch bản đơn giản này, được giữ cùng với các tệp vòng / phút đã tải xuống, tự động kích hoạt quy trình cho các cài đặt xa hơn:
#!/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!!";
LƯU Ý: Nó cài đặt
libaio1
đó là libaio 's tên ít nhất là trong Ubuntu (và tôi nghĩ rằng trong Debian quá). Các bản phân phối khác có thể cần điều chỉnh tên gói này thành "libaio" hoặc bất kỳ tên gói tương ứng nào.
Chỉnh sửa: Đây là phiên bản được hỗ trợ với gói đọc (chủ nợ cho bài đăng này ):
#!/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!!";
Vẫn là Oracle, nhưng ít nhất nó cũng khiến nỗi đau trở nên khó chịu hơn một chút ...
sudo alien -i