วิธีการติดตั้ง SqlPlus


19

ฉันพยายามติดตั้ง sqlplus โดยทำตามคำแนะนำจากที่นี่ ฉันยังคงได้รับ:

sqlplus: command not found

เมื่อฉันทำsqlplusจาก terminal ของฉัน

ฉันเป็นสามเณรใน Ubuntu และฉันใช้ Ubuntu 12.04


ฉันคิดว่าคุณจำเป็นต้องเรียกใช้คำสั่ง alien -i ด้วย sudo:sudo alien -i
Savvas Radevic

คำตอบ:


26

ก่อนอื่นคุณต้องดาวน์โหลด ดาวน์โหลดไคลเอนต์ทันที ติดตั้งแพ็กเกจเอเลี่ยนเพื่อให้คุณสามารถติดตั้งแพ็คเกจ 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ใช้


ขอบคุณสำหรับรายละเอียด มันช่วยให้การติดตั้งเสร็จสมบูรณ์โดยเฉพาะอย่างยิ่งส่วนที่เกี่ยวกับการติดตั้ง lib
lonstar

1
... จนกว่าฉันจะพยายามเรียกใช้ sqlplus testuser / รหัสผ่านและได้รับ "sqlplus: ข้อผิดพลาดขณะโหลดไลบรารีที่แชร์: libsqlplus.so: ไม่สามารถเปิดไฟล์วัตถุที่ใช้ร่วมกัน: ไม่มีไฟล์หรือไดเรกทอรี"
lonstar

4
... และเป็นเพราะฉันเพิ่งแตะไฟล์ oracle.conf และปรากฎว่าคุณต้องเพิ่มไฟล์นี้: /usr/lib/oracle/11.2/client/lib/ ให้แน่ใจว่าคุณมี เส้นทางและขอบคุณmarcelozambranav.blogspot.com/2012/08/… ) เมื่อฉันทำอย่างนั้นทุกอย่างดี
lonstar

4
@K .K Patel ฉันทำตามคำแนะนำของคุณ แต่หลังจากพิมพ์ sqlplus ในบรรทัดคำสั่งจะแจ้งให้ใส่ชื่อผู้ใช้และรหัสผ่าน และฉันไม่รู้ชื่อผู้ใช้และรหัสผ่าน ฉันควรทำอย่างไรดี?
Sabyasachi

พวกเขามี oracle-instantclient * พื้นฐาน, devel, jdbc, odbc, sqlplus, เครื่องมือ, basiclite ฉันไม่สามารถติดตั้ง sqlplus และติดตั้งได้หรือไม่
masterxilo

3

สิ่งต่างดาวไม่ทำงานเนื่องจาก:

Error: cannot open Name index using db5 - Permission denied (13)

ดังนั้นฉันจึงไปกับทางออกที่ง่าย: ดาวน์โหลดไฟล์zipจากOracle (พื้นฐานและ sqlplus) แยกไฟล์ออกและใส่โฟลเดอร์ที่คุณใส่ไฟล์โปรแกรม (เช่น/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) และวางมันลงในไดเร็กตอรี่ของคุณPATH(เช่น/usr/bin/) เพื่อให้ bash พบ

เรียกใช้เช่น

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


1

ฉันคิดว่าลิงค์นี้จะช่วย มันเป็นคำอธิบายที่ค่อนข้างสวย ตรวจสอบให้แน่ใจว่าคุณทำตามขั้นตอนทั้งหมด ยังถ้าคุณมีปัญหาใด ๆ อย่าลังเลที่จะแสดงความคิดเห็น


6
ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Eliah Kagan

นั่นคือสิ่งที่ฉันได้ทำไป .. แต่ดูเหมือนจะไม่ทำงาน!
Ant's

ฉันพบกระทู้นี้unix.com/ubuntu/157848-sqlplus-command-not-found.html.Tryว่าจะช่วยให้คุณดีขึ้นได้ไหม ฉันไม่มีความเร็วในการดาวน์โหลดสุทธิมิฉะนั้นฉันจะลองด้วยตัวเองและให้ทางออกที่ดีกว่า
Vinit Kumar

1
@ Ant ของ "มันไม่ทำงาน" ไม่ได้ให้เบาะแสกับเรา แสดงผลลัพธ์ของแต่ละคำสั่งให้เราทราบ จากนั้นเราจะเห็นภาพรวมของสิ่งที่เกิดขึ้นและปัญหาที่เกิดขึ้น
Savvas Radevic

0

แน่นอนว่าการติดตั้งที่ถูกต้องนั้นมาจากแพ็คเกจอย่างเป็นทางการเช่นด้านบน ( ดาวน์โหลดการดาวน์โหลดไคลเอนต์ทันที ) แต่คุณสามารถรับ sqlplus ที่ใช้งานได้เพียงแค่คัดลอกไฟล์เหล่านี้ (คุณสามารถพบมันได้ในคอมพิวเตอร์ทุกเครื่อง :

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

0

เช่นเดียวกับภาคผนวกของ @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อย่างน้อยใน Ubuntu (และฉันก็คิดว่าเป็น Debian ด้วย) การกระจายอื่นอาจต้องปรับชื่อแพ็คเกจนี้เป็น "libaio" หรือชื่อแพคเกจที่เกี่ยวข้องจะเป็นอะไร

แก้ไข: ที่นี่เป็นรุ่น ehanced พร้อมการตัดแบบ readline (เจ้าหนี้สำหรับโพสต์นี้ ):

#!/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!!";

ยังคงเป็น Oracle แต่อย่างน้อยก็ทำให้ความเจ็บปวดทนได้มากกว่านี้ ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.