2

Я должен преподавать программирование базы данных против БД Oracle, используя C/C++ в Linux. Итак, первый шаг - установить Oracle 11g в Linux.

Конфигурация компьютера: ВЕДУЩИЙ: 64-разрядная версия Windows 8 Enterprise Гость: 32-разрядная версия Fedora 18 XFCE с использованием Virtual Box 4.2.10

Я использую эту ссылку в качестве руководства.

Я выполнил все шаги до шага «./runInstall», где я получаю сообщение об ошибке на этапе компоновки:

Ниже приводится выдержка из файла журнала в «/u01/app/oraInventory/logs»:

[oracle@localhost logs]$ tail -n 25 installActions2013-03-31_03-14-24PM.log 
INFO: /usr/bin/ld: warning: -z lazyload ignored.

/usr/bin/ld: warning: -z nolazyload ignored.
/usr/bin/ld: /u01/app/oracle/product/11.2.0/db_1/sysman/lib//libnmectl.a(nmectlt.o): undefined reference to symbol 'B_DestroyKeyObject'
/usr/bin/ld: note: 'B_DestroyKeyObject' is defined in DSO /u01/app/oracle/product/11.2.0/db_1/lib/libnnz11.so so try adding it to the linker command line
/u01/app/oracle/product/11.2.0/db_1/lib/libnnz11.so: could not read symbols: Invalid operation

INFO: collect2: error: ld returned 1 exit status

INFO: make[1]: *** [/u01/app/oracle/product/11.2.0/db_1/sysman/lib/emdctl] Error 1

INFO: make[1]: Leaving directory `/u01/app/oracle/product/11.2.0/db_1/sysman/lib'

INFO: make: *** [emdctl] Error 2

INFO: End output from spawned process.
INFO: ----------------------------------

INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'. See '/u01/app/oraInventory/logs/installActions2013-03-31_03-14-24PM.log' for details.
Exception Severity: 1
INFO: Adding ExitStatus STOP_INSTALL to the exit status set
INFO: Finding the most appropriate exit status for the current application
INFO: Exit Status is -4
INFO: Shutdown Oracle Database 11g Release 2 Installer

INFO: Unloading Setup Driver
[oracle@localhost logs]$

Как исправить эту ошибку?

Есть ли другие способы показать программирование БД Oracle с использованием c++?

Дайте мне знать, если нужна какая-либо другая информация.

2 ответа2

5

Сделайте следующее:

  1. запустите vi $ORACLE_HOME/sysman/lib/ins_emagent.mk
  2. Поиск строки: $(MK_EMAGENT_NMECTL)
  3. Измените его на: $(MK_EMAGENT_NMECTL) -lnnz11
1

Oracle на Fedora не поддерживается, AFAIU. Может быть, вам повезет больше с CentOS. Поскольку этот Linux и собственный Oracle являются клонами Red Hat Enterprise Linux, вам, вероятно, повезет больше, если вы найдете людей, которые уже сделали это.

В любом случае, мой опыт (к счастью, давным- давно, но несколько надежные слухи говорят, что ничего особенного не изменилось) заключается в том, что установка Oracle - это ужасное испытание. "Сценарии автоматической установки" сильно нарушены, а официальные инструкции предназначены для совершенно другого программного пакета. Существуют всевозможные странные переменные среды, которые должны быть установлены правильно (но не задокументированы), чтобы что-то работало.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .