FreeBSD 使用手册
上一页 | 第11章 　Linux二进制兼容模式 | 下一页

# 11.6 安装Oracle®

Contributed by Marcel Moolenaar.

## 11.6.1 前言

这节描述在FreeBSD上安装Linux版的Oracle® 8.0.5和Oracle 8.0.5.1 Enterprise Edition。

## 11.6.2 安装Linux环境

确信您已经从 Ports Collection 安装了 `emulators/linux_base` 和 `devel/linux_devtools`。 如果在使用这些 port 时遇到困难， 您可能就不得不从 package， 或使用较早版本的 Ports Collection 来安装。

如果要运行智能代理， 您还需要安装 Red Hat Tcl 软件包： `tcl-8.0.3-20.i386.rpm`。 用于安装官方的 RPM (`archivers/rpm`) 软件包的命令是：

    # rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm package

`包`的安装通常不会出错。

## 11.6.3 创建Oracle环境

安装Oracle之前，您需要设置正确的环境。 这节只描述了在FreeBSD下安装Linux版本Oracle需要特别注意的地方。 不像在Oracle安装指南中所描述的那样。

### 11.6.3.1 调整内核

正如Oracle安装指南描述的那样，您需要设置共享内存的最大值。 不要在FreeBSD下使用`SHMMAX`，`SHMMAX` 只是用来计算`SHMMAXPGS`和`PGSIZE`的。 因此要使用`SHMMAXPGS`。所有其他要使用的选项可以参考指南，例如：

    options SHMMAXPGS=10000
    options SHMMNI=100
    options SHMSEG=10
    options SEMMNS=200
    options SEMMNI=70
    options SEMMSL=61

设置这些选项来适应 Oracle的使用。

当然，确信您的内核配置文件中有下面这些选项：

    options SYSVSHM #SysV shared memory
    options SYSVSEM #SysV semaphores
    options SYSVMSG #SysV interprocess communication

### 11.6.3.2 Oracle帐号

创建一个`oracle`帐号，正如您创建其他帐号一样。 `oracle` 帐号特殊的地方是您需要给它一个Linux shell。 添加`/compat/linux/bin/bash`到`/etc/shells`， 然后设置`oracle`帐号的shell为`/compat/linux/bin/bash`。

### 11.6.3.3 环境

除了普通的Oracle变量外， 比如`ORACLE_HOME`和`ORACLE_SID`，您还必须设置下面的环境变量：

变量 | 值
--- | ---
`LD_LIBRARY_PATH` | `$ORACLE_HOME/lib`
`CLASSPATH` | `$ORACLE_HOME/jdbc/lib/classes111.zip`
`PATH` | `/compat/linux/bin /compat/linux/sbin /compat/linux/usr/bin /compat/linux/usr/sbin /bin /sbin /usr/bin /usr/sbin /usr/local/bin $ORACLE_HOME/bin`

建议在`.profile`里面设置所有的环境变量。一个完整的例子是：

    ORACLE_BASE=/oracle; export ORACLE_BASE
    ORACLE_HOME=/oracle; export ORACLE_HOME
    LD_LIBRARY_PATH=$ORACLE_HOME/lib
    export LD_LIBRARY_PATH
    ORACLE_SID=ORCL; export ORACLE_SID
    ORACLE_TERM=386x; export ORACLE_TERM
    CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
    export CLASSPATH
    PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin
    PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
    PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin
    export PATH

## 11.6.4 安装Oracle

由于 Linux 模拟器的一处小小的差异， 您必须在 `/var/tmp` 中创建一个名为 `.oracle` 的目录才能够启动安装程序。 需要把它设置为属于 `oracle` 用户。 接下来， 您就可以毫无问题地安装 Oracle 了。 如果您遇到问题， 请首先检查 Oracle 软件包和/或配置文件！安装完 Oracle 之后， 使用下面两节中所说的补丁。

一个比较常见的问题是 TCP 协议适配器安装不正确。 其结果是将无法进行任何的 TCP 侦听。 下面的操作将帮助解决此问题：

    # cd $ORACLE_HOME/network/lib
    # make -f ins_network.mk ntcontab.o
    # cd $ORACLE_HOME/lib
    # ar r libnetwork.a ntcontab.o
    # cd $ORACLE_HOME/network/lib
    # make -f ins_network.mk install

不要忘记了再运行一下`root.sh`！

### 11.6.4.1 修补root.sh

从CD安装Oracle时，一些工作需要在`root`下执行， 这些工作都被记录在一个叫`root.sh`的脚本里面。这个脚本被写在`orainst`目录。 为了使用`root.sh`来正确定位`chown`或在Linux本地shell下执行脚本， 应该对它进行修补。

    *** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
    --- orainst/root.sh Mon Dec 28 15:58:53 1998
    ***************
    *** 31,37 ****
    # This is the default value for CHOWN
    # It will redefined later in this script for those ports
    # which have it conditionally defined in ss_install.h
    ! CHOWN=/bin/chown
    #
    # Define variables to be used in this script
    --- 31,37 ----
    # This is the default value for CHOWN
    # It will redefined later in this script for those ports
    # which have it conditionally defined in ss_install.h
    ! CHOWN=/usr/sbin/chown
    #
    # Define variables to be used in this script

当您不从CD安装Oracle时， 您可以从源代码来修补`root.sh`。 它叫做`rthd.sh`，定位在源代码树的`orainst`目录。

### 11.6.4.2 修补genclntsh

`genclntsh`脚本用来创建一个简单的共享客户端库。在建立demos时被使用。 完成补丁后就注释掉了下面的`PATH`变量：

    *** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
    --- bin/genclntsh Tue Dec 22 15:36:49 1998
    ***************
    *** 32,38 ****
    #
    # Explicit path to ensure that we're using the correct commands
    #PATH=/usr/bin:/usr/ccs/bin export PATH
    ! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
    #
    # each product MUST provide a $PRODUCT/admin/shrept.lst
    --- 32,38 ----
    #
    # Explicit path to ensure that we're using the correct commands
    #PATH=/usr/bin:/usr/ccs/bin export PATH
    ! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
    #
    # each product MUST provide a $PRODUCT/admin/shrept.lst

## 11.6.5 运行Oracle

如果您已经按上面的指示去操作，您应该可以像在Linux下运行Oracle了。

上一页 | 起始页 | 下一页
安装MATLAB® | 上一级 | 高级主题

本文档和其它文档可从这里下载：ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读文档，如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.