This post will document the steps needed to overcome the installation issues one can encounter when installing the latest release of the Oracle Database 12c. Some of the errors encountered look like the ones on 11c, but since there are quite a few more now, I decided to document these for others as a reference.
Disclaimer: When I set out to tackle the installation errors, my goal was to “make it work, one way or the other”. I’m not running this installation on a production environment, not in the least since Ubuntu 12.04 is not supported, but I needed to have a local database to fiddle with on my local laptop. The solution provided can make a Linux Admin cringe, and if not landing one in a grave, at least make one turn itself over in his/her grave.
I won’t delve into the specific system configuration packages and required settings, since these are documented in abundance either on the OTN, or on other sites. Basically these kind of issues are easy to resolve by just installing the missing package and re-run the installer. The issues discussed below are the errors one will encounter when the linker starts doing it’s thing.
However, for ease of getting started, I’ll list a quick listing of needed packages and needed settings, from a “freshly” installed ubuntu 12.04 installation:
As root:
root# apt-get install elfutils libaio1 libaio-dev libstdc++6-4.4-dev numactl pdksh sysstat unixODBC-dev unixODBC build-essential libaio1 gawk ksh libmotif3 alien libtool
Create and prepare Oracle user:
root# addgroup oinstall root# addgroup dba root# useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle root# mkdir /home/oracle root# chown -R oracle:dba /home/oracle
Create and prepare location to install the oracle binaries:
root# mkdir -p /oracle root# chown -R oracle:dba /oracle
Edit and add to the sysctl.conf:
root# vi /etc/sysctl.conf # Oracle 12c entries fs.aio-max-nr=1048576 fs.file-max=6815744 kernel.shmall=2097152 kernel.shmmni=4096 kernel.sem=250 32000 100 128 net.ipv4.ip_local_port_range=9000 65500 net.core.rmem_default=262144 net.core.rmem_max=4194304 net.core.wmem_default=262144 net.core.wmem_max=1048586 kernel.shmmax=1073741824
Save the file.
Note: kernel.shmmax = max possible value, e.g. size of physical memory in bytes. This machine has 8GB, but I want to keep the memory allocation low, so we are specifying 1GB. Adjust the parameter as needed.
Load new kernel parameters, by running following as root user,
root# sysctl -p
Edit and adjust the /etc/security/limits.conf file:
root# vi /etc/security/limits.conf #Oracle 12c oracle soft nproc 2048 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
Prerequisites:
- Prepare the system settings.
- Install all the packages needed for the Oracle software as usual.
Download and install the Oracle Database software, make sure you have the correct bit version (in my case: 64 bit).
Unpack the software in a location with ample room to hold the unpacked software. For sake of documentation, let’s assume I’ve unpacked this in the /tmp/Oracle12c directory.
Navigate to /location_of_unpacked_software/database and run the command:
oracle$/tmp/Oracle12c/database$ ./runInstaller
Starting Oracle Universal Installer... Checking Temp space: must be greater than 500 MB. Actual 115797 MB Passed Checking swap space: must be greater than 150 MB. Actual 952 MB Passed Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2013-09-17_06-57-27PM. Please wait ...
A pop-up appears while the installer loads the files.
Choose whether you like to be spammed by OTN. I choose not to.
Press Next.
I’m pretty sure about this, so press Yes.
This is not a test run for patching, so for now I choose to skip software updates (seems to be the default, anyway). Press Next.
This pop-up can appear, and is to be expected since we are not running a supported environment. I choose to ignore this, since I have a running installation of Oracle 11c on this system. One can take the prerequisites of this Oracle version as a guideline of which packages to install.
Choose to install the database software only, since if this is succeeding, we can install a database later to test if the installation is successful. Press Next.
A single installation will do for now. Press Next.
I prefer English, so I press Next.
Select the option most applicable here, I choose Enterprise so I get to test all the components to my hearts delight! Press Next.
Enter the location where the database software (aka oracle binaries) need to be installed. I deviate from any form of standard and place it for ease of reference in /oracle and below. Be sure to grant the oracle user ownership en access permissions on this location.
Press Next.
Enter the location of the Oracle Inventory directory. In this case it is in a new location, but a previous run has shown me you can perfectly use an existing 11g inventory location. Press Next.
Select the preferred groups, I keep everything on the “dba” group, since the oracle user is taking care of all the Oracle stuff. Press Next.
Check the configuration parameters, edit where necessary. When done, press Install.
The PREPARE phase should not give much issues..not at all actually.
The COPY phase should also pass, since this is just extracting and well..copying..If this fails, check the bit version of the download, of the extracted files..or disk space…
The linking phase…now here is where the fun starts! Expect to see a couple of these pop-ups, but no need to fret, we are going to take them on one at a time!
As the pop-up suggest, open the log file on the console. Note: in the console where the ./runinstaller.sh was started, you can find the location of the log file also.
In this case the log file is located at:
/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log
Open a separate window and put a ‘tail’ on this log file, since we need to keep on top of this now, and use this a lot.
$ tail -f /oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log
What we are looking for is this:
INFO: Start output from spawned process: INFO: ---------------------------------- INFO: INFO: /oracle/base/dbhome_1/bin/genclntsh INFO: /usr/bin/ld: cannot find /usr/lib64/libpthread_nonshared.a inside INFO: collect2: ld returned 1 exit status INFO: genclntsh: Failed to link libclntshcore.so.12.1 INFO: make: *** [client_sharedlib] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'client_sharedlib' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details. Exception Severity: 1
This line looks interesting:
INFO: /usr/bin/ld: cannot find /usr/lib64/libpthread_nonshared.a inside
We seem to have missed a lib..let’s fix this:
root:~# locate libpthread_nonshared /usr/lib/i386-linux-gnu/libpthread_nonshared.a /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a
Ah, the lib is on the system, but not on the location the installer expects it.
root:~# ln -s /usr/lib /usr/lib/lib64 root:~# ln /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/libpthread_nonshared.a
Note: The system used is pure 64 bit, but oracle seems not to be aware of this. Ergo: the symlink.
Now: hit the “Retry” button of the installer.
Again: an error. As expected. Look in the tail of the log file:
INFO: /oracle/base/dbhome_1/bin/genclntsh INFO: /usr/bin/ld: cannot find /usr/lib64/libc_nonshared.a inside collect2: INFO: ld returned 1 exit status INFO: genclntsh: Failed to link libclntshcore.so.12.1 make: *** [client_sharedlib] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'client_sharedlib' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details. Exception Severity: 1
Another lib we seem to miss. Let’s repeat our previous trick:
root:~# locate libc_nonshared.a /usr/lib/libc_nonshared.a /usr/lib/x86_64-linux-gnu/libc_nonshared.a root:~# ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64 root:~# ls -l /usr/lib64/libc_nonshared.a lrwxrwxrwx 1 root root 42 Sep 19 10:53 /usr/lib64/libc_nonshared.a -> /usr/lib/x86_64-linux-gnu/libc_nonshared.a
Now: hit the “retry” button of the installer.
The installer should continue for a bit with the linking part..until…
Let’s check the log file again:
INFO: - Linking password utility (orapwd) INFO: rm -f /oracle/base/dbhome_1/rdbms/lib/orapwd INFO: /oracle/base/dbhome_1/bin/orald -o /oracle/base/dbhome_1/rdbms/lib/orapwd -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/base/dbhome_1/rdbms/lib/ -L/oracle/base/dbhome_1/lib/ -L/oracle/base/dbhome_1/lib/stubs/ /oracle/base/dbhome_1/rdbms/lib/s0kuzr.o /oracle/base/dbhome_1/rdbms/lib/kuzrclsr.o -lclntsh -lclntshcore `cat /oracle/base/dbhome_1/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /oracle/base/dbhome_1/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnnz12 INFO: -lzt12 -lztkg12 -lztkg12 -lclient12 -lnnetd12 -lvsn12 -lcommon12 -lgeneric12 -lmm -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 `cat /oracle/base/dbhome_1/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /oracle/base/dbhome_1/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lclient12 -lnnetd12 -lvsn12 -lcommon12 -lgeneric12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -ln INFO: ls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 -lclient12 -lnnetd12 -lvsn12 -lcommon12 -lgeneric12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 `cat /oracle/base/dbhome_1/lib/sysliblist` -Wl,-rpath,/oracle/base/dbhome_1/lib -lm `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm -L/oracle/base/dbhome_1/lib -lasmclntsh12 -lcell12 -lskgxp12 -lskgxn2 -lhasgen12 -locr12 -lclsra12 -ldbcfg12 INFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libclntsh.so: undefined reference to symbol 'ztucxtb' /usr/bin/ld: note: 'ztucxtb' is defined in DSO /oracle/base/dbhome_1/lib//libnnz12.so so try adding it to the linker command line /oracle/base/dbhome_1/lib//libnnz12.so: could not read symbols: Invalid operation INFO: collect2: ld returned 1 exit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/orapwd] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'all_no_orcl' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details. Exception Severity: 1
Ah, we seem to have problems with building ORAPWD.
This line looks promising:
/oracle/base/dbhome_1/lib//libnnz12.so: could not read symbols: Invalid operation
Let’s investigate this lib:
oracle$ cd /oracle/base/dbhome_1/lib/ oracle$/oracle/base/dbhome_1/lib$ ldd libnnz12.so linux-vdso.so.1 => (0x00007fff759d9000) libclntshcore.so.12.1 => not found libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f324050f000) /lib64/ld-linux-x86-64.so.2 (0x00007f3240ff5000) oracle@anniepb:/oracle/base/dbhome_1/lib$
Weird, this lib is an oracle lib..and the installer is looking for it in the wrong location. I’ll link this lib in the general lib location where it always can be found: /usr/lib.
root# ln -s /oracle/base/dbhome_1/lib/libclntshcore.so.12.1 /usr/lib/ root# ls -l /usr/lib/libclntshcore.so.12.1 lrwxrwxrwx 1 root root 47 Sep 19 11:08 /usr/lib/libclntshcore.so.12.1 -> /oracle/base/dbhome_1/lib/libclntshcore.so.12.1 root#
Check if the linker can resolve the library.
oracle$ ldd /oracle/base/dbhome_1/lib/libnnz12.so linux-vdso.so.1 => (0x00007fffb9fff000) libclntshcore.so.12.1 => /usr/lib/libclntshcore.so.12.1 (0x00007f6278756000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6278397000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f6278192000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f6277e96000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f6277c79000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f6277a70000) /lib64/ld-linux-x86-64.so.2 (0x00007f62793cd000)
Ok, that is one. But there is more! Due to how the GCC is configured in Ubuntu, we need to do some extra alterations..
Open the make file: /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk
oracle$ vi /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk
Search for the lines:
$(ORAPWD) : $(ALWAYS) $(ORAPWD_DEPS) $(SILENT)$(ECHO) $(SILENT)$(ECHO) " - Linking password utility (orapwd)" $(RMF) $@ $(ORAPWD_LINKLINE)
Add the following:
$(ORAPWD) : $(ALWAYS) $(ORAPWD_DEPS) $(SILENT)$(ECHO) $(SILENT)$(ECHO) " - Linking password utility (orapwd)" $(RMF) $@ $(ORAPWD_LINKLINE) -lnnz12
Don’t forget to save the file!
Now: hit the “Retry” button of the installer.
*kabloe-ie..* again an error…the same? No! check the log:
INFO: - Linking HS OTS agent INFO: rm -f /oracle/base/dbhome_1/rdbms/lib/hsots INFO: /oracle/base/dbhome_1/bin/orald -o /oracle/base/dbhome_1/rdbms/lib/hsots -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/base/dbhome_1/rdbms/lib/ -L/oracle/base/dbhome_1/lib/ -L/oracle/base/dbhome_1/lib/stubs/ /oracle/base/dbhome_1/rdbms/lib/hormt.o /oracle/base/dbhome_1/rdbms/lib/homts.o /oracle/base/dbhome_1/rdbms/lib/hoat.o /oracle/base/dbhome_1/rdbms/lib/hsxaora.o /oracle/base/dbhome_1/rdbms/lib/xaondy.o -lagtsh -lpthread -lclntsh -lclntshcore `cat /oracle/base/dbhome_1/lib/sysliblist` - INFO: Wl,-rpath,/oracle/base/dbhome_1/lib -lm `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm -L/oracle/base/dbhome_1/lib -lnsgr12 INFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libagtsh.so: undefined reference to symbol 'ssMemRealloc' /usr/bin/ld: note: 'ssMemRealloc' is defined in DSO /oracle/base/dbhome_1/lib//libclntshcore.so so try adding it to the linker command line /oracle/base/dbhome_1/lib//libclntshcore.so: could not read symbols: Invalid operation INFO: collect2: ld returned 1 exit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/hsots] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'all_no_orcl' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details. Exception Severity: 1
Let’s see:
INFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libagtsh.so: undefined reference to symbol 'ssMemRealloc
A different library..Let’s investigate and fix:
oracle$ ldd /oracle/base/dbhome_1/lib//libagtsh.so linux-vdso.so.1 => (0x00007fffd9151000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f50778cd000) libclntsh.so.12.1 => not found libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f507750d000) /lib64/ld-linux-x86-64.so.2 (0x00007f5077eaf000)
ah, an missing lib again..Also an Oracle lib..
root# ln -s /oracle/base/dbhome_1/lib/libclntsh.so.12.1 /usr/lib root# ls -l /usr/lib/libclntsh.so.12.1 lrwxrwxrwx 1 root root 43 Sep 19 11:20 /usr/lib/libclntsh.so.12.1 -> /oracle/base/dbhome_1/lib/libclntsh.so.12.1 root#
Check if this did the trick:
oracle$ ldd /oracle/base/dbhome_1/lib//libagtsh.so linux-vdso.so.1 => (0x00007fff12137000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007faa87fca000) libclntsh.so.12.1 => /usr/lib/libclntsh.so.12.1 (0x00007faa852db000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007faa84f1b000) /lib64/ld-linux-x86-64.so.2 (0x00007faa885ac000) libnnz12.so => /oracle/base/dbhome_1/lib/libnnz12.so (0x00007faa84805000) libons.so => /oracle/base/dbhome_1/lib/libons.so (0x00007faa845c1000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007faa842c4000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007faa840a7000) libaio.so.1 => /lib/x86_64-linux-gnu/libaio.so.1 (0x00007faa83ea5000) libclntshcore.so.12.1 => /oracle/base/dbhome_1/lib/libclntshcore.so.12.1 (0x00007faa83954000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007faa8374c000)
Perfect!
Adjust the makefile again: /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk
oracle$ vi /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk
Search for the lines:
$(HSOTS) : $(ALWAYS) $(HSOTS_DEPS) $(SILENT)$(ECHO) $(SILENT)$(ECHO) " - Linking HS OTS agent" $(RMF) $@ $(HSOTS_LINKLINE)
Add the following:
$(HSOTS) : $(ALWAYS) $(HSOTS_DEPS) $(SILENT)$(ECHO) $(SILENT)$(ECHO) " - Linking HS OTS agent" $(RMF) $@ $(HSOTS_LINKLINE) -lagtsh
Save the file.
For this error, the above fix doesn’t seem to be enough, so let’s put in a extra parameter somewhere to pacify the compiler:
Open the environment file: /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk
oracle$ vi /oracle/base/dbhome_1/rdbms/lib/env_rdbms.mk
Search for the lines:
HSOTS_LINKLINE=$(LINK) $(OPT) $(HSOTSMAI) $(HSALIB_SUBSET1) \ $(HS_OTS_DRIVER) $(HS_XASWITCH_ORA) $(RDBMSLIB)$(XAD_OFF) \ $(HSALIB_SUBSET2) Add the following: HSOTS_LINKLINE=$(LINK) $(OPT) -Wl,--no-as-needed $(HSOTSMAI) $(HSALIB_SUBSET1) \ $(HS_OTS_DRIVER) $(HS_XASWITCH_ORA) $(RDBMSLIB)$(XAD_OFF) \ $(HSALIB_SUBSET2)
Save the file.
Now: hit the “Retry” button of the installer.
Again!? Yep. Again. Same error? No! Check the log file:
INFO: - Linking HS Distributed External Procedure agent INFO: rm -f /oracle/base/dbhome_1/rdbms/lib/hsdepxa INFO: /oracle/base/dbhome_1/bin/orald -o /oracle/base/dbhome_1/rdbms/lib/hsdepxa -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/base/dbhome_1/rdbms/lib/ -L/oracle/base/dbhome_1/lib/ -L/oracle/base/dbhome_1/lib/stubs/ /oracle/base/dbhome_1/rdbms/lib/hormd.o /oracle/base/dbhome_1/rdbms/lib/homts.o /oracle/base/dbhome_1/rdbms/lib/hoax.o /oracle/base/dbhome_1/rdbms/lib/xaondy.o -lagtsh -lpthread -lclntsh -lclntshcore `cat /oracle/base/dbhome_1/lib/sysliblist` -Wl,-rpath,/oracle/base/dbhome_1/lib -lm INFO: `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm -L/oracle/base/dbhome_1/lib -lnsgr12 INFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libagtsh.so: undefined reference to symbol 'ssMemRealloc' /usr/bin/ld: note: 'ssMemRealloc' is defined in DSO /oracle/base/dbhome_1/lib//libclntshcore.so so try adding it to the linker command line /oracle/base/dbhome_1/lib//libclntshcore.so: could not read symbols: Invalid operation INFO: collect2: ld returned 1 exit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/hsdepxa] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'all_no_orcl' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details. Exception Severity: 1
We already fixed the dynamic library dependency, so we just adjust the following:
Open the environment file: /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk
oracle$ vi /oracle/base/dbhome_1/rdbms/lib/env_rdbms.mk
Search for the lines:
HSDEPXA_LINKLINE=$(LINK) $(OPT) $(HSDEPMAI) $(HSALIB_SUBSET1) \ $(HS_DEP_DRIVER) $(RDBMSLIB)$(XAD_OFF) \ $(HSALIB_SUBSET2)
Change this to:
HSDEPXA_LINKLINE=$(LINK) $(OPT) -Wl,--no-as-needed $(HSDEPMAI) $(HSALIB_SUBSET1) \ $(HS_DEP_DRIVER) $(RDBMSLIB)$(XAD_OFF) \ $(HSALIB_SUBSET2)
Save the file.
Now: hit the “Retry” button of the installer.
And again…an error..Let’s see what the problem is.. check the log file:
INFO: ly+0x3296): undefined reference to `oss_cell_discovery_close' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoOpenFile' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCreateCtxExt' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoIO' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoFnameMax' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCommit2P' /oracle/base/dbhome_1/lib//libocrb12.so: undefined refere INFO: nce to `kgfoCheckHdl' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoRenameFile' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoDeleteFile' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCloseFile' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoErrorMessage' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoGetSize' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCreateFile' /oracl INFO: e/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoOpenDirty' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCheckMount' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoDestroyCtx' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoShrinkFile' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoControl' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCreate2P' INFO: collect2: ld returned 1 exit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/kfod] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'all_no_orcl' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details. Exception Severity: 1
Ow. Ok..So..This is a completely different one..
This line though..
INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/kfod] Error 1
This is a not a dynamic executable, so we just open the env file again..
oracle$ vi /oracle/base/dbhome_1/rdbms/lib/env_rdbms.mk
Search for the lines:
KFOD_LINKLINE=$(LINK) $(S0MAIN) $(SSKFODED) $(SKFODPT) $(KFODOBJ) \ $(LIBGENERIC) $(LLIBDBTOOLS) \ $(LIBGENERIC) $(LLIBSAGE) $(LLIBSKGXP) $(LIBCORE) \ $(CSSCLNTLIBS_SERVER) $(LLIBASMCLNT) $(LINKTTLIBS)
Change this to:
KFOD_LINKLINE=$(LINK) $(S0MAIN) -Wl,--no-as-needed $(SSKFODED) $(SKFODPT) $(KFODOBJ) \ $(LIBGENERIC) $(LLIBDBTOOLS) \ $(LIBGENERIC) $(LLIBSAGE) $(LLIBSKGXP) $(LIBCORE) \ $(CSSCLNTLIBS_SERVER) $(LLIBASMCLNT) $(LINKTTLIBS)
Save the file.
Now: hit the “Retry” button of the installer.
*boink* Again! let’s check the log:
INFO: ellScanInit': kfkl.c:(text.unlikely+0x3081): undefined reference to `oss_initialize' kfkl.c:(text.unlikely+0x30e9): undefined reference to `oss_cell_discovery_open' kfkl.c INFO: :(text.unlikely+0x3172): undefined reference to `oss_cell_discovery_fetch' /oracle/base/dbhome_1/lib//libasmclnt12.a(kfkl.o): In function `kfklCellScanNext': kfkl.c:(text.unlikely+0x3231): undefined reference to `oss_cell_discovery_fetch' /oracle/base/dbhome_1/lib//libasmclnt12.a(kfkl.o): In function `kfklCellScanTerm': kfkl.c:(text.unlikely+0x3296): undefined reference to `oss_cell_discovery_close' collect2: ld returned 1 exit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/amdu] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'all_no_orcl' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details. Exception Severity: 1
Ah, the AMDU is the issue..again: we adjust the gcc parameter..
oracle$ vi /oracle/base/dbhome_1/rdbms/lib/env_rdbms.mk
Search for the lines:
AMDU_LINKLINE=$(LINK) $(S0MAIN) -Wl,--no-as-needed $(SSKFMUED) $(SKFMUPT) \ $(LLIBDBTOOLS) $(LLIBCORE) $(LLIBGENERIC) $(LLIBUNLSRTL) \ $(LLIBNLSRTL) $(LLIBCORE) $(LLIBSAGE) $(LLIBSKGXP) \ $(LLIBNLSRTL) $(CSSCLNTLIBS_SERVER) $(LLIBASMCLNT) $(LINKTTLIBS)
Change these to:
AMDU_LINKLINE=$(LINK) $(S0MAIN) -Wl,--no-as-needed $(SSKFMUED) $(SKFMUPT) \ $(LLIBDBTOOLS) $(LLIBCORE) $(LLIBGENERIC) $(LLIBUNLSRTL) \ $(LLIBNLSRTL) $(LLIBCORE) $(LLIBSAGE) $(LLIBSKGXP) \ $(LLIBNLSRTL) $(CSSCLNTLIBS_SERVER) $(LLIBASMCLNT) $(LINKTTLIBS)
Save the file.
Now: hit the “Retry” button of the installer.
Check, another one! Check the log..
INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/kfed] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'all_no_orcl' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details. Exception Severity: 1
ah, KFED..Also not dynamic.
oracle$ vi /oracle/base/dbhome_1/rdbms/lib/env_rdbms.mk
Search for the lines:
KFED_LINKLINE=$(LINK) $(S0MAIN) $(SSKFEDED) $(SKFEDPT) \ $(LLIBDBTOOLS) $(LLIBSAGE) \ $(LLIBSKGXP) $(CSSCLNTLIBS_SERVER) $(LLIBASMCLNT) $(LINKTTLIBS)
Add the line below:
KFED_LINKLINE=$(LINK) $(S0MAIN) -Wl,--no-as-needed $(SSKFEDED) $(SKFEDPT) \ $(LLIBDBTOOLS) $(LLIBSAGE) \ $(LLIBSKGXP) $(CSSCLNTLIBS_SERVER) $(LLIBASMCLNT) $(LINKTTLIBS)
Save the file.
Now: hit the “Retry” button of the installer.
Yep…It’s for real..Another one..Check the log:
INFO: rm -f /oracle/base/dbhome_1/rdbms/lib/plshprof INFO: /oracle/base/dbhome_1/bin/orald -o /oracle/base/dbhome_1/rdbms/lib/plshprof -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/base/dbhome_1/rdbms/lib/ -L/oracle/base/dbhome_1/lib/ -L/oracle/base/dbhome_1/lib/stubs/ /oracle/base/dbhome_1/rdbms/lib/s0khpf.o -lclient12 -lpls12 -lrt -lplp12 -lslax12 -lpls12 -lrt -lplp12 -lclntsh -lclntshcore `cat /oracle/base/dbhome_1/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /oracle/base/dbhome_1/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs INFO: 12 -ln12 -lnl12 -lnnz12 -lzt12 -lztkg12 -lztkg12 -lclient12 -lnnetd12 -lvsn12 -lcommon12 -lgeneric12 -lmm -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 `cat /oracle/base/dbhome_1/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /oracle/base/dbhome_1/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lclient12 -lnnetd12 -lvsn12 -lcommon12 -lgeneric12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls1 INFO: 2 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 -lclient12 -lnnetd12 -lvsn12 -lcommon12 -lgeneric12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 `cat /oracle/base/dbhome_1/lib/sysliblist` -Wl,-rpath,/oracle/base/dbhome_1/lib -lm `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm -L/oracle/base/dbhome_1/lib INFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libclient12.a(kpue.o): undefined reference to symbol 'ons_subscriber_close' /usr/bin/ld: note: 'ons_subscriber_close' is defined in DSO /oracle/base/dbhome_1/lib/libons.so so try adding it to the linker command line /oracle/base/dbhome_1/lib/libons.so: could not read symbols: Invalid operation INFO: collect2: ld returned 1 exit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/plshprof] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'utilities' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details. Exception Severity: 1
The fix is known by now, open the make file:
oracle$ vi /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk
Search for the lines:
$(PLSHPROF) : $(ALWAYS) $(PLSHPROF_DEPS) $(SILENT)$(ECHO) $(SILENT)$(ECHO) " - Linking hierarchical profiler utility (plshprof)" $(RMF) $@ $(PLSHPROF_LINKLINE)
Explicitly add the libons.so file, to satisfy the compiler again:
$(PLSHPROF) : $(ALWAYS) $(PLSHPROF_DEPS) $(SILENT)$(ECHO) $(SILENT)$(ECHO) " - Linking hierarchical profiler utility (plshprof)" $(RMF) $@ $(PLSHPROF_LINKLINE) -lons
Save the file.
Now: hit the “Retry” button of the installer.
Yes, indeed..The next one is popping up..Again: hit the log file..
INFO: - Linking recovery manager (rman) INFO: rm -f /oracle/base/dbhome_1/rdbms/lib/rman INFO: /oracle/base/dbhome_1/bin/orald -o /oracle/base/dbhome_1/rdbms/lib/rman -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/base/dbhome_1/rdbms/lib/ -L/oracle/base/dbhome_1/lib/ -L/oracle/base/dbhome_1/lib/stubs/ /oracle/base/dbhome_1/lib/s0main.o /oracle/base/dbhome_1/rdbms/lib/sskrmed.o /oracle/base/dbhome_1/rdbms/lib/skrmpt.o -ldbtools12 -lclient12 -lsql12 -lpls12 -lrt -lplp12 -lsnls12 -lunls12 -lnls12 -lslax12 -lpls12 -lrt -lplp12 /oracle/base/dbhome_1/lib/libplc12.a -lclntsh -lclntshcore `cat /o INFO: racle/base/dbhome_1/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /oracle/base/dbhome_1/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnnz12 -lzt12 -lztkg12 -lztkg12 -lclient12 -lnnetd12 -lvsn12 -lcommon12 -lgeneric12 -lmm -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 `cat /oracle/base/dbhome_1/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /oracle/base/dbhome_1/ INFO: lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lclient12 -lnnetd12 -lvsn12 -lcommon12 -lgeneric12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 -lclient12 -lnnetd12 -lvsn12 -lcommon12 -lgeneric12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 `cat /oracle/base/dbhome_1/lib/sysliblist` -Wl,-rpath,/oracle/base/dbhome_1/lib -lm INFO: `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm -L/oracle/base/dbhome_1/lib INFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libclient12.a(kpue.o): undefined reference to symbol 'ons_subscriber_close' /usr/bin/ld: note: 'ons_subscriber_close' is defined in DSO /oracle/base/dbhome_1/lib/libons.so so try adding it to the linker command line /oracle/base/dbhome_1/lib/libons.so: could not read symbols: Invalid operation INFO: collect2: ld returned 1 exit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/rman] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'utilities' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details. Exception Severity: 1
Ah, not an un-important one..Let’s fix this quickly:
oracle$ vi /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk
Search for the lines:
$(RMAN) : $(ALWAYS) $(RMAN_DEPS) $(SILENT)$(ECHO) $(SILENT)$(ECHO) " - Linking recovery manager (rman)" $(RMF) $@ $(RMAN_LINKLINE)
Change to:
$(RMAN) : $(ALWAYS) $(RMAN_DEPS) $(SILENT)$(ECHO) $(SILENT)$(ECHO) " - Linking recovery manager (rman)" $(RMF) $@ $(RMAN_LINKLINE) -lons
Save the file.
Now: hit the “Retry” button of the installer.
Yes, again…But the end is nigh..Check the log files again..
INFO: - Linking dg4pwd utility INFO: rm -f /oracle/base/dbhome_1/rdbms/lib/dg4pwd INFO: /oracle/base/dbhome_1/bin/orald -o /oracle/base/dbhome_1/rdbms/lib/dg4pwd -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/base/dbhome_1/rdbms/lib/ -L/oracle/base/dbhome_1/lib/ -L/oracle/base/dbhome_1/lib/stubs/ /oracle/base/dbhome_1/rdbms/lib/dg4pwd.o /oracle/base/dbhome_1/rdbms/lib/houzi.o -lpthread -lclntsh -lclntshcore `cat /oracle/base/dbhome_1/lib/sysliblist` -Wl,-rpath,/oracle/base/dbhome_1/lib -lm `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm -L/oracle/base/dbhome_1/lib INFO: /usr/bin/ld: /oracle/base/dbhome_1/rdbms/lib/houzi.o: undefined reference to symbol 'ztcsh' /usr/bin/ld: note: 'ztcsh' is defined in DSO /oracle/base/dbhome_1/lib/libnnz12.so so try adding it to the linker command line /oracle/base/dbhome_1/lib/libnnz12.so: could not read symbols: Invalid operation INFO: collect2: ld returned 1 exit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/dg4pwd] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'utilities' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_01-00-29PM.log' for details. Exception Severity: 1
Ah, GCC is in a twitch again:
/oracle/base/dbhome_1/lib/libnnz12.so: could not read symbols: Invalid operation
Edit the make file again:
oracle$ vi /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk
Search for the lines:
$(TG4PWD) : $(ALWAYS) $(TG4PWD_DEPS) $(SILENT)$(ECHO) $(SILENT)$(ECHO) " - Linking $(TG4DG4)pwd utility" $(RMF) $@ $(TG4PWD_LINKLINE)
And add the following:
$(TG4PWD) : $(ALWAYS) $(TG4PWD_DEPS) $(SILENT)$(ECHO) $(SILENT)$(ECHO) " - Linking $(TG4DG4)pwd utility" $(RMF) $@ $(TG4PWD_LINKLINE) -lnnz12
Save the file.
Now: hit the “Retry” button of the installer.
And again: Check the log file:
INFO: Linking external procedure agent (/oracle/base/dbhome_1/rdbms/lib/extproc) INFO: rm -f /oracle/base/dbhome_1/rdbms/lib/extproc INFO: /oracle/base/dbhome_1/bin/orald -o /oracle/base/dbhome_1/rdbms/lib/extproc -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/base/dbhome_1/rdbms/lib/ -L/oracle/base/dbhome_1/lib/ -L/oracle/base/dbhome_1/lib/stubs/ /oracle/base/dbhome_1/rdbms/lib/hormc.o /oracle/base/dbhome_1/rdbms/lib/homts.o -lagtsh -lpthread -lclntsh -lclntshcore `cat /oracle/base/dbhome_1/lib/sysliblist` -Wl,-rpath,/oracle/base/dbhome_1/lib -lm `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm -L/oracle/base/dbhome_1/ INFO: lib -lnsgr12 INFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libagtsh.so: undefined reference to symbol 'nsdisc' /usr/bin/ld: note: 'nsdisc' is INFO: defined in DSO /oracle/base/dbhome_1/lib//libclntsh.so so try adding it to the linker command line /oracle/base/dbhome_1/lib//libclntsh.so: could not read symbols: Invalid operation collect2: ld returned 1 exit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/extproc] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'utilities' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_01-00-29PM.log' for details. Exception Severity: 1
And edit the make file to get the compilers satisfaction:
oracle$ vi /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk Search for the lines:
$(EXTPROC): $(ALWAYS) $(EXTPROC_DEPS) $(SILENT)$(ECHO) $(SILENT)$(ECHO) "Linking external procedure agent ($@)" $(RMF) $@ $(EXTPROC_LINKLINE)
And change to:
$(EXTPROC): $(ALWAYS) $(EXTPROC_DEPS) $(SILENT)$(ECHO) $(SILENT)$(ECHO) "Linking external procedure agent ($@)" $(RMF) $@ $(EXTPROC_LINKLINE) -lagtsh
Save the file.
Now edit the env file:
oracle$ vi /oracle/base/dbhome_1/rdbms/lib/env_rdbms.mk
Search for the lines:
EXTPROC_LINKLINE=$(LINK) $(OPT) $(EXTPMAI) $(PROD_EXTPROC_OPT) \ $(HSALIB_SUBSET1) $(HSALIB_SUBSET2)
And add:
EXTPROC_LINKLINE=$(LINK) $(OPT) -Wl,--no-as-needed $(EXTPMAI) $(PROD_EXTPROC_OPT) \ $(HSALIB_SUBSET1) $(HSALIB_SUBSET2)
Save the file.
Now: hit the “Retry” button of the installer.
Almost there! Check the log again:
INFO: - Linking tnslsnr INFO: rm -f tnslsnr INFO: /oracle/base/dbhome_1/bin/orald -o tnslsnr -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/base/dbhome_1/network/lib/ -L/oracle/base/dbhome_1/lib/ -L/oracle/base/dbhome_1/lib/stubs/ /oracle/base/dbhome_1/network/lib/s0nsgl.o /oracle/base/dbhome_1/network/lib/snsglp.o -lclntsh -lclntshcore `cat /oracle/base/dbhome_1/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /oracle/base/dbhome_1/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnnz12 -lzt12 -lztkg12 -lztkg12 -lc INFO: lient12 -lnnetd12 -lvsn12 -lcommon12 -lgeneric12 -lmm -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 `cat /oracle/base/dbhome_1/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /oracle/base/dbhome_1/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lclient12 -lnnetd12 -lvsn12 -lcommon12 -lgeneric12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls1 INFO: 2 -lsnls12 -lnls12 -lcore12 -lnls12 -lclient12 -lnnetd12 -lvsn12 -lcommon12 -lgeneric12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 `cat /oracle/base/dbhome_1/lib/sysliblist` -Wl,-rpath,/oracle/base/dbhome_1/lib -lm `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm -L/oracle/base/dbhome_1/lib -lons -lnl12 -ln12 -lnlsnr12 -lnlsnrc12 -lnsgr12 -lncm12 -lnro12 -ln12 -lnl12 -lnlsnr12 -lnlsnrc12 -lncm12 -ln12 -l INFO: m INFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libclntsh.so: undefined reference to symbol 'ztcr2rnd' /usr/bin/ld: note: 'ztcr2rnd' is defined in DSO /oracle/base/dbhome_1/lib//libnnz12.so so try adding it to the linker command line /oracle/base/dbhome_1/lib//libnnz12.so: could not read symbols: Invalid operation INFO: collect2: ld returned 1 exit status INFO: make: *** [tnslsnr] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'install' of makefile '/oracle/base/dbhome_1/network/lib/ins_net_server.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_01-00-29PM.log' for details. Exception Severity: 1
Edit the make file (THIS IS NOT THE SAME AS BEFORE!):
/oracle/base/dbhome_1/network/lib/ins_net_server.mk
look for:
tnslsnr: $(S0NSGL) $(SNSGLP) $(NSGLPNP) $(SILENT)$(ECHO) " - Linking $(TNSLSNR)" $(RMF) $@ $(TNSLSNR_LINKLINE)
And add TWO libs:
tnslsnr: $(S0NSGL) $(SNSGLP) $(NSGLPNP) $(SILENT)$(ECHO) " - Linking $(TNSLSNR)" $(RMF) $@ $(TNSLSNR_LINKLINE) -lnnz12 -lons
Save the file.
Now: hit the “Retry” button of the installer.
Yes, again..This is still expected..Well..You know where to look now, don’t you? ;-)
INFO: /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCloseFile' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoShrinkFile' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCommit2P' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoErrorMessage' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoGetSize' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoOpenDirty' /oracle/base/dbhome_1/lib//libo INFO: crb12.so: undefined reference to `kgfoIO' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCreateCtxExt' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCreate2P' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCheckHdl' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoDestroyCtx' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoRenameFile' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kg INFO: foCreateFile' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoDeleteFile' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoFnameMax' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCheckMount' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoControl' /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoOpenFile' /oracle/base/dbhome_1/lib//libocrutl12.so: undefined reference to `lfieno' collect2: ld returned 1 e INFO: xit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/oracle] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'irman ioracle' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_01-00-29PM.log' for details. Exception Severity: 1
Ah, we have seen this before! A library is not feeling satisfied..
Fix it like this:
oracle$ ldd /oracle/base/dbhome_1/lib//libocrb12.so linux-vdso.so.1 => (0x00007fffa83e3000) libocrutl12.so => not found libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe62fe75000) /lib64/ld-linux-x86-64.so.2 (0x00007fe630520000)
root# ln -s /oracle/base/dbhome_1/lib//libocrutl12.so /usr/lib root# ls -l /usr/lib/libocrutl12.so lrwxrwxrwx 1 root root 41 Sep 19 13:44 /usr/lib/libocrutl12.so -> /oracle/base/dbhome_1/lib//libocrutl12.so oracle$ ldd /oracle/base/dbhome_1/lib//libocrb12.so linux-vdso.so.1 => (0x00007fff3d7ff000) libocrutl12.so => /usr/lib/libocrutl12.so (0x00007fec9674c000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fec9638d000) /lib64/ld-linux-x86-64.so.2 (0x00007fec96c48000)
Ok, the library is happy..
Then edit the file : /oracle/base/dbhome_1/rdbms/lib/env_rdbms.mk
ORACLE_LINKLINE=$(ORACLE_LINKER) $(PL_FLAGS) $(ORAMAI) $(SSORED) $(TTCSOI) \ $(ORACLE_KERNEL_LIBS) $(LINKLDLIBS)
Change to:
ORACLE_LINKLINE=$(ORACLE_LINKER) -Wl,--no-as-needed $(PL_FLAGS) $(ORAMAI) $(SSORED) $(TTCSOI) \ $(ORACLE_KERNEL_LIBS) $(LINKLDLIBS)
Save the file.
Now: hit the “Retry” button of the installer.
Wait,WAIT!! … Is it for real!?!? YES! We are PAST THE LINKER!! Now let the installer humm along..
AH! This looks familiar…well..let’s just do this..
Execute the scripts AS ROOT:
root# /oracle/oraInventory/orainstRoot.sh Changing permissions of /oracle/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /oracle/oraInventory to oinstall. The execution of the script is complete. root# /oracle/base/dbhome_1/root.sh Performing root user operation for Oracle 12c The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /oracle/base/dbhome_1 Enter the full pathname of the local bin directory: [/usr/local/bin]: Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ... Creating /etc/oratab file... Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed.
And continue by pressing OK on the install screen.
Indeed…Successful indeed…The base software is installed!
Great job, well done! Now grab yourself a good cup of coffee and relish in this accomplishment! No mean feat at all!
Of course, this is only the basis, we need to reap the benefits of all this work by installing (and at the same time do a sanity check to see if we really did our work correct) an database..
So: let’s fire up the DBCA!
Quickly setup the environment:
~$ export ORACLE_HOME=/oracle/base/dbhome_1 oracle:~$ export PATH=$PATH:$ORACLE_HOME/bin oracle:~$ dbca
Select advanced mode (we like control!) and press Next.
A General purpose db with samples: perfect! Press Next.
Of course we go for the new features, but let’s play it cool, just create a container with just one PDB first..
Make the adjustments, and press Next.
Due to lack of OEM Cloud…we stick to the EM Database express (also VERY nice to play with!)
Press Next.
One ring to rule them all…erhm..password that is..will do..Press Next after making the adjustments.
One listener will suffice for now..Press Next.
Just a simple setup for now WITH FRA and ARCHIVING enabled..we are going to backup this database before we “rough treat” it ;-)..Make the adjustments, and press Next.
Yes, we love the examples…and we do need some data to play and display with..Press Next.
I can live with these settings, and we change them later anyway..so press Next.
Hmm, yes, please create a template for future reference, and yes, please create the database. Click the options and press Next.
Check the settings…and press Finish (the moment of truth!)..
Almost then…Click the pop-up..Press OK.
And finishes! Note down this information and press OK.
And we are done. A new fresh database ready to use and abuse!
A small test is, of course, mandatory:
~$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.1.0 Production on Thu Sep 19 19:11:17 2013 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
oracle$ export ORACLE_SID=packarddb oracle$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.1.0 Production on Thu Sep 19 19:11:17 2013 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options SQL> select instance_name from gv$instance; INSTANCE_NAME ---------------- packarddb SQL>exit Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
And RMAN:
$ rman target / Recovery Manager: Release 12.1.0.1.0 - Production on Thu Sep 19 19:13:50 2013 Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved. connected to target database: PACKARDD (DBID=415606655) RMAN> show all; using target database control file instead of recovery catalog RMAN configuration parameters for database with db_unique_name PACKARDDB are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP ON; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ENCRYPTION FOR DATABASE OFF; # default CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/base/dbhome_1/dbs/snapcf_packarddb.f'; # default RMAN>
It seems we are ready to roll!
I hope this post was of use to you, and of course, I’m open to suggestions. Please correct me if I made wrong assumptions, or you have improvements.
Happy Database’ing!
This really nice tutorial. I am able to install the oracle using this manual. did not find any difficulty.
You’re most welcome!
GOP: I owe you a debt of gratitude. thank you so much for this tutorial. I was trying to install 12c on debian, and, as a noob, had no clue about that make error. you pointed me in the right direction to handle the peculiar errors on my setup.
you’re making the world a better place. thanks,
I follow this steps and now my server is installed. Thanks a lot!!!!!
Thanks, your tutorial looks crazy but now I’m running Oracle 12g on Ubuntu 13.04! I was stuck a week with these errors and an incomplete installation. I’ve followed original tutorials for Oracle Linux http://www.oracle-base.com/articles/12c/oracle-db-12cr1-installation-on-oracle-linux-6.php and alternatives for Ubuntu but with older Oracle 11g http://www.makina-corpus.org/blog/howto-install-oracle-11g-ubuntu-linux-1204-precise-pangolin-64bits. Now I can successfully connect to sqlplus using “system” user and the password specified at install. PS: I didn’t have any lib not found when using ldd, maybe beacause I did export LD_LIBRARY_PATH=$ORACLE_HOME/lib before install. You article is very new, I found it my mistake when searching “undefined reference to symbol ‘ztucxtb'” on Google :)
really helpfull..thank you thank you very much
Hello,
First of all thank you for your amazing work, i’m actually stuck at the installation launch step, when ever i try executing runInstall i get this :
oracle@abdou-pc:/home/abdou/Downloads/database$ bash ./runInstaller
Source location is incomplete. Make sure you have downloaded and extracted
all the relevant archives.
even though my files are complete (I compared the checksums ) each zip file was extracted in a directory then i merged them.
thanks
Hi,
You might want to leave out the “bash” part, so:
oracle@abdou-pc:/home/abdou/Downloads/database$ ./runInstaller
This will be enough, when you add “bash” in front of this, you spawn a new process of bash were you try to run the installation..Not going to work as you have noticed..
Success!!
thank you, I restarted the entire process, it installed without any errors (thanks to your amazing work) now i can’t get sql developer to connect to the database, i’m getting this error :Status : Failure -Test failed: IO Error: The Network Adapter could not establish the connection
This might be because the listener is not yet configured. Did you run the “netca” command on the server? Configured the listener and naming convention (tns names and eazy connect).
Can you tnsping the database? Make sure you have set the correct oracle environment settings..
hum, yeah i kidna guessed it had something to do with the service not being up or the listener not running but couldn’t manage to find a good tutorial … ( i haven’t done much more than what your tutorial said to do )
i tried running netca (couldn’t run the actual command so i executed the bin) and i get this :
oracle@abdou-pc:/oracle/base/dbhome_1/bin$ ./netca
Oracle Net Services Configuration:
No protocol specified
No protocol specified
Error: null
and here is the log :
http://pastebin.com/ir4ecG3u
Hi,
I take a look at this later today, perhaps I can find out something to help. However, taken from your comment regarding launching the netca, it seems the oracle environment is not set correctly. Try setting the settings below, and re-execute the netca again:
export ORACLE_HOME=/srv/oracle/base/db_home01
export ORACLE_UNQNAME=ORACLE_SID
export ORACLE_SID=ORACLE_SID
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/java/bin:/srv/oracle/base/db_home01/bin
i changed the path a little bitn got the netca command to execute directly, but still when executing it, i get the same result :
oracle@abdou-pc:/oracle/base/dbhome_1/bin$ netca
Oracle Net Services Configuration:
No protocol specified
No protocol specified
Error: null
Check the trace file for details: /oracle/base/cfgtoollogs/netca/trace_OraDB12Home1-1311241PM4104.log
Oracle Net Services configuration failed. The exit code is 1
Ouuuuuff , did it ! it works ! , actually there were to many things all messed up, path variables, xhost config, SID config, now i’m connected via sqldeveloper, man Thank very freaking much =) !
Glad it worked out for you!
Have fun with the new release, it is really worth it, and from what I can see from here: you already gained experience!
Pingback: How to run Oracle 12c on Ubuntu 12.04? | Ubuntu InfoUbuntu Info
Very nice tutorial, thank you
Thank you! Appreciate the comment, happy Christmas!
how to create ……..oracle$/tmp/Oracle12c/database$ ./runInstaller
plz rply me very ugent
I’m not sure if I understand what you are trying to ask..It seems to me you are trying to run the installer..If you are asking where this is, you should make you have the correct installation files and unpacked all of these. The “runInstaller” is delivered by Oracle.
Regarding the urgent part: I don’t think a blog is the place to urge people on. I can’t be a personal assistent to help you with this. Altough if you can provide me a remote desktop connection, I’m sure we can work out something with regarding my fee ;-)
My os is ubuntu desktop 12.04 64bit
plz give step by step installation .
i am fesher n linux plz help me
I believe the steps are already described. Please clarify where you are stuck, and I will try to make it clear..Although I must say, if you are fresh on Linux, this exercise on installing Oracle on an unsupported OS might be a bridge to far..
Very helpful. I don’t know how you had the patience to work out all the link errors. I’d have quit after one or two. Thanks for publishing this.
Thanks!
It was a contest of who could be more stubborn, Oracle or me.. I guess I won ;-)
It was an excellent tutorial. I only faced an issue while running root.sh. I have used Ubuntu 12.04 LTS. It says /bin/awk not found. So I simply linked it with /usr/bin/awk and rest was perfectly ok.
Great to hear it was helpful!
Hi, your blog is simply awasome I have completed installation but stuck at dbca it gives me error:
Recovery Manager failed to restore datafiles. Refer logs for details.
could you guide me further.
Thanks
Hi,
Good to hear the information is useful. I think you have a “normal” issue like permissions or environment settings not set correctly. If you send the contents of the log file, we can take a look at where it is bailing out..
Muchas Gracias!!…
Felicitaciones por el excelente trabajo.
Saludos desde Chile.
————————————-
Thank you! …
Congratulations on the excellent work.
Greetings from Chile.
eres bienvenido!! ;-)
That helped a whole lot!!!!! Thanks! When is Oracle ever going to come up with early releases w/o installation pains?
Thank you!
Hi, I’m currently trying to install Oracle 12c on Linux Mint 16 (64 bits), and I’ve a weird error : INFO: /usr/bin/ld: /home/david/app/david/product/12.1.0/dbhome_1/rdbms/lib/houzi.o: référence au symbole non défini «ztcsh»
/home/david/app/david/product/12.1.0/dbhome_1/lib/libnnz12.so: error adding symbols: DSO missing from command line , I’ve checked libnnz12.so, without any success and apparently everything is linked in that file :
> ldd libnnz12.so
linux-vdso.so.1 => (0x00007fffbd706000)
libclntshcore.so.12.1 => /usr/lib/libclntshcore.so.12.1 (0x00007f5b6048e000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5b600c6000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5b5fec1000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5b5fbbd000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5b5f9a0000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f5b5f797000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5b61110000)
Thanking you in advance , I bet this would help some people which are encoutering that issue
Have you any idea ?
Solved by adding : -lnnz12 in ins_rdbms.mk
1063 $(TG4PWD) : $(ALWAYS) $(TG4PWD_DEPS)
1064 $(SILENT)$(ECHO)
1065 $(SILENT)$(ECHO) ” – Linking $(TG4DG4)pwd utility”
1066 $(RMF) $@
1067 $(TG4PWD_LINKLINE) -lnnz12
See you next issue !
Thank you! Great guide!
3 small notes:
“ln -s /usr/lib /usr/lib64” instead of “ln -s /usr/lib /usr/lib/lib64” (as above)
2 x “Open the environment file: /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk” instead of “…/env_…”
(in my case) in order to run the last root scripts, have run “ln -s /usr/bin/awk /bin/awk” before
I encounter this error: ln /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/libpthread_nonshared.a
Sorry I encounter this error when i enter the above command: ” ln: accessing `/usr/lib64/libpthread_nonshared.a’: Not a directory “
I solved the problem by reading this article. Thanks
http://hswong3i.net/blog/hswong3i/oracle-database-11g-release-2-ubuntu-12-04-howto
Glad you were able to work this out!
Thanks for reading!
brilliant instructions – it saved me hours. Thank you
Glad I was able to help out!
Brilliant job! Thanks for putting these together
thanks dude …. helped alot
given full detail of installation great job ..
Thanks!
Thanks a lot. But each time i restart the box i get a could not find the initSID.ora file error. :(
Hi!
I don’t have much information to go on, but you might want to double check your environment settings..like if the ORACLE_HOME is set correct, or the ORACLE_SID, and don’t forget to check the PATH variable to include the “$ORACLE_HOME/bin”
hth!
Hello, I had the following error, sorry if this mistranslated and to use the google translator, my English is not very good :/
Javier-oracle @ Ubuntu :/ home / javier / Desktop / database $. / runInstaller
You do not have sufficient permissions to access the inventory ‘/ u01/app/oraInventory’. You can not continue the installation. It is necessary that the primary user group facility is at the group owner’s inventory. Ensure that the installation user is part of the inventory owner and reboot Installer. No such file or directory
thanks in advance
Hi,
Basically the explanation you have when this error is thrown is the solution..The permissions you have on the oraInventory are not the correct ones granted to the OS user you use when running the install.
Pingback: Oracle 12c Ubuntu Xen Server Setup | Silva Tech Solutions LLC
We are very close thanks to your brilliant instructions. Thank you very much
Our last error is the following. Anyone else have a problem like this?
INFO: /dbdrive/oracle/app/oracle/product/12.1.0/dbhome_2/rdbms/lib/config.o: file not recognized: File truncated
INFO: collect2: ld returned 1 exit status
INFO: make: *** [/dbdrive/oracle/app/oracle/product/12.1.0/dbhome_2/rdbms/lib/oracle] Error 1
INFO: End output from spawned process.
INFO: ———————————-
SEVERE: oracle.sysman.oii.oiil.OiilActionException: Error in invoking target ‘irman ioracle’ of makefile ‘/dbdrive/oracle/app/oracle/product/12.1.0/dbhome_2/rdbms/lib/ins_rdbms.mk’. See ‘/dbdrive/oracle/app/oracle/product/12.1.0/dbhome_2/install/relinkActions2014-05-01_03-59-55-PM.log’ for details.
at oracle.sysman.oii.oiis.OiisMakeDeps.invokeMakefile(OiisMakeDeps.java:537)
at oracle.sysman.oii.oiis.OiisMakeDeps.doRelink(OiisMakeDeps.java:614)
at oracle.sysman.oii.oiis.OiisMakeDeps.doOperation(OiisMakeDeps.java:799)
at oracle.sysman.oii.oiis.OiisMakeDeps.main(OiisMakeDeps.java:809)
Pingback: ldd - Diligent Cat
sir, i is in your debt! thank you
No problem at all, glad you find this useful!
You’r an awesome man! I see you put a lot of effort to accomplish this article. Lots of contribution. Cause of your gratitude, I’ve successfully installed and able to run the oracle on my debian, ubuntu 12.0.4. I was almost about to surrender to use the oracle database since before I saw your article. Thanks infinite.
Sir, this guideline is very very useful for me. And I request you to help me in installing oracle forms and reports on debian wheezy also. If could please help me..!
Sir, this guideline is very very useful for me. And I request you to help me in installing oracle forms and reports on debian wheezy also. If you could please help me..!
This really saved me! Works on Debian
Thx!
Thank you so much for this information. I’m trying to install 12c on Ubuntu 14.04. After fixing the first linking error (libpthread_nonshared.a), I then get this error in the log file that you didn’t seem to encounter:
INFO: make[1]: Entering directory `/oracle/base/dbhome_1/precomp/lib’
INFO: Linking /oracle/base/dbhome_1/precomp/lib/proc
INFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libnls12.a(lxhlang.o): undefined reference to symbol ‘__tls_get_addr@@GLIBC_2.3’
//lib/x86_64-linux-gnu/ld-linux-x86-64.so.2: error adding symbols: DSO missing from command line
INFO: collect2: error: ld returned 1 exit status
INFO: /bin/chmod: cannot access ‘/oracle/base/dbhome_1/precomp/lib/proc’
INFO: : No such file or directory
Any ideas? Thanks.
Hi,
installing on 14.04…
I have to add the following packages:
apt-get install lib32z1-dev libc6-dev-i386
libc6-dev-i386: resolve libpthread_nonshared.a problem, i386 lib was not installed
lib32z1-dev: resolve /usr/bin/ld: cannot find -lz in …ctx/lib/ins_ctx.mk
precomp/lib/ins_precomp.mk:
Error: /bin/chmod: Zugriff auf »/home/oracle/app/oracle/product/12.1.0/dbhome_1/precomp/lib/proc“ nicht möglich
Fix: delete/backup ../lib/stubs folder (mv …/lib/stubs …/lib/stubs.bak)
…me again
root scripts need awk in /bin/
ln -s /usr/bin/awk /bin/awk
Thanx a lot! Find this thread and now I can install 12c on 14.04.
Hi, sorry for the late reply, I’m glad you were able to solve this. I’m still running Ubuntu 12.10, since..we’ll, it just works ;-)
However I’m working on a blog to have Oracle 12cR1 on a Redhat 7 installation..should be a lot of fun also!
All hail GoP: I would never have got my 11g upgraded to 12c without this site: at my time of access at least, it was top of the search page for ‘ubuntu upgrade oracle 11g 12c’, and deservedly so.
In my case – on a brand new Ubuntu upgrade to v14.04 LTS – I had a few occurrences of a linker error not mentioned here – “unresolved symbol: ‘__tls_get_addr@@GLIBC_2.3’ ” which I solved with the help of:
http://gumpx.wordpress.com/tag/__tls_get_addrglibc_2-3/
Thanks!
No problem! I appreciate the reply, and indeed, it seems the time is right to upgrade my OS so I can update the blog with the newest software versions..
Hi ..
I received the pop up saying “did not meet the requirements do you want to continue” I havent had oracle11c running on my system before.. What should I do know, Press yes or no ?
yes, since this OS (version) is never going to supported, you’ll never meet the requirements..So, ignore this message, and continue..
lI am trying harder to install though the instructions are given.. ln /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/libpthread_nonshared.a is not getting executed it is saying not a directory could you please help me out with this.
Hi I am able to login with user name as “oracle” but i am unable to run the file ./runInstaller it is throwing me an error please help me out with this. It is very urgent
I went on with whole procedure.. but missing seperator is the error i am getting in “ins_rdbms.mk” file
Hello there,
It is indeed a long journey phew… I’m trying to install 12c on ubuntu, after fixing KFED_LINKLINE
and hitting retry, its throwing an error oracle/base/dbhome_1/rdbms/lib/renamedg.. What should I do now? Please help me.
to fix:
vi env_rdbms.mk
and add “-Wl,–no-as-needed” to KFNDG_LINKLINE as show you below
KFNDG_LINKLINE=$(LINK) $(S0MAIN) -Wl,–no-as-needed $(SSKFNDGED) $(SKFNDGPT) $(KFNDGOBJ) \
$(LLIBCLNTSH) $(LIBGENERIC) $(DEF_OPT) $(LLIBDBTOOLS) $(LIBGENERIC) \
$(LIBCORE) $(CSSCLNTLIBS) $(ASMCLNT_LIBS) $(LINKTTLIBS)
Thx for this update! I really need to clean up this post, but time, time,time…
Hi. Actually i installed Oracle before reading this post, with the help of ubuntu official site, by downloading three *.rpm files from oracle site and converting them to *.deb files using alien software, which installed int /opt directory by themselves. Now, i dont have a UI for oracle and i am able to run it on the terminal without a glitch. But, the problem now is that, we have been using mysql in my college via server-client architecture and the faculties alloted us user id and passwords. Now that i am trying to use this locally on my personal computer, i didn’t know what to enter when mysql prompts for user id and password. I searched everywhere and i could’nt find anyting helpful, but just your blog of this. So, can you please help me progress in this?
Wow. Excellent details. I hit almost all error as you described and all your solution worked well. I am really thankful to you for such a nice and detailed description.
Hi,
nice tutorial. For the newest Version *12.1.0.2* you need to adjust *env_rdbms.mk* again to fix a relink issue with ‘renamedg’. The lines must be:
KFNDG_LINKLINE=$(LINK) $(S0MAIN) -Wl,–no-as-needed $(SSKFNDGED) $(SKFNDGPT) $(KFNDGOBJ) \
$(LLIBCLNTSH) $(LIBGENERIC) $(DEF_OPT) $(LLIBDBTOOLS) $(LIBGENERIC) \
$(LIBCORE) $(CSSCLNTLIBS) $(ASMCLNT_LIBS) $(LINKTTLIBS)
like for kfod, kfed and so on.
you need to adjust *ins_rdbms.mk*
KFNDG_LINKLINE=$(LINK) $(S0MAIN) -Wl,–no-as-needed $(SSKFNDGED) $(SKFNDGPT) $(KFNDGOBJ) \
$(LLIBCLNTSH) $(LIBGENERIC) $(DEF_OPT) $(LLIBDBTOOLS) $(LIBGENERIC) \
$(LIBCORE) $(CSSCLNTLIBS) $(ASMCLNT_LIBS) $(LINKTTLIBS)
Hi,
I found the instructions very helpful. I had to make the following minor changes:
root:~# ln -s /usr/lib /usr/lib/lib64
should be changed to: root:~# ln -s /usr/lib /usr/lib64
root:~# ln /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/libpthread_nonshared.a
should be changed to:
root:~# ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/libpthread_nonshared.a
Another error happened while linking renamedg. To fix the issue I did the following:
oracle$ vi /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk
Search for the lines:
KFNDG_LINKLINE=$(LINK) $(S0MAIN) $(SSKFNDGED) $(SKFNDGPT) $(KFNDGOBJ) \
$(LLIBCLNTSH) $(LIBGENERIC) $(DEF_OPT) $(LLIBDBTOOLS) $(LIBGENERIC) \
$(LIBCORE) $(CSSCLNTLIBS) $(ASMCLNT_LIBS) $(LINKTTLIBS)
Add the following:
KFNDG_LINKLINE=$(LINK) $(S0MAIN) -Wl,–no-as-needed $(SSKFNDGED) $(SKFNDGPT) $(KFNDGOBJ) \
$(LLIBCLNTSH) $(LIBGENERIC) $(DEF_OPT) $(LLIBDBTOOLS) $(LIBGENERIC) \
$(LIBCORE) $(CSSCLNTLIBS) $(ASMCLNT_LIBS) $(LINKTTLIBS)
Excellent tutorial. Thank you for your effort.
Rob
I guess the best way to thank you for this tutorial is to provide an update: using this blog as a base I was able to install Oracle 12c Enterprise Edition on Ubuntu 14.04.1. For completeness, here are the details:
Hardware: Dell OptiPlex 790 with an i5 processor (4 cores) and 16 GB RAM
Operating system: Ubuntu Server 14.04.1 LTS x86_64 kernel 3.13.0-34-generic
Oracle installation: 12.1.0.2.0 Enterprise Edition.
Some extra-notes:
– my problems were related to some wrong dependencies that I had (the assembler -as- was not configured for a target of `x86_64-linux-gnu’ so I had to install the binutils-aarch64-linux-gnu package; I also forgot to install the libaio1 which gave me some hard times towards the end).
– there were a couple of minor differences in the errors I got, but essentially the same linking thing…
I’m getting a different error:
INFO: make: *** [/home/david/app/david/product/12.1.0/dbhome_1/rdbms/lib/renamedg] Error 1
Can you help me?
Hi,
I was wondering where did you find the entries that go into /etc/sysctl.conf and /etc/security/limits.conf? I went through the Oracle documentation on installing 12c on Linux but couldn’t find those anywhere.
With regards.
P.s. Thank you for the article. Didn’t try it out yet, but will do when I find a bit of time.
Those settings are basically from Oracle 11g and a whole lot of experience. ;-)
Just out of curiosity: what would happen if I don’t enter those parameters? Everything would still work, I suppose.
You can get the software started, but don’t be surprised if you run into some weird errors. I’ve experienced some issues in the past where I had not set the memory parameters correct, and could not allocate more memory to the database from the OS. When I have the time I’ll post about this..
Hi, when I install the oracle in ubuntu 12.04,
I couldn’t solve the problem.
The major problem is two.
One is that I write the sentence such as
$ su – oracle
then I had a message right after that sentence
-su: ulimit: open files: cannot modify limit: Operation not permitted
Second,
$oracle:~database$ ./runInstaller
./runInstaller: line 254: /opt/oracle/database/install/.oui: cannot execute binary file
I cound’t fix that problem. Could you help me to solve that problem?
Thanks
Based on the information given, it seems you do not meet the OS requirements of the Oracle Software. Make sure you adjust the OS to the specs as specified by Oracle (and the installer provides these also).
Second: the permissions for the user who is trying to run the install are off.. Make sure you read up on the minimum requirements prior to install for this user. Or just google it, there are countless of examples out there which provide the correct user environment settings..
Good Luck!
Great!
Works on Ubunt13 also, although complains over twio async libs not existing in apt-get, just leaving those out will do!
I didn’t do the installation on Ubuntu 13 (I skipped this version completly), but thx for letting us know! Awesome!
Oracle should pay you for such a comprehensive installation guide. This has actually promote the use of Oracle on Ubuntu.
Thank you! I appreciate this comment! ;-)
Hi,
GOP, can i use this guide to install 11g R2 on ubuntu 14.04 64bit?
Yes, you certainly can..I did so also ;-)
does it encounter any errors?
or can you write a tutorial on this if possible
Hi GoP
I am trying to install oracle 12.1.0.2.0 on ubuntu 14.10, facing this error
INFO: /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk:1164: recipe for target ‘/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/renamedg’ failed
INFO: make: *** [/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/renamedg] Error 1
INFO: End output from spawned process.
INFO: ———————————-
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target ‘all_no_orcl’ of makefile ‘/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk’. See ‘/u01/app/oraInventory/logs/installActions2014-12-30_08-03-31PM.log’ for details.
Exception Severity: 1
please help me out here, thanks in advance
INFO: Building Client Shared Libraries
INFO: Building Client Shared Libraries
INFO: The output of this make operation is also available at: ‘/home/aman/app/aman/product/12.1.0/dbhome_1/install/make.log’
INFO:
INFO: Start output from spawned process:
INFO: ———————————-
INFO:
INFO: /home/aman/app/aman/product/12.1.0/dbhome_1/bin/genclntsh
INFO: /usr/lib64/libc_nonshared.a: file not recognized: File format not recognized
INFO: collect2: error: ld returned 1 exit status
INFO: genclntsh: Failed to link libclntshcore.so.12.1
INFO: make: *** [client_sharedlib] Error 1
INFO: End output from spawned process.
INFO: ———————————-
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target ‘client_sharedlib’ of makefile ‘/home/aman/app/aman/product/12.1.0/dbhome_1/rdbms/lib/ins_rdbms.mk’. See ‘/home/aman/app/oraInventory/logs/installActions2015-01-15_01-27-46AM.log’ for details.
Exception Severity: 1
It’s a great post, Thank you very much!!!!….
thx!
Sorry for spamming, your reply-parser screwed up my comment, making it unreadable : last attempt :)
Just two… shortcuts to your lengthy informative (and overall great) help:
-All those load lib as needed issues, as oracle fix them in a one liner like
oracle@LeChat:/usr/share/oracle/database$ cat $ORACLE_HOME/rdbms/lib/env_rdbms.mk | sed s#”=\$(LINK) \$(OPT)”#”=\$(LINK) \$(OPT) -Wl,–no-as-needed”#g > /tmp/apa && mv /tmp/apa $ORACLE_HOME/rdbms/lib/env_rdbms.mk
-Linking problems in the lines of
“oracle undefined reference to `kgfocontrol'”
$ ls -lart /usr/bin | grep gcc
You will find it’s linked to some later version than 4.4 (in may case 4.8).
If you have access (you probably do) to the gcc-4.4
$ apt-cache search gcc | grep “4.4”
cpp-4.4 – GNU C preprocessor
gcc-4.4 – GNU C compiler
..
$ cd /usr/bin
$ apt-get install gcc-4.4
$ echo “gcc_used_to_be_linked_to_4.8” > gcc_was_linked.txt
$ rm /usr/bin/gcc
$ ln -s gcc-4.4 gcc
Then stuff started to work.
Again, thanks for your excellent tutorial!
First, in above comment I either did a mistake or it was parsed away, of course the linking flags should be double-dashed:
and nothing else, sorry. But anyway, since I had to perform this operation on 3 laptops, Oracle 12c Enterprise Edition on Ubuntu 14.04s, I made a simple script that will basically do all for you and some more. It can be fetched at
http://nollettnoll.net/oracle/prepareToInstallOracle.sh
The procedure is simple, download the script, chmod +x it, either sudo or be root and run it, simply as
Then fetch the oracle install zips, place them in /tmp, extract them there and then do
Do not change the suggested base and software location! As always, the linking will fail. As it does, simple execute
and your installation should work fine upon retry, tested it at least two and a half times on Ubuntu 14.04 laptops. It also installs a boot script so oracle should be started every time you reboot.
Having issues with starting runinstaller. I did all thing mentioned above for installing Oracle 12c on ubuntu (x86_64). Everything looks good while verification until i start runinstaller, it fails with error as below:
“Source location is incomplete. Make sure you have downloaded and extracted
all the relevant archives”
I dont know what is wrong with my approach. I think there is something missing required for my version of ubuntu.
uname as below: 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
thanks for your help in advance
Hi!
I think it is more likely you have downloaded an incomplete or wrong version of the Oracle Software. Please try to re-download this and mind the 64/32 bit versions. As well make sure you have adequate space to store both the installation and the downloaded (uncompressed and compressed) files.
Good luck!
no luck. did the download again. ran it again. same error.
I am gonna try this time with moving all files to one folder instead of two separate DATABASE folders. lets see it that helps
uhm..yes. It does. You shouldn’t split this up..
I didnt split it up. It was just extracted like that (as database and database (2) folders) I need to merge it, as it seems now.
Pingback: Oracle 12c on Ubuntu 12.04 | XL-UAT
Hi, I just want to thank you for saving my life.
Of course, you are most welcome..Glad you could use the information! ;-)
Pingback: Installing Oracle database 12c on Ubuntu 14.04 - TecHub
Most of the steps documented are applicable for Ubuntu 14. Read the comments for the one or two libs who also bail out..I have Oracle running both on Ubuntu 12 and 14. And Centos..but that is different story.. ;-)
Pingback: Install Oracle 12c on Ubuntu Ec2 instance | sunjialei
Please every think is ok, untill i want to use sqlplus command ! it doesn’t work, console says that the command dont exist !
It seems to me your PATH settings are not including the ORACLE_HOME/bin setting.. Please check!
This is a perfect tutorial. I’ve got it installed on my Ubuntu 12.04. It would be really nice to update with the comments.
You are absolutely right..It’s on my to-do list.. ;-)
That’s really neat.I used it twice to follow along for installtion Oracle 12c on Ubuntu 12.04 -I don’t get all of the linker errors you did which is a goodness but the fixes are the same thruought, naturally. the very first library name error ln -s /usr/lib /usr/lib/lib64 was slightly different for me. my usr/lib64 symlink was broken. I had to fix that. Thanks
oops I mean Ubuntu 14.04
I even got this to work on Ubuntu 15.x ;-) With even less linker errors, but still some..
Reblogged this on Eknaprasath.
Hi, Mr. Gems
First of all, I must say your tutorial was very helpful. Thanks :)
I found a problem, though. I am trying to install in silent mode and manage to fix all but 4 errors. Threre were in ‘/u01/app/oraInventory/logs/silentInstall2015-07-18_11-20-38AM.log:
Error in invoking target ‘all_no_orcl’ of makefile ‘…/rdbms/lib/ins_rdbms.mk’. …
Error in invoking target ‘irman ioracle’ of makefile ‘…/rdbms/lib/ins_rdbms.mk’. …
Error in invoking target ‘utilities’ of makefile ‘…/rdbms/lib/ins_rdbms.mk’. …
Error in invoking target ‘install’ of makefile ‘…/network/lib/ins_net_server.mk’. …
The problem is: running silently, the installation goes on until the end, so I do not have the chance of editing both env_rdbms.mk and ins_rdbms.mk, because they are being rebuildt
So, is it possible to do some relink after “succesful” installation?
I found this weird option in runInstaller:
-relink
For performing relink actions on the oracle home
Usage: -relink -maketargetsxml [-makedepsxml ] [name=value]
Have you already used it? Would it help me to fix my silent installation?
Thanks in advance, and, again, congratulations for your awesome job
Eduardo Morelli
(from Brazil)
I did not attempt to do this with a silent install, although it sounds like fun, and I see the advantages. But I’m fairly sure this would work. two approaches are possible:
1) Apply all the known and found solutions on forehand and run the installer with the “patched” files.
2) Run the silent installer to completion, and re-compile the missed ones. Although this is more risky..
When I find the time, I’ll do some experimentation, Thx for this approach!
Actually, I managed to solve the problem using something similar. As you said, I have applied all the known fixes on forehound. Then, I manually linked broken modules:
cd $ORACLE_HOME/rdbms/lib/
make -f ins_rdbms.mk ioracle
make -f ins_net_server.mk install
The last one was very intersesting. Any attempt to run lsnrctl was simply ignored untli I applied this magical make.
It seems to be allright…
Best regards,
Eduardo Morelli
Hello,
Thanks for the detailed tutorial, but I’m stuck at :
Error in invoking target ‘install’ of makefile ‘../network/lib/ins_net_server.mk’.
and the solution you mentioned is somehow not working, do you have any idea what could work…?
You have to be very precise with the instructions provided, mind the spaces..without the file itself, it can be a myriad of things..
I’ve tried multiple guides, and I thank you in advance for yours and any help you can provide. I am at the step of running the oracle installer (./runInstaller) and I have tried to do so in term and xterm. In xterm I tried setting the display as export DISPLAY=localhost:0.0.
Every time I try and run the installer I get the error that it has failed to check for 256 colors, and if I continue the installer fails to load. I have limited linux experience (obviosuly) and have not found a way to get passed this using your tutorial and several others.
Can you tell me like explaining it to a two year old – what did you use to launch the installer and what steps were required?
Thanks!
you have to run the installer from a GUI, and be able to launch graphical gui’s like ‘xclock’. When you have fixed this, you can run the installer.
Install of 12.1.0.2 successful.
Thanks, You saved my day. I just had to add the KFNDG_LINKLINE mod explained in the comment. Note: creation of script in DBCA is failing if choosen.
Very helpful – installed it on Debian 8 (jessie)
Thanks a lot!
Great tutorial, but I ran into this error during the Oracle Database Configuration Assistant:
“Error while executing “/home/brandon/app/brandon/product/12.1.0/dbhome_1/rdbms/admin/dbmssml.sql”. Refer to “/home/brandon/app/brandon/cfgtoolings/dbca/orcl/dbmssml0.log” for more details. Error in Process: /home/brandon/app/brandon/product/12.1.0/dbhome_1/perl/bin/perl”
I opened dbmssml0.log and it was empty. I came across another thread recommending me to link dbhome_1/perl/bin/perl to the systems default perl file, but this didn’t work either:
cd /u01/app/oracle/product/12.1.0/dbhome_1/perl/bin/
mv perl perl.bak
ln -s /usr/bin/perl
Any suggestions?
I’m installing Oracle 12c on Ubuntu 15.04 by the way.
BOOM! GOT IT! Here’s how I fixed this error: http://laurent-leturgez.com/2015/05/26/oracle-12c-vmware-fusion-and-the-perl-binarys-segmentation-fault/
Thx for sharing this information!
Hi, The tutorial was very helpful. I struggled a bit but managed to get it right at the end. Could you please suggest on the following : After installation I failed to start the database automatically. I have my database named NYN and container database NYNN. Since it failed to start automatically, I managed to start it this way:
$ export ORACLE_HOME=/oracle/base/product/12.1.0.dbhome_1
$ export PATH=$PATH:$ORACLE_HOME/bin
$ export ORACLE_SID=nynn
$ sqlplus / as sysdba
SQL> startup pfile=/oracle/base/admin/nyn/pfile/init.ora.8222015142940
And then it works as expected.
Could you please suggest how can I automate the startup task?
An absolute gem of a post you got there !
Being new to the DBA arena this helped me install Oracle Database 12c and also learned how to debug and resolve future installation issues.
PS: Installed Oracle 12C on Elementary OS ;)
Pingback: Ubuntu:Installing Oracle database 12c on Ubuntu 14.04 – Ubuntu Linux Questions
Great tutorial !!!!
Thx!