Linux – Linker error while installing Oracle 11g on Fedora 18

fedorainstallationlinuxoracle-11g

I have to teach database programming against Oracle DB using C/C++ on Linux. So first step is to install Oracle 11g on Linux.

Machine config :
HOST: Windows 8 Enterprise 64 bit
Guest: Fedora 18 XFCE edition 32 bit using Virtual Box 4.2.10

I'm using this link as a guide.

I have completed all steps till './runInstall' step where I get an error in the linking phase:

The following is an extract from the log file in '/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]$

How to fix this error?

Are there any other ways to show Oracle DB programming using c++?

Let me know if any other info is needed.

Best Answer

Do the following:

  1. run vi $ORACLE_HOME/sysman/lib/ins_emagent.mk
  2. Search for the line: $(MK_EMAGENT_NMECTL)
  3. Change it to: $(MK_EMAGENT_NMECTL) -lnnz11
Related Question