Установите Oracle Instant Client

Установите Oracle Instant Client

Я пытаюсь заставить Oracle SQL Developer работать в 16.04. Я следовал ответу PhatHV наэтотвопрос, и приложение для настольного компьютера открывается нормально и выглядит правильно, но когда я пытаюсь подключиться к базе данных (а я знаю, что это должно сработать, потому что я подключался к той же базе данных в Windows), появляется окно с ошибкой, в котором говорится:

An error was encountered performing the requested operation:

no ocijdbc12 in java.library.path

Vendor code 0

Кто-нибудь знает, что является причиной этой ошибки и как ее исправить?

решение1

У меня это работает только тогда, когда я устанавливаю переменную среды LD_LIBRARY_PATH в каталог Instant Client, делая это в /etc/ld.so.conf.d/oracle.conf, а запуск sudo ldconfigне работает.

решение2

Хорошо, теперь мне удалось (с некоторой помощью) исправить эту проблему на двух отдельных компьютерах, но прошло достаточно много времени, чтобы я не помню всего, что мы делали, чтобы исправить это. Я включу по крайней мере то, что я помню, и, возможно, позже исправлю этот ответ. Я не понимаю всего, что находится под капотом, поэтому прошу прощения, если есть ненужные шаги. Однако, как я уже упоминал в исходном вопросе, я следовал другому ответу, данному PhatHV, и я не буду повторять здесь шаги, найденные там. Предполагается, что вы следовали его руководству, прежде чем прийти сюда.

Установите Oracle Instant Client

Для SQL Developer версии 4.2.0 мне нужно было получить версию 12.2.0.1.0 Instant Client. Вы можете найти загрузкуздесь. Выберите «Instant Client for Linux», соответствующий вашей архитектуре (у меня 64-битная машина, поэтому я открыл опцию x86-64). Загрузите следующие 5 файлов (заменив номер версии и архитектуру, где это необходимо):

  • oracle-instantclient12.2-basic-12.2.0.1.0-1.x86-64.rpm
  • oracle-instantclient12.2-devel-12.2.0.1.0-1.x86-64.rpm
  • oracle-instantclient12.2-jdbc-12.2.0.1.0-1.x86-64.rpm
  • oracle-instantclient12.2-odbc-12.2.0.1.0-1.x86-64.rpm
  • oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86-64.rpm

Если у вас его еще нет, вам необходимо установить инструмент под названием alien:

sudo apt-get install alien

Перейдите в папку Downloads (или туда, где вы сохранили файлы) и запустите sudo alien -iкаждый файл, чтобы установить его. Мы используем alien, потому что он сначала преобразует их в , .debпрежде чем устанавливать. Обратите внимание, alienчто не выдает много выходных данных сразу, поэтому может показаться, что он ничего не делает, но я обещаю, что это так.

sudo alien -i oracle-instantclient12.2-basic-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-devel-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-jdbc-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-odbc-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86-64.rpm

Редактировать профиль и переменные среды

Для всех этих команд вам нужно будет быть пользователем root. Запустите, sudo suчтобы войти как root.

Отредактируйте /etc/profile.d/oracle.shтак, чтобы он содержал следующее:

export ORACLE_HOME=/usr/lib/oracle/12.2/client64
export TNS_ADMIN=/usr/lib/oracle/ora
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

Обратите внимание на номер версии в ORACLE_HOMEпеременной. Опять же, у меня это 12.2, но у вас может быть что-то другое. Также часто устанавливают TNS_ADMIN=$ORACLE_HOME/ora, но я решил этого не делать, чтобы мои .oraфайлы не находились в каталоге, зависящем от версии (например 12.2, ).

Изменить /etc/ld.so.conf.d/oracle.conf, чтобы содержать

/usr/lib/oracle/12.2/client64/lib/

Еще раз обратите внимание на номер версии.

Наконец, в/etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
JAVA_HOME="/usr/lib/jvm/default-java/"
CLASSPATH=/usr/lib/jvm/default-java/lib:/usr/lib/jvm/default-java/include:/usr/lib/oracle/12.2/client64/lib

Закончив редактирование всех этих файлов, запустите

ldconfig
source /etc/profile.d/oracle.sh
source /etc/environment

Нажмите <Ctrl> + Dили введите текст exit, чтобы вернуться к обычному пользователю.

Добавить как сторонний драйвер

Я не знаю, является ли этот шаг строго необходимым, но на моем компьютере он работает. Если вы откроете SQL Developer, вы можете перейти к Tools -> Preferences -> Database -> Third Party JDBC Driversи нажать Add Entry. Открыть /usr/lib/oracle/12.2/client64и нажать на lib. Он выделится, и затем вы можете нажать select, чтобы добавить его в список.

После этого шага вам нужно будет закрыть и снова открыть SQL Developer. После того, как вы все это сделаете,с надеждойбольше ошибок не будет.

Связанный контент