如何安装 Oracle 11g R2?

如何安装 Oracle 11g R2?

标题本身就不言自明。我只是需要一种方法来在最新版本的 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-preinstall12coracle-rdbms-server-12cR1-preinstall

如果你真的想要 Oracle Database 11g、12c 企业版,可以尝试这里的 vagrantboxesvagrantboxes

相关内容