How to install Oracle 11g? [duplicate]
The title itself is more than self explanatory. I simply need a way to install Oracle's 11g R2 in the latest version of Ubuntu, I'm using a 32-bit OS, and I need to know how to install the x86 version. I also have a 64 bit desktop and I need the install the x86_64 version. Can anyone help me?
Solution 1:
For Oracle 11g R2, there are some extras that should be installed because they aren't provided by default. But we'll get to those in a second, and a lot of them aren't fully necessary but they'll make it easier. (Such as ssh!)
NOTE: All terminal commands can be copied and pasted however pasting in terminal requires the keystroke ctrl + shift + v, anywhere else ctrl + v can be used instead.
Now here are the files, separating into two parts and in .zip format. This is for x86. You should be able to open them without issue and if you don't there is an unzip utility on the site. The unzip utility download wouldn't load on my end so an alternate would be to open terminal using ctrl + alt + t, and enter the following commands.
sudo apt-get install unzip
Then:
unzip {file}
Of course replacing {File} with the .zip archive.
NOW you can follow the install instructions by Oracle linked here when installing the x86 version for the laptop.
Now when using the desktop and the x86_64 OS, you can find the installation files here applying the same unzip method as above. Honestly you shouldn't have a problem with the Ubuntu default, but again, Linux isn't always what it seems, so having a backup is always good.
Now for a quick an easy installation guide, this is x86.
The same installation guide is available for x86_64 found here.
The process isn't too long as long as you know your current computer specs, a lot of the instructions are mainly forced check if your system meets x requirment.
Enjoy!
Solution 2:
I got past your error. Best I can tell, the error was that it was hitting -lons instead of -leons. I have no idea what either of them are but removing -lons and putting in -leons seemed to do the trick. What I ended up doing was compiling the error-ed out parts by hand. Here's what I did by hand but you'll have to change the paths to match yours (I did it as root):
# cat sysliblist
-ldl -lm -lpthread -lnsl -lirc -lipgo -lsvml -lnnz11 -lclntsh -locrb11 -lasmclnt11 -leons
# cat ldflags
-lnbeq11 -lnhost11 -lnus11 -lnldap11 -lldapclnt11 -lnsslb11 -lntcp11 -lntcps11 -lnsslb11 -lntcp11 -lntns11
gcc -o tnslsnr -m64 -L/database/app/oracle/product/11.2.0/dbhome_1/network/lib/ -L/database/app/oracle/product/11.2.0/dbhome_1/lib/ -L/database/app/oracle/product/11.2.0/dbhome_1/lib/stubs/ /database/app/oracle/product/11.2.0/dbhome_1/network/lib/s0nsgl.o /database/app/oracle/product/11.2.0/dbhome_1/network/lib/snsglp.o -lclntsh `cat /database/app/oracle/product/11.2.0/dbhome_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /database/app/oracle/product/11.2.0/dbhome_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lztkg11 -lztkg11 -lclient11 -lnnetd11 -lvsn11 -lcommon11 -lgeneric11 -lmm -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `cat /database/app/oracle/product/11.2.0/dbhome_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /database/app/oracle/product/11.2.0/dbhome_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lclient11 -lnnetd11 -lvsn11 -lcommon11 -lgeneric11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lclient11 -lnnetd11 -lvsn11 -lcommon11 -lgeneric11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `cat /database/app/oracle/product/11.2.0/dbhome_1/lib/sysliblist` -Wl,-rpath,/database/app/oracle/product/11.2.0/dbhome_1/lib,-rpath,/database/app/oracle/product/11.2.0/dbhome_1/network/lib/ -lm `cat /database/app/oracle/product/11.2.0/dbhome_1/lib/sysliblist` -ldl -lm -L/database/app/oracle/product/11.2.0/dbhome_1/lib -lnl11 -ln11 -lnlsnr11 -lnlsnrc11 -lnsgr11 -lnms -lncm11 -lnmsp -lpeer -lnro11 -ln11 -lnl11 -lnlsnr11 -lnlsnrc11 -lnms -lncm11 -lnmsp -ln11 -lm -leons
Once that compiles properly, you have to edit the makefile to avoid it trying to recompile it and breaking what you just built. Make network/lib/ins_net_server.mk look like this:
#tnslsnr: $(S0NSGL) $(SNSGLP) $(NSGLPNP)
# $(SILENT)$(ECHO) " - Linking $(TNSLSNR)"
# $(RMF) $@
# $(TNSLSNR_LINKLINE)
#itnslsnr: tnslsnr
itnslsnr:
That's just going to get rid of the tnslsnr piece but allow the rest to go.
The next piece I got to that broke was when it was linking 'oracle'. I got this error:
INFO: /database/app/oracle/product/11.2.0/dbhome_1/lib//libocrutl11.so: undefined reference to `lfifcp'
Same thing with this one. I ran this by hand:
gcc -o /database/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/oracle -m64 -L/database/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ -L/database/app/oracle/product/11.2.0/dbhome_1/lib/ -L/database/app/oracle/product/11.2.0/dbhome_1/lib/stubs/ -Wl,-E /database/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/opimai.o /database/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ssoraed.o /database/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ttcsoi.o -Wl,--whole-archive -lperfsrv11 -Wl,--no-whole-archive /database/app/oracle/product/11.2.0/dbhome_1/lib/nautab.o /database/app/oracle/product/11.2.0/dbhome_1/lib/naeet.o /database/app/oracle/product/11.2.0/dbhome_1/lib/naect.o /database/app/oracle/product/11.2.0/dbhome_1/lib/naedhs.o /database/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/config.o -lclntsh -lserver11 -lodm11 -lcell11 -lnnet11 -lskgxp11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lclient11 -lvsn11 -lcommon11 -lgeneric11 -lknlopt `if /usr/bin/ar tv /database/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/libknlopt.a | grep xsyeolap.o > /dev/null 2>&1 ; then echo "-loraolap11" ; fi` -lslax11 -lpls11 -lrt -lplp11 -lserver11 -lclient11 -lvsn11 -lcommon11 -lgeneric11 `if [ -f /database/app/oracle/product/11.2.0/dbhome_1/lib/libavserver11.a ] ; then echo "-lavserver11" ; else echo "-lavstub11"; fi` `if [ -f /database/app/oracle/product/11.2.0/dbhome_1/lib/libavclient11.a ] ; then echo "-lavclient11" ; fi` -lknlopt -lslax11 -lpls11 -lrt -lplp11 -ljavavm11 -lserver11 -lwwg `cat /database/app/oracle/product/11.2.0/dbhome_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /database/app/oracle/product/11.2.0/dbhome_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lztkg11 -lmm -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lztkg11 `cat /database/app/oracle/product/11.2.0/dbhome_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /database/app/oracle/product/11.2.0/dbhome_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lztkg11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `if /usr/bin/ar tv /database/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/libknlopt.a | grep "kxmnsd.o" > /dev/null 2>&1 ; then echo " " ; else echo "-lordsdo11"; fi` -L/database/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ -lctxc11 -lctx11 -lzx11 -lgx11 -lctx11 -lzx11 -lgx11 -lordimt11 -lclsra11 -ldbcfg11 -lhasgen11 -lskgxn2 -lnnz11 -lzt11 -lxml11 -locr11 -locrb11 -locrutl11 -lhasgen11 -lskgxn2 -lnnz11 -lzt11 -lxml11 -lasmclnt11 -lcommon11 -lcell11 -lskgxp11 -lgeneric11 -lcommon11 -lgeneric11 -loraz -llzopro -lorabz2 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lsnls11 -lunls11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lasmclnt11 -laio `cat /database/app/oracle/product/11.2.0/dbhome_1/lib/sysliblist` -Wl,-rpath,/database/app/oracle/product/11.2.0/dbhome_1/lib -lm `cat /database/app/oracle/product/11.2.0/dbhome_1/lib/sysliblist` -ldl -lm -L/database/app/oracle/product/11.2.0/dbhome_1/lib
Then you have to hack up rdbms/lib/ins_rdbms.mk to comment out lines 705 & 706:
# $(RMF) $@
# $(ORACLE_LINKLINE)
After that, the installer went all the way through. Hope this helps.
Solution 3:
Add some additional tips from How to install Oracle 11g on Linux (non-VM)
Install Oracle Database XE (Express Edition) from Oracle Open Source Software APT repository
If you don't mind using 10g XE version (good enough for learning purpose), you can add the Oracle Open Source Software APT repository and use apt-get
to install it.
Add deb http://oss.oracle.com/debian unstable main non-free
e.g.
echo "deb http://oss.oracle.com/debian unstable main non-free" | sudo tee /etc/apt/sources.list.d/virtualbox.list
and then
add the key and install oracle-xe
wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -
apt-get update && apt-get install oracle-xe
Start, stop and configure: /etc/init.d/oracle-xe {start|stop|configure}
See Installing Oracle Database XE on Debian, Ubuntu, and Kubuntu for more;-)
Vagrant Base Boxes
Oracle Linux {5,6} (which is free as well) make it much easier to install Oracle Database 11g, 12c as Oracle officially provides pre-install RPM packages to install all deps and make necessary changes to the system.
Pre-install RPM packages
- Oracle Linux 5 =>
oracle-validated
- Oracle Linux 6 => 11g
oracle-rdbms-server-11gR2-preinstall
12coracle-rdbms-server-12cR1-preinstall
If you really want Oracle Database 11g, 12c Enterprise Edition, try the vagrantboxes from here vagrantboxes