Install Oracle 12.1.0.1++ on Fedora 17 – 20


I’m using Fedora 19 on my notebook and tried to install oracle 12.1.0.1 for evaluation purposes. As I tried, I’vh got an error during “Link binaries” step. Maybe the following steps are working on other operating systems too. NOTICE: I’vh tested this workaround on Fedora 20 also -> Success.

UPDATE 22.07.2014: Oracle released 12.1.0.2.0 Patchset for 12.1.0.1.0. With this PatchSet the Installation should work without problems. I’vh tested on Fedora 19/20 and RHEL 7 which worked for me without any issue!

Here the error:

  • Error in invoking target ‘links proc gen_pcscfg procob’ of makefile ‘<ORACLE_HOME>/precomp/lib/ins_precomp.mk
  • INFO: /usr/bin/ld: <ORACLE_HOME>/lib//libnls12.a(lxhlang.o): undefined reference to symbol ‘__tls_get_addr@@GLIBC_2.3’ /usr/bin/ld: note: ‘__tls_get_addr@@GLIBC_2.3’ is defined in DSO /lib64/ld-linux-x86-64.so.2 so try adding it to the linker command line /lib64/ld-linux-x86-64.so.2: could not read symbols: Invalid operation

fedora_error The problem are the link dependencies. To solve this issue: 1. Goto <ORACLE_HOME>/lib/stubs/ take a backup and delete this folder. Here an example:

[bash]$ rm -rf /opt/oracle/app/product/12.1.0/dbhome_3/lib/stubs/

2. Backup and then edit <ORACLE_HOME>/rdbms/lib/env_rdbms.mk: 2.1 Search for “LINKTTLIBS” and change the line from

   176 LINKTTLIBS=$(LLIBCLNTSH) $(ORACLETTLIBS) $(LINKLDLIBS)

to

   176 LINKTTLIBS=$(LLIBCLNTSH) $(ORACLETTLIBS) $(LINKLDLIBS) -lons

2.2 Now search for “LINK=” and change the line from

    279 LINK=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS) $(COMPSOBJS)
    280 LINK32=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS32) $(COMPSOBJS)

to

    279 LINK=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS) $(COMPSOBJS) -Wl,--no-as-needed
    280 LINK32=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS32) $(COMPSOBJS) -Wl,--no-as-needed

2.3 Last but not least, search for “TG4PWD_LINKLINE” and change the line from

   3041 TG4PWD_LINKLINE= $(LINK) $(OPT) $(TG4PWDMAI) \
   3042         $(LLIBTHREAD) $(LLIBCLNTSH) $(LINKLDLIBS)

to

   3041 TG4PWD_LINKLINE= $(LINK) $(OPT) $(TG4PWDMAI) \
   3042         $(LLIBTHREAD) $(LLIBCLNTSH) $(LINKLDLIBS) -lnnz12

The line number changes in future releases to

3126 TG4PWD_LINKLINE= $(LINK) $(OPT) $(TG4PWDMAI) \
3127         $(LLIBTHREAD) $(LLIBCLNTSH) $(LINKLDLIBS) -lnnz12

3. Return back to installer an click “retry”. The installation should complete without errors now. 4. After installed successfully you have to start relinking process again, because some executables are missing now. Therefor change current folder to <ORACLE_HOME>\bin:

[bash]$ /opt/oracle/app/product/12.1.0/dbhome_3/bin
[bash]$ ls -l | wc -l
239
[bash]$ ./relink all
writing relink log to: /opt/oracle/app/product/12.1.0/dbhome_3/install/relink.log
[bash]$ grep -i err /opt/oracle/app/product/12.1.0/dbhome_3/install/relink.log
[bash]$ ls -l | wc -l
240

If you want to setup Oracle Grid Infrastructure 12c (see here)

UPDATE 22.04.2014:

In future Patchsets you may get the following error: fedora20_12102 In the logfile you will see the following error

