Làm thế nào để cài đặt SqlPlus?


19

Tôi đã thử cài đặt sqlplus bằng cách làm theo hướng dẫn từ đây . Tôi vẫn nhận được:

sqlplus: command not found

khi tôi làm sqlplustừ thiết bị đầu cuối của tôi.

Tôi là người mới trong Ubuntu và tôi sử dụng Ubuntu 12.04.


Tôi nghĩ bạn cần chạy các lệnh của người ngoài hành tinh với sudo:sudo alien -i
Savvas Radevic

Câu trả lời:


26

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.


Cảm ơn các chi tiết. Nó giúp tôi hoàn thành việc cài đặt, đặc biệt là phần cài đặt lib.
lonstar 7/2/13

1
... cho đến khi tôi đã cố gắng để chạy sqlplus testuser / mật khẩu và có "sqlplus: Lỗi trong khi tải thư viện chia sẻ: libsqlplus.so: không thể mở tập tin đối tượng chia sẻ: Không có tập tin hoặc thư mục"
lonstar

4
... và đó là vì tôi vừa chạm vào tệp oracle.conf và hóa ra bạn cần thêm tệp này vào: /usr/lib/oracle/11.2/client/lib/ (đảm bảo kiểm tra xem bạn có thực sự có nó không đường dẫn, và cảm ơn marcelozambranav.blogspot.com/2012/08/ Khăn ). Một khi tôi đã làm điều đó, tất cả đều tốt.
lonstar

4
@K .K Patel Tôi đã làm theo hướng dẫn của bạn nhưng sau khi nhập sqlplus vào dòng lệnh, nó sẽ nhắc nhập tên người dùng và mật khẩu. Và tôi không biết tên người dùng và mật khẩu. Tôi nên làm gì?
Sabyasachi

Họ có oracle-Instantclient * basic, devel, jdbc, odbc, sqlplus, tools, basiclite. Tôi không thể cài đặt sqlplus một và được thực hiện với nó?
masterxilo

3

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_PATHbiế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


1

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.


6
Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
Eliah Kagan

Đó là những gì ngay cả tôi đã làm .. Nhưng nó dường như không hoạt động.!
Ant's

Tôi tìm thấy chủ đề này unix.com/ubfox/157848-sqlplus-command-not-found.html. Hãy thử nếu điều này sẽ giúp bạn tốt hơn. Tôi không có tốc độ mạng để tải xuống, nếu không tôi sẽ tự mình thử và đưa ra giải pháp tốt hơn.
Vinit Kumar

1
@ Ant "nó không hoạt động" không cung cấp cho chúng tôi manh mối. Chỉ cho chúng tôi đầu ra của mỗi lệnh. Sau đó, chúng ta sẽ có một bức tranh chung về những gì đang xảy ra và vấn đề là ở đâu.
Savvas Radevic

0

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/

0

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 ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.