Руководство FreeBSD
Пред. | Глава 10. Двоичная совместимость с Linux | След.

# 10.6. Установка Oracle®

Предоставил Marcel Moolenaar.

## 10.6.1. Введение

Ниже описан процесс установки Oracle® 8.0.5 и Oracle 8.0.5.1 Enterprise Edition для Linux на систему FreeBSD.

## 10.6.2. Установка Linux-среды

Удостоверьтесь, что порты `emulators/linux_base` и `devel/linux_devtools` установлены на вашей системе. Если у вас возникнут трудности с этими портами, воспользуйтесь пакетами или более ранними их версиями из Коллекции Портов.

Если вы хотите использовать интеллектуальный агент (intelligent agent), придется также установить пакет TCL от Red Hat: `tcl-8.0.3-20.i386.rpm`. Универсальная команда для установки пакетов с помощью официального порта RPM (`archivers/rpm`):

    # rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm пакет

Установка этого `пакета` должна пройти без каких-либо ошибок.

## 10.6.3. Создание среды Oracle

Прежде чем вы сможете установить Oracle, необходимо настроить соответствующую среду. В этом документе описано, что специально нужно сделать, чтобы запустить Oracle для Linux под FreeBSD - это не пересказ официального руководства по установке Oracle.

### 10.6.3.1. Настройка ядра

Как описано в руководстве по установке Oracle, необходимо установить максимальный размер совместно используемой (shared) памяти. Не используйте `SHMMAX` под FreeBSD. `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
    options SYSVSEM # семафоры SysV
    options SYSVMSG # межпроцессное взаимодействие SysV

### 10.6.3.2. Учетная запись Oracle

Создайте специальную учетную запись `oracle`, как и любую другую учетную запись. Единственное отличие в том, что для `oracle` необходимо указать командный интерпретатор Linux. Добавьте `/compat/linux/bin/bash` в `/etc/shells` и установите для `oracle` командный интерпретатор `/compat/linux/bin/bash`.

### 10.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

## 10.6.4. Установка Oracle

Из-за небольшой несовместимости с Linux-эмулятором, вам нужно будет создать подкаталог `.oracle` в каталоге `/var/tmp` прежде, чем можно будет начать установку. Сделайте ее владельцем пользователя `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`!

### 10.6.4.1. Изменение root.sh

При установке Oracle необходимо выполнить некоторые действия от имени пользователя `root`. Они записаны в скрипте командного интерпретатора `root.sh`, который находится в каталоге `orainst`. Перед запуском, примените к нему следующий патч (исправляет местонахождение утилиты chown), либо запускайте его в командном интерпретаторе Linux.

    *** 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

Если вы устанавливаете Oracle не с компакт-диска, можно изменить исходный файл `root.sh`. Он называется `rthd.sh` и находится в каталоге `orainst`.

### 10.6.4.2. Изменение genclntsh

Скрипт `genclntsh` используется для того, чтобы создать единую совместно используемую клиентскую библиотеку, которая используется для создания демонстраций. Примените следующий патч, чтобы закомментировать определение переменной `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

## 10.6.5. Запуск Oracle

Теперь, если вы все сделали правильно, то можете использовать Oracle так же, как и в системе Linux.

Пред. | Начало | След.
Установка MATLAB® | Уровень выше | Установка SAP® R/3®

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.