INFO: /opt/oracle/product/12.1.0.2/dbhome_1/bin/orald -o ctxhx -m64 -z noexecstack -Wl,--disable-new-dtags -L/opt/oracle/product/12.1.0.2/dbhome_1/ctx/lib/ -L/opt/oracle/product/12.1.0.2/dbhome_1/lib/ -L/opt/oracle/product/12.1.0.2/dbhome_1/lib/stubs/  /opt/oracle/product/12.1.0.2/dbhome_1/ctx/lib/ctxhx.o -Wl,--unresolved-symbols=ignore-in-shared-libs -L/opt/oracle/product/12.1.0.2/dbhome_1/ctx/lib/ -lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut -lsc_ch -lsc_fi -lsc_fmt -lsc_ind -lwv_core -lsc_lo -lsc_fut -lsc_anno 
INFO: -lz -lctxhx -Wl,-L/opt/oracle/product/12.1.0.2/dbhome_1/ctx/lib -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12  `cat /opt/oracle/product/12.1.0.2/dbhome_1/lib/sysliblist` `cat /opt/oracle/product/12.1.0.2/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /opt/oracle/product/12.1.0.2/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnnz12 -lzt12 -lztkg12 -Wl,-rpath,'/opt/oracle/
INFO: product/12.1.0.2/dbhome_1/lib:/opt/oracle/product/12.1.0.2/dbhome_1/ctx/lib'

INFO: /usr/bin/ld: /opt/oracle/product/12.1.0.2/dbhome_1/lib//libcore12.a(sslss.o): undefined reference to symbol '__tls_get_addr@@GLIBC_2.3'
/usr/bin/ld: note: '__tls_get_addr@@GLIBC_2.3' is defined in DSO /lib64/ld-linux-x86-64.so.2 so try adding it to the linker command line
/lib64/ld-linux-x86-64.so.2: could not read symbols: Invalid operation

INFO: collect2: error: ld returned 1 exit status

INFO: make: *** [ctxhx] 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 '/opt/oracle/product/12.1.0.2/dbhome_1/ctx/lib/ins_ctx.mk'. See '/opt/oracle/oraInventory/logs/installActions2014-04-22_04-37-48PM.log' for details.
Exception Severity: 1

Therefore you have to change the following: 1. Do step 1 from top of this article and delete the stubs folder 2. Open file $ORACLE_HOME/ctx/lib/env_ctx.mk and change from

 153 PURECMDS=$(PURELINK) $(PURIFY) $(PURECOV) $(QUANTIFY)
 154 LINK=$(LDCCOM)
 155 LINKCC=$(LDCCOMCC)

to

 153 PURECMDS=$(PURELINK) $(PURIFY) $(PURECOV) $(QUANTIFY)
 154 LINK=$(LDCCOM) --Wl,--no-as-needed
 155 LINKCC=$(LDCCOMCC)

3. Retry relink

16 thoughts on “Install Oracle 12.1.0.1++ on Fedora 17 – 20

  1. to be honest and precise, i dont have words to express how thankfull i am to you.

    just coz’ of u iam running oracle 12c on fedora 19.

    Once again thanks a ton raised to power infinity 🙂

  2. I tried installing oracle 12c on fedora 19 but installer is looking for compat-libcap1. When I do a yum install compat-libcap1 or yum search compat-libcap1 it return this message “Warning: No matches found for: compat-libcap1”

    Thanks in advance for any help

    • Hi Andrei,
      normally the installer should ask you at the end of “Step 2”:

      “[INS-13001] Evironment does not meet minimum requirements. Are you sure you want to continue?” –> YES
      Fedora 12c Installation

      Then the installer should Skip “Step 10: Prerequisite Check”. I’m not able to reproduce your error in my environment. So please provide some info, what you have done before?

      Please install all packages, as far as possible, what are defined for RHEL/OEL 6
      binutils-2.23.52.0.1-9.fc19.x86_64
      compat-libstdc++-33-3.2.3-68.7.i686
      compat-libstdc++-33-3.2.3-68.7.x86_64
      gcc-4.8.1-1.fc19.x86_64
      gcc-c++-4.8.1-1.fc19.x86_64
      libgcc-4.8.1-1.fc19.i686
      libgcc-4.8.1-1.fc19.x86_64
      glibc-2.17-14.fc19.i686
      glibc-2.17-14.fc19.x86_64
      glibc-devel-2.17-14.fc19.i686
      glibc-devel-2.17-14.fc19.x86_64
      glibc-common-2.17-14.fc19.x86_64
      ksh-20120801-8.fc19.x86_64
      libstdc++-4.8.1-1.fc19.i686
      libstdc++-4.8.1-1.fc19.x86_64
      libstdc++-devel-4.8.1-1.fc19.i686
      libstdc++-devel-4.8.1-1.fc19.x86_64
      libaio-0.3.109-7.fc19.i686
      libaio-0.3.109-7.fc19.x86_64
      libaio-devel-0.3.109-7.fc19.i686
      libaio-devel-0.3.109-7.fc19.x86_64
      libXext-1.3.2-1.fc19.i686
      libXext-1.3.2-1.fc19.x86_64
      libXau-1.0.8-1.fc19.i686
      libXau-1.0.8-1.fc19.x86_64
      libxcb-1.9-3.fc19.i686
      libxcb-1.9-3.fc19.x86_64
      libXi-1.7.2-1.fc19.i686
      libXi-1.7.2-1.fc19.x86_64
      make-3.82-18.fc19.x86_64
      sysstat-10.1.5-1.fc19.x86_64
      libcap-2.22-6.fc19.i686
      libcap-2.22-6.fc19.x86_64

      –> compat-libcap1-1.10-1 (x86_64) doesn’t exists –> replaced by libcap-2.22
      libcap.so.1 is only used by GNSD. GNSD is part of the Grid Infrastructure Components. Oracle Grid Naming Service Daemon and should never be used by Database single installation.

      To correct the missing link do the following:

      [bash$ ~]$ cd §ORACLE_HOME/bin
      [bash$ bin]$ ldd gnsd
      linux-vdso.so.1 => (0x00007fff7f1fe000)
      libgns12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libgns12.so (0x00007f2078609000)
      libhasgen12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libhasgen12.so (0x00007f2077745000)
      libocr12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libocr12.so (0x00007f2077450000)
      libocrb12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libocrb12.so (0x00007f2077175000)
      libocrutl12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libocrutl12.so (0x00007f2076f64000)
      libclntsh.so.12.1 => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libclntsh.so.12.1 (0x00007f2074275000)
      libclntshcore.so.12.1 => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libclntshcore.so.12.1 (0x00007f2073d25000)
      libskgxn2.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libskgxn2.so (0x00007f2073b22000)
      libdl.so.2 => /lib64/libdl.so.2 (0x00000031ada00000)
      libm.so.6 => /lib64/libm.so.6 (0x00000031ae200000)
      libpthread.so.0 => /lib64/libpthread.so.0 (0x00000031ade00000)
      libnsl.so.1 => /lib64/libnsl.so.1 (0x00000031c7800000)
      librt.so.1 => /lib64/librt.so.1 (0x00000031aee00000)
      libasmclntsh12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libasmclntsh12.so (0x00007f20737c7000)
      libcell12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libcell12.so (0x00007f207352b000)
      libskgxp12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libskgxp12.so (0x00007f2073230000)
      libnnz12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libnnz12.so (0x00007f2072b19000)
      libcap.so.1 => not found
      libc.so.6 => /lib64/libc.so.6 (0x00000031ad600000)
      libcap.so.1 => not found
      libons.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libons.so (0x00007f20728d4000)
      /lib64/ld-linux-x86-64.so.2 (0x00000031ad200000)
      libaio.so.1 => /lib64/libaio.so.1 (0x00007f20726d1000)
      [bash$ bin]$ sudo ln -s /usr/lib/libcap.so.2 /usr/lib/libcap.so.1
      [bash$ bin]$ sudo ln -s /usr/lib64/libcap.so.2 /usr/lib64/libcap.so.1
      [bash$ bin]$ ldd gnsd
      linux-vdso.so.1 => (0x00007fffa53fe000)
      libgns12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libgns12.so (0x00007fd4e1240000)
      libhasgen12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libhasgen12.so (0x00007fd4e037c000)
      libocr12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libocr12.so (0x00007fd4e0087000)
      libocrb12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libocrb12.so (0x00007fd4dfdac000)
      libocrutl12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libocrutl12.so (0x00007fd4dfb9b000)
      libclntsh.so.12.1 => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libclntsh.so.12.1 (0x00007fd4dceac000)
      libclntshcore.so.12.1 => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libclntshcore.so.12.1 (0x00007fd4dc95c000)
      libskgxn2.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libskgxn2.so (0x00007fd4dc759000)
      libdl.so.2 => /lib64/libdl.so.2 (0x00000031ada00000)
      libm.so.6 => /lib64/libm.so.6 (0x00000031ae200000)
      libpthread.so.0 => /lib64/libpthread.so.0 (0x00000031ade00000)
      libnsl.so.1 => /lib64/libnsl.so.1 (0x00000031c7800000)
      librt.so.1 => /lib64/librt.so.1 (0x00000031aee00000)
      libasmclntsh12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libasmclntsh12.so (0x00007fd4dc3fe000)
      libcell12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libcell12.so (0x00007fd4dc162000)
      libskgxp12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libskgxp12.so (0x00007fd4dbe67000)
      libnnz12.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libnnz12.so (0x00007fd4db750000)
      libcap.so.1 => /lib64/libcap.so.1 (0x00000031c5e00000)
      libc.so.6 => /lib64/libc.so.6 (0x00000031ad600000)
      libons.so => /opt/oracle/app/product/12.1.0/dbhome_1/lib/libons.so (0x00007fd4db50b000)
      /lib64/ld-linux-x86-64.so.2 (0x00000031ad200000)
      libaio.so.1 => /lib64/libaio.so.1 (0x00007fd4db309000)
      libattr.so.1 => /lib64/libattr.so.1 (0x00000031be800000)

      Further I’m going to decribe in an other article how to install a Oracle Cluster on 12c base.

      I hope this will help

      Rgds,
      Daniel/Gumpx

      • Thanks so much for your help. Yes, I did as you said and answered to “Are you sure you want to continue?” and it installed successfully. Thanks!

      • Sorry for the typo below. Here is what I meant to say:

        Thanks so much for your help. Yes, I did as you said and answered “Yes” to “Are you sure you want to continue?” and it installed successfully. Thanks!

  3. Great write up! Curious if you have had any success trying to deploy Oracle Grid Infrastructure 12c on Fedora 17-20? Same relinking issue appears which can be fixed via the writeup you have here, but cannot get the root.sh to work. I believe it might have something to do with having to relink everything again but no luck on my end. Anyway I was just curious if you solved this 🙂 Thanks again for posting this article.

    Regards,

    Roger

    • Hi, thank you for your information, may you provide a little bit more information about your system configuration?

      Rgds,
      Daniel

  4. Linking without stubs is not a good idea. Please report this issue to Oracle and ask them to fix it. The stubs are there to avoid API breakage.

    • Hi Coward,
      stubs are objects for speed and complexity during build. We don’t want to use the stubs because the mappings are not usable for our goals. We are going to link against the real libraries. For applications the oracle database home software should not be used, if you need the stubs you can save it bevor the linking … Further this article is written for fedora or such os that is NOT supported by oracle to give people a change to work with.

      Rgds,
      Daniel

  5. I am trialling oracle 12c installation on the Oracle Linux R7 Beta version and this article nailed the installation issue I experienced. This article is well written, the steps taken are nicely resented. There’s no doubt I would not have succeeded without this article. Nice one, well done!

  6. Ran into this issue during an installation of Oracle Grid Infrastructure 12.1.0.2 on OUL 7. This article saved me a lot of time…..very nice explanation 🙂 Performed the changes and the installer continued.
    I will create an SR with Oracle nevertheless because I would like to now what the exact impact is of these changes.
    Rgds,
    Filip.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s