Як встановити SqlPlus?


19

Я спробував встановити sqlplus, дотримуючись інструкцій звідси . Я все ще отримую:

sqlplus: command not found

коли я sqlplusз мого терміналу.

Я новачок в Ubuntu і використовую Ubuntu 12.04.


Я думаю, вам потрібно запустити чужорідні команди -i з sudo alien -i
судо

Відповіді:


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 у командному рядку буде запропоновано ввести ім’я користувача та пароль. І я не знаю імені користувача та пароля. Що я повинен зробити?
Сабясачі

Вони мають oracle-instantclient * basic, devel, jdbc, odbc, sqlplus, інструменти, basiclite. Не можу я просто встановити sqlplus і закінчити це?
masterxilo

3

Чужа річ не працювала через:

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

Тож я пішов із простим рішенням: завантажте поштові файли з Oracle (basic та 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/), щоб баш знайшов його.

Запускайте так, як

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
Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
Елія Каган

Це те, що я навіть зробив .. Але це, здається, не працює.
Мураха

Я знайшов цю тему unix.com/ubuntu/157848-sqlplus-command-not-found.html. Спробуйте, якщо це допоможе вам краще. У мене немає чистої швидкості для його завантаження, інакше я б сам спробував це і дав би краще рішення.
Вініт Кумар

1
@ Ant "це не працює" не дає нам підказки. Покажіть нам вихід кожної команди. Тоді ми матимемо загальну картину того, що відбувається і де проблема.
Саввас Радевич

0

Звичайно, правильна установка відбувається з офіційних пакетів, як описано вище ( завантажте миттєві завантаження клієнтів ), але ви можете отримати повноцінний робочий 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/

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" або як би не було відповідної назви пакета.

Редагувати: Ось це покращена версія із загортанням читання рядків (кредити для цієї публікації ):

#!/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, але принаймні це робить біль трохи більш терпимим ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.