标题本身就不言自明。我只是需要一种方法来在最新版本的 Ubuntu 中安装 Oracle 11g R2,我使用的是 32 位操作系统,我需要知道如何安装 x86 版本。我还有一个 64 位桌面,我需要安装 x86_64 版本。有人能帮我吗?
答案1
对于 Oracle 11g R2,有一些额外的程序需要安装,因为它们不是默认提供的。但我们马上就会讲到这些程序,其中很多程序并不是完全必要的,但它们会让安装过程变得更容易。(比如 ssh!)
注意:所有终端命令都可以复制和粘贴,但在终端中粘贴需要按下 ctrl + shift + v,在其他地方可以使用 ctrl + v。
现在这里是文件,分为两部分,采用 .zip 格式。这是针对 x86 的。您应该能够毫无问题地打开它们,如果没有,网站上有一个解压缩实用程序。解压缩实用程序下载无法在我这边加载,因此另一种方法是使用Ctrl + Alt + T,然后输入以下命令。
sudo apt-get install unzip
然后:
unzip {file}
当然,用 .zip 档案替换 {File}。
现在你可以按照 Oracle 链接的安装说明进行操作这里为笔记本电脑安装 x86 版本时。
现在,使用桌面和 x86_64 操作系统时,您可以找到安装文件这里应用与上述相同的解压缩方法。老实说,Ubuntu 默认设置不会有问题,但 Linux 并不总是像看上去的那样,所以备份总是好的。
现在为您提供快速简便的安装指南,这是 x86。
相同的安装指南适用于 x86_64在此处找到。
只要你知道你目前的电脑规格,这个过程就不会太长,很多指令主要是强制检查你的系统是否满足X要求。
享受!
答案2
我解决了您的错误。据我所知,错误是它击中了 -lons 而不是 -leons。我不知道它们是什么,但删除 -lons 并输入 -leons 似乎可以解决问题。我最终做的是手动编译出错的部分。这是我手动执行的操作,但您必须更改路径以匹配您的路径(我以 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
一旦正确编译,您必须编辑 makefile 以避免它尝试重新编译并破坏您刚刚构建的内容。使 network/lib/ins_net_server.mk 看起来像这样:
#tnslsnr: $(S0NSGL) $(SNSGLP) $(NSGLPNP)
# $(SILENT)$(ECHO) " - Linking $(TNSLSNR)"
# $(RMF) $@
# $(TNSLSNR_LINKLINE)
#itnslsnr: tnslsnr
itnslsnr:
这只是要删除 tnslsnr 部分但允许其余部分继续存在。
我遇到的下一个问题出现在链接“oracle”时。我收到以下错误:
INFO: /database/app/oracle/product/11.2.0/dbhome_1/lib//libocrutl11.so: undefined reference to `lfifcp'
这个也是一样。我手动运行了它:
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
然后你必须破解 rdbms/lib/ins_rdbms.mk 来注释掉第 705 行和第 706 行:
# $(RMF) $@
# $(ORACLE_LINKLINE)
此后,安装程序全部完成。希望这能有所帮助。
答案3
添加一些额外的提示如何在 Linux(非 VM)上安装 Oracle 11g
从 Oracle 开源软件 APT 信息库安装 Oracle Database XE(快捷版)
如果您不介意使用 10g XE 版本(对于学习目的来说已经足够好),您可以添加 Oracle 开源软件 APT 存储库并使用apt-get
它进行安装。
添加deb http://oss.oracle.com/debian unstable main non-free
例如
echo "deb http://oss.oracle.com/debian unstable main non-free" | sudo tee /etc/apt/sources.list.d/virtualbox.list
进而
添加密钥并安装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
启动、停止和配置:/etc/init.d/oracle-xe {start|stop|configure}
看在 Debian、Ubuntu 和 Kubuntu 上安装 Oracle Database XE了解更多;-)
Vagrant 基础盒
Oracle Linux {5,6}(也是免费的)使安装 Oracle Database 11g、12c 变得更加容易,因为 Oracle 官方提供了预安装 RPM 包来安装所有依赖项并对系统进行必要的更改。
预安装 RPM 包
- Oracle Linux 5 =>
oracle-validated
- Oracle Linux 6 => 11g
oracle-rdbms-server-11gR2-preinstall
12coracle-rdbms-server-12cR1-preinstall
如果你真的想要 Oracle Database 11g、12c 企业版,可以尝试这里的 vagrantboxesvagrantboxes