Как установить SqlPlus?

19

Я попытался установить sqlplus, следуя инструкции здесь . Я все еще получаю:

sqlplus: command not found

когда я делаю sqlplusиз моего терминала.

Я новичок в Ubuntu и использую Ubuntu 12.04.

муравьев
источник
Я думаю, что вам нужно запускать инопланетные команды -i с помощью sudo:sudo alien -i
Savvas Radevic

Ответы:

26

Прежде всего, вам необходимо скачать Instant Client Downloads . Установите инопланетный пакет, чтобы вы могли установить 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 / password и не получил "sqlplus: ошибка при загрузке общих библиотек: libsqlplus.so: не могу открыть общий объектный файл: нет такого файла или каталога"
lonstar
4
... и это потому, что я только что коснулся файла oracle.conf, и оказалось, что вам нужно добавить это к нему: /usr/lib/oracle/11.2/client/lib/ (убедитесь, что вы действительно это путь, и спасибо marcelozambranav.blogspot.com/2012/08/… ). Как только я это сделал, все было хорошо.
lonstar
4
@K .K Патель Я следовал твоим инструкциям, но после ввода sqlplus в командной строке, он предлагает ввести имя пользователя и пароль. И я не знаю имя пользователя и пароль. Что я должен делать?
Сабьясачи
У них есть oracle-instantclient * basic, devel, jdbc, odbc, sqlplus, инструменты, basiclite. Разве я не могу просто установить sqlplus и покончить с этим?
masterxilo
3

Инопланетянин не работал из-за:

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

Поэтому я выбрал простое решение: загрузите zip- файлы из 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/), чтобы 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
Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить здесь основные части ответа и предоставить ссылку для справки.
Элия ​​Каган
Это то, что даже я сделал .. Но, похоже, это не работает.
Муравей
Я нашел эту тему unix.com/ubuntu/157848-sqlplus-command-not-found.html.Попробуйте, если это поможет вам лучше. У меня нет скорости загрузки, иначе я бы попробовал сам и дал бы лучшее решение.
Винит Кумар
1
@ Муравья "это не работает" не дает нам подсказки. Покажите нам вывод каждой команды. Тогда у нас будет общая картина того, что происходит и где проблема.
Саввас Радевич
0

Конечно, правильная установка происходит из официальных пакетов, как указано выше ( скачать Instant Client Downloads ), но вы можете получить полноценный 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» или любое другое имя соответствующего пакета.

Изменить: Вот это расширенная версия с 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!!";

Это все еще Оракул, но, по крайней мере, это делает боль чуть более терпимой ...

bitifet
источник