JimMockРеструктурировал и частично обновил Brian N.HandyПервоначально предоставил RichMurpheyАлексейДокучаевПеревод на русский язык: ВалерийКравчукПеревод на русский язык и редактирование: Двоичная совместимость с LinuxКраткий обзорLinux - бинарная совместимостьдвоичная совместимостьLinuxFreeBSD предоставляет двоичную совместимость с несколькими другими
&unix;–подобными операционными системами, включая Linux.
Возможно, вы спрашиваете себя, зачем FreeBSD нужно уметь работать
с приложениями, написанными для Linux? Ответ на этот вопрос достаточно
прост: многие компании и разработчики производят программное
обеспечение только для Linux, так как эта операционная система очень
быстро завоевала огромную популярность в компьютерном мире.
Пользователям же FreeBSD приходится обращаться к этим компаниям и
разработчикам с просьбами выпустить версии своих программ специально
для FreeBSD. Проблема в том, что большинство производителей
программного обеспечения не осознают, насколько бы увеличился их рынок
сбыта, выпускай они также FreeBSD–версии, и продолжают разрабатывать
только под Linux. Что же делать пользователям FreeBSD? В этой
ситуации на помощь приходит двоичная совместимость FreeBSD с
Linux.Вкратце, эта совместимость позволяет пользователям FreeBSD
работать с 90% приложений для Linux без каких-либо модификаций
последних. Среди этих приложений:
&staroffice;, Linux–версия
&netscape;,
&adobe; &acrobat;,
RealPlayer,
VMware,
&oracle;, WordPerfect,
Doom, Quake,
и многие другие. Есть сведения, что в некоторых ситуациях эти
Linux–программы показывали более высокую производительность при
работе под FreeBSD, чем под Linux.Конечно, существуют некоторые особенности Linux, которые не
поддерживаются в полной мере под FreeBSD. Например, не будут
работать приложения Linux, использующие специфичные
вызовы &i386;, такие как переключение в виртуальный режим 8086.При чтении этой главы вы узнаете:Как включить двоичную совместимость с Linux в
вашей системе.Как установить дополнительные совместно используемые
(shared) библиотеки Linux.Как установить приложения Linux в систему FreeBSD.Детали реализации совместимости с Linux в ОС FreeBSD.Перед прочтением этой главы вам потребуется:Узнать как устанавливать дополнительное
программное обеспечение сторонних разработчиков
().УстановкаKLD (загружаемый объект ядра)Двоичная совместимость с Linux не включена по умолчанию.
Простейший способ включения этой функциональности заключается
в загрузке KLD–объекта linux (Kernel
LoaDable object). Вы можете загрузить этот модуль,
набрав следующее, как пользователь root:&prompt.root; kldload linuxЕсли вы хотите, чтобы совместимость с Linux была включена
постоянно, необходимо добавить в /etc/rc.conf
следующую строку:linux_enable="YES"Для проверки того, загружен ли модуль, может быть использована
команда &man.kldstat.8;:&prompt.user; kldstat
Id Refs Address Size Name
1 2 0xc0100000 16bdb8 kernel
7 1 0xc24db000 d000 linux.koпараметры ядраCOMPAT_LINUXЕсли по какой-либо причине вы не хотите или не можете загрузить
KLD, вы можете статически включить поддержку Linux в ядро,
добавив опцию options COMPAT_LINUX в файл
конфигурации ядра. Затем соберите и установите новое ядро,
следуя описанию в .Установка необходимых библиотек LinuxLinuxустановка библиотек LinuxУстановить все требуемые библиотеки можно двумя путями: либо
используя порт linux_base,
либо установив их вручную.Установка с помощью порта linux_baseколлекция портовЭтот метод является самым простым, и мы рекомендуем
воспользоваться именно им. Процесс аналогичен установке любого
другого порта из Коллекции Портов.
Просто выполните следующие команды:&prompt.root; cd /usr/ports/emulators/linux_base-fc4
&prompt.root; make install distcleanТеперь вы можете работать с приложениями для Linux. Некоторые
программы, возможно, будут сообщать о несоответствии подверсий
некоторых системных библиотек. Однако обычно это не
вызывает каких-либо неудобств.Возможно наличие нескольких версий порта emulators/linux_base, соответствующих
различным версиям разных дистрибутивов Linux. Вы должны
установить порт, наиболее близко соответствующий требованиям
приложений Linux, которые будут установлены.Установка библиотек вручнуюЕсли у вас не установлена коллекция портов, можно
установить требуемые библиотеки вручную. Вам понадобятся
совместно используемые библиотеки для Linux, которые нужны программам, и
runtime–компоновщик. Вам также потребуется создать теневой
корневой каталог, /compat/linux, где
будут расположены Linux–библиотеки. Если Linux–программе нужно
загрузить какую–либо совместно используемую библиотеку, FreeBSD сперва будет
пытаться найти ее в этом дереве. Так, если программа загружает,
например, /lib/libc.so, FreeBSD попытается
открыть /compat/linux/lib/libc.so, и если
такого файла не существует, будет пытаться открыть
/lib/libc.so. Разделяемые библиотеки должны
находиться в теневом дереве, а не в каталогах, выдаваемых
загрузчиком Linux ld.so.Обычно вам придется добавлять совместно используемые библиотеки, от
которых зависят Linux–программы, только при нескольких первых
установках приложений Linux на вашу систему FreeBSD. По мере
работы, у вас в системе накопится достаточный набор совместно используемых
библиотек Linux для запуска новых Linux-программ без
дополнительных действий.Как установить дополнительные совместно используемые библиотекисовместно используемые библиотекиЧто, если при установленном linux_base
порте ваше приложение все равно сообщает об отсутствии необходимой
библиотеки? Как узнать, какая именно нужна библиотека и где ее
взять? В принципе, есть два способа. Вам необходимо иметь
привилегии пользователя root для их
осуществления.Если у вас есть доступ к машине, на которой установлен Linux,
узнайте, какие библиотеки использует Linux–приложение, и просто
скопируйте из на свою машину. Рассмотрим следующий пример:Допустим, вы скачали по FTP Linux–версию
Doom и установили ее на Linux–машине.
Вы можете узнать, какие совместно используемые библиотеки нужны
Doom, с помощью команды
ldd linuxdoom:&prompt.user; ldd linuxdoom
libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0
libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0
libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29символические ссылкиВам потребуются все файлы, перечисленные в последнем
столбце. Скопируйте их в дерево /compat/linux
на вашей системе, а также создайте символические ссылки на эти
файлы с именами из первого столбца, соответственно. В итоге,
у вас в системе FreeBSD должны быть следующие файлы:/compat/linux/usr/X11/lib/libXt.so.3.1.0
/compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0
/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Учтите, что если у вас уже есть совместно используемая библиотека
Linux с соответствующим первому столбцу результатов
ldd основным номером версии, вам не
обязательно копировать файл, указанный в последнем столбце,
в вашу систему. Уже существующий файл должен подойти.
Рекомендуется, однако, все равно скопировать совместно используемую
библиотеку, если ее версия новее. Предыдущую версию
библиотеки можно удалить, если вы создали символическую ссылку
на новую. Итак, если у вас в системе есть следующие
библиотеки:/compat/linux/lib/libc.so.4.6.27
/compat/linux/lib/libc.so.4 -> libc.so.4.6.27и какое-либо приложение требует библиотеку более поздней
версии, судя по результатам команды
ldd:libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29Если версии немного отличаются в последней цифре,
копировать /lib/libc.so.4.6.29
необязательно, так как программа, скорее всего, будет
нормально работать и с немного устаревшей версией.
Тем не менее, вы можете заменить
libc.so:/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Символические ссылки важны только
для Linux–программ. Runtime–компоновщик FreeBSD
самостоятельно подберет правильные номера версий библиотек,
и вам не нужно об этом беспокоиться.
Установка двоичных файлов Linux ELFLinuxдвоичные файлы ELFДля ELF-файлов иногда требуется сделать так называемый
branding (маркировать его). Если попытаться
запустить не маркированный ELF-файл, вы получите следующее сообщение
об ошибке:&prompt.user; ./моя-linux-elf-программа
ELF binary type not known
AbortЧтобы помочь ядру FreeBSD отличить ELF-файл FreeBSD от
двоичного файла Linux, используется утилита &man.brandelf.1;:&prompt.user; brandelf -t Linux моя-linux-elf-программаGNU toolchainВ настоящее время набор инструментальных средств GNU
(GNU toolchain) помещает необходимую маркировочную информацию
в двоичные ELF-файлы автоматически, поэтому необходимость
в этом действии возникает всё реже.Конфигурирование распознавания имен хостовЕсли DNS не работает или вы получаете это сообщение:resolv+: "bind" is an invalid keyword resolv+:
"hosts" is an invalid keywordто вам нужно создать (изменить) файл
/compat/linux/etc/host.conf, содержащий:order hosts, bind
multi onТаким образом, вы указываете, то сначала производится поиск в
файле /etc/hosts, а только затем запрашивается
DNS. Когда файл /compat/linux/etc/host.conf
отсутствует, Linux–приложения находят файл
/etc/host.conf для FreeBSD и сообщают о
несовместимом синтаксисе. Если вы не настраивали сервер имен
с помощью файла /etc/resolv.conf, уберите
bind из файла
/compat/linux/etc/host.conf.BorisHollasОбновил для Mathematica 5.X Установка &mathematica;приложенияMathematicaНиже описано, как установить Linux–версию пакета
&mathematica; 5.X
на систему FreeBSD.Linux версия &mathematica;
или &mathematica; for Students
можно заказать непосредственно в компании Wolfram по адресу
.Использование установщика &mathematica;Сначала вы должны указать &os;, что Linux бинарники от
&mathematica; используют Linux
ABI. Самый простой путь сделать это—установить марку
ELF Linux по умолчанию для всех немаркированных двоичных
файлов с помощью команды:&prompt.root; sysctl kern.fallback_elf_brand=3&os; будет считать, что все немаркированные двоичные
ELF-файлы используют Linux ABI, и вы сможете
запустить MathInstaller прямо с CDROM.Теперь, скопируйте файл MathInstaller на
ваш жёсткий диск:&prompt.root; mount /cdrom
&prompt.root; cp /cdrom/Unix/Installers/Linux/MathInstaller /localdir/и в этом файле замените /bin/sh в
в первой строке на /compat/linux/bin/sh.
Этим мы убедимся, что установщик будет выполняться Linux
версией &man.sh.1;. Дальше, замените все вхождения
Linux) на FreeBSD) с
помощью текстового редактора или с помощью скрипта,
представленного ниже, в следующей главе. Это укажет
установщику &mathematica;,
вызывающему uname -s для определения
операционной системы, относиться к &os;, как к Linux
подобной операционной системе. Теперь, запуск
MathInstaller установит
&mathematica;.Modifying the &mathematica; ExecutablesСкрипты командной оболочки, которые
&mathematica; создала во
время установки, должны быть изменены перед тем, как
вы сможете использовать их. Если вы выбрали
/usr/local/bin в
качестве директории для помещения исполняемых файлов
&mathematica;, то вы обнаружите
в этом каталоге ссылки на файлы math,
mathematica, Mathematica, и
MathKernel. В каждом из них замените
Linux) на FreeBSD) с
помощью текстового редактора или с помощью следующего скрипта
командной оболочки:#!/bin/sh
cd /usr/local/bin
for i in math mathematica Mathematica MathKernel
do sed 's/Linux)/FreeBSD)/g' $i > $i.tmp
sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp > $i
rm $i.tmp
chmod a+x $i
doneПолучение пароля к пакету &mathematica;EthernetMAC-адресКогда вы запустите &mathematica;
в первый раз, у вас будет запрошен пароль. Если вы еще не получили
пароль от Wolfram, запустите программу mathinfo
в директории установки для получения вашего machine ID.
Этот machine ID основан исключительно на MAC адресе вашей первичной
Ethernet карты, так что, вы не сможете использовать вашу копию
&mathematica; на разных машинах.При регистрации по электронной почте, по телефону или по факсу
вы сообщаете machine ID, а в ответ
получаете пароль, состоящий из нескольких групп чисел.Использование интерфейса &mathematica; по сети&mathematica; использует специальные
шрифты для отображения некоторых символов, которые отсутствуют в
стандартных шрифтах (символы интегралов, сумм, греческий алфавит и
другие). Протокол X требует, чтобы эти шрифты были установлены
локально. Это означает, что вы должны
скопировать эти шрифты с компакт-диска или хоста, на котором
установлена &mathematica;, на вашу
машину. Обычно эти шрифты находятся в каталоге
/cdrom/Unix/Files/SystemFiles/Fonts
компакт-диска или в каталоге
/usr/local/mathematica/SystemFiles/Fonts на
диске. Собственно файлы со шрифтами находятся в подкаталогах
Type1 и X. О том, как их
использовать, читайте ниже.Можно просто скопировать их в один из существующих каталогов
шрифтов в каталоге /usr/X11R6/lib/X11/fonts.
В этом случае придётся отредактировать файл
fonts.dir, добавив в него названия шрифтов и
изменив число шрифтов в первой строке. Можно также запустить
программу &man.mkfontdir.1;, находясь в том каталоге,
куда вы скопировали шрифты.Есть альтернативный способ: скопировать каталоги в
/usr/X11R6/lib/X11/fonts:&prompt.root; cd /usr/X11R6/lib/X11/fonts
&prompt.root; mkdir X
&prompt.root; mkdir MathType1
&prompt.root; cd /cdrom/Unix/Files/SystemFiles/Fonts
&prompt.root; cp X/* /usr/X11R6/lib/X11/fonts/X
&prompt.root; cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; cd /usr/X11R6/lib/X11/fonts/X
&prompt.root; mkfontdir
&prompt.root; cd ../MathType1
&prompt.root; mkfontdirТеперь добавьте каталоги с новыми шрифтами в путь к
шрифтам:&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/X
&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; xset fp rehashЕсли вы используете сервер &xorg;,
то можно просто прописать эти
каталоги в файле xorg.conf.Для сервера &xfree86;,
файл конфигурации XF86Config.шрифтыЕсли на вашем компьютере нет каталога
/usr/X11R6/lib/X11/fonts/Type1, замените
MathType1 на Type1 в
предыдущем примере.AaronKaplanПредоставил RobertGetschmannБлагодарности: Установка &maple;приложенияMaple&maple; — коммерческая
математическая программа, аналогичная
&mathematica;. Это программное обеспечение
надо купить у , а потом
зарегистрироваться там для получения файла лицензии. Для установки
этого программного обеспечения в ОС FreeBSD используется следующая
последовательность простых шагов.Выполните скрипт командного интерпретатора
INSTALL из дистрибутива. Выберите
опцию RedHat, когда будет предложено программой
установки. Обычно установка выполняется в каталог /usr/local/maple.Если вы этого ещё не сделали, купите лицензию на
&maple; в компании Maple Waterloo
Software ()
и скопируйте ее в файл
/usr/local/maple/license/license.dat.Установите диспетчер лицензий
FLEXlm, выполнив скрипт установки
INSTALL_LIC, входящий в состав
&maple;. Укажите основное имя хоста
вашей машины для сервера лицензий.Исправьте файл
/usr/local/maple/bin/maple.system.type
с помощью следующего патча: ----- snip ------------------
*** maple.system.type.orig Sun Jul 8 16:35:33 2001
--- maple.system.type Sun Jul 8 16:35:51 2001
***************
*** 72,77 ****
--- 72,78 ----
# the IBM RS/6000 AIX case
MAPLE_BIN="bin.IBM_RISC_UNIX"
;;
+ "FreeBSD"|\
"Linux")
# the Linux/x86 case
# We have two Linux implementations, one for Red Hat and
----- snip end of patch -----Учтите, что после "FreeBSD"|\ не должно
быть никаких пробелов.Этот патч заставляет &maple;
распознавать FreeBSD как тип Linux-системы.
Скрипт командного интерпретатора bin/maple
вызывает скрипт bin/maple.system.type,
который, в свою очередь, вызывает uname -a для
получения имени операционной системы. В зависимости от имени ОС
он определяет, какие двоичные модули использовать.Запустите сервер лицензий.Следующий скрипт, установленный в файл
/usr/local/etc/rc.d/lmgrd.sh, обеспечивает
удобный способ запуска lmgrd: ----- snip ------------
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX
export PATH
LICENSE_FILE=/usr/local/maple/license/license.dat
LOG=/var/log/lmgrd.log
case "$1" in
start)
lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
echo -n " lmgrd"
;;
stop)
lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2
;;
*)
echo "Usage: `basename $0` {start|stop}" 1>&2
exit 64
;;
esac
exit 0
----- snip ------------Выполните тестовый запуск
&maple;:&prompt.user; cd /usr/local/maple/bin
&prompt.user; ./xmapleПрограмма должна запуститься и работать. Не забудьте написать
в Maplesoft и сообщить, что хотели бы видеть версию специально
для FreeBSD!Типичные проблемыРаботать с диспетчером лицензий
FLEXlm может быть непросто.
Дополнительную документацию по нему можно найти на сайте .lmgrd очень требователен к
файлу лицензии и выдает дамп памяти при выявлении любых проблем.
Правильный файл лицензии должен иметь следующий вид:# =======================================================
# License File for UNIX Installations ("Pointer File")
# =======================================================
SERVER chillig ANY
#USE_SERVER
VENDOR maplelmg
FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \
PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \
ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \
SN=XXXXXXXXXСерийный номер и ключ забиты символами 'X'.
chillig – имя хоста.Редактирование файла лицензий возможно, если только не
трогать строку FEATURE (которая защищена
лицензионным ключом).Установка &matlab;приложенияMATLABЭтот документ описывает процесс установки Linux-версии
&matlab; версии 6.5 на систему
&os;. Эта программа работает вполне нормально, за исключением
&java.virtual.machine; (см.
).Linux-версию &matlab; можно приобрести
непосредственно в компании The MathWorks на сайте . Не забудьте получить
файл лицензии или инструкции по его созданию. По ходу дела дайте
знать производителю, что хотели бы увидеть версию их ПО специально
для &os;.Процесс установки &matlab;Для установки &matlab; выполните
следующие шаги:Вставьте инсталляционный CD и смонтируйте его.
Станьте пользователем root, как рекомендует
скрипт установки. Для запуска скрипта установки наберите:&prompt.root; /compat/linux/bin/sh /cdrom/installЗапускается графический инсталлятор. Если вы получаете
сообщения о невозможности открыть дисплей, наберите
setenv HOME ~USER,
где USER – пользователь, от
имени которого выполнена команда &man.su.1;.
При запросе корневого каталога
&matlab;, наберите:
/compat/linux/usr/local/matlab.Чтобы упростить набор остальных команд в ходе установки,
выполните в командном интерпретаторе следующую команду:
set MATLAB=/compat/linux/usr/local/matlabОтредактируйте файл лицензии в соответствии с инструкциями
в полученной лицензии &matlab;.Этот файл можно подготовить заранее с помощью любого
текстового редактора и скопировать его в
$MATLAB/license.dat до того, как
инсталлятор попросит его отредактировать.Завершите процесс установки.В этот момент ваша установка &matlab;
завершена. Следующие шаги позволяют связать
эту программу с вашей системой &os;.Запуск диспетчера лицензийСоздайте символические ссылки для скриптов диспетчера
лицензий:&prompt.root; ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW
&prompt.root; ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMWСоздайте файл запуска
/usr/local/etc/rc.d/flexlm.sh.
Представленный ниже пример – измененная версия входящего
в дистрибутив файла $MATLAB/etc/rc.lm.glnx86.
Изменены местонахождения файлов и диспетчер лицензий запускается
под эмулятором Linux.#!/bin/sh
case "$1" in
start)
if [ -f /usr/local/etc/lmboot_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u username && echo 'MATLAB_lmgrd'
fi
;;
stop)
if [ -f /usr/local/etc/lmdown_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1
fi
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0Этот файл надо сделать выполняемым:&prompt.root; chmod +x /usr/local/etc/rc.d/flexlm.shВы также должны заменить username
именем пользователя в вашей системе (но не
root).Запустите диспетчер лицензий с помощью команды:&prompt.root; /usr/local/etc/rc.d/flexlm.sh startСвязь с &java; Runtime EnvironmentИзмените ссылку &java; Runtime
Environment (JRE) так, чтобы он ссылалась на версию, работающую
в &os;:&prompt.root; cd $MATLAB/sys/java/jre/glnx86/
&prompt.root; unlink jre; ln -s ./jre1.1.8 ./jreСоздание скрипта запуска &matlab;Поместите следующий скрипт запуска в файл
/usr/local/bin/matlab:
#!/bin/sh
/compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"Затем выполните команду
chmod +x /usr/local/bin/matlab.В зависимости от версии
emulators/linux_base, при
выполнении этого скрипта могут быть выданы сообщения об ошибках.
Чтобы избежать этого, отредактируйте файл
/compat/linux/usr/local/matlab/bin/matlab
и измените строку вида:if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then(в версии 13.0.1 это строка 410) на следующую строку:if test -L $newbase; thenСоздание скрипта остановки &matlab;Следующие действия необходимы для решения проблемы с
некорректным завершением работы &matlab;.Создайте файл
$MATLAB/toolbox/local/finish.m и поместите
в него одну строку:! $MATLAB/bin/finish.sh$MATLAB — литерал.В том же каталоге находятся файлы
finishsav.m и
finishdlg.m, которые позволяют
сохранять рабочее пространство перед выходом. Если вы
используете любой из них, вставьте представленную выше
строку сразу после команды save.Создайте файл
$MATLAB/bin/finish.sh, который будет
содержать следующий скрипт:#!/usr/compat/linux/bin/sh
(sleep 5; killall -1 matlab_helper) &
exit 0Сделайте этот файл выполняемым:&prompt.root; chmod +x $MATLAB/bin/finish.shИспользование &matlab;В этот момент все готово для выполнения команды
matlab и начала использования этой программы.MarcelMoolenaarПредоставил Установка &oracle;приложенияOracleВведениеНиже описан процесс установки &oracle;
8.0.5 и &oracle; 8.0.5.1 Enterprise
Edition для Linux на систему FreeBSD.Установка Linux–средыУдостоверьтесь, что порты
emulators/linux_base и
devel/linux_devtools установлены
на вашей системе. Если у вас возникнут трудности с этими портами,
воспользуйтесь пакетами или более ранними их версиями из
Коллекции Портов.Если вы хотите использовать интеллектуальный агент (intelligent
agent), придется также установить пакет TCL от Red Hat:
tcl-8.0.3-20.i386.rpm. Универсальная команда
для установки пакетов с помощью официального порта
RPM
(archivers/rpm):&prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm пакетУстановка этого пакета должна
пройти без каких-либо ошибок.Создание среды &oracle;Прежде чем вы сможете установить
&oracle;, необходимо настроить
соответствующую среду. В этом документе описано, что
специально нужно сделать, чтобы запустить
&oracle; для Linux под FreeBSD –
это не пересказ официального руководства по установке
&oracle;.Настройка ядранастройка ядраКак описано в руководстве по установке
&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Учетная запись &oracle;Создайте специальную учетную запись
oracle, как и любую другую учетную запись.
Единственное отличие в том, что для oracle
необходимо указать командный интерпретатор Linux.
Добавьте /compat/linux/bin/bash в
/etc/shells и установите для
oracle командный интерпретатор
/compat/linux/bin/bash.Переменные средыКроме стандартных переменных среды
&oracle;, таких как
ORACLE_HOME и ORACLE_SID, вам нужно
будет установить следующие переменные среды:ПеременнаяЗначениеLD_LIBRARY_PATH$ORACLE_HOME/libCLASSPATH$ORACLE_HOME/jdbc/lib/classes111.zipPATH/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Установка &oracle;Из-за небольшой несовместимости с Linux–эмулятором, вам нужно
будет создать подкаталог .oracle в каталоге
/var/tmp прежде, чем можно будет начать
установку. Сделайте ее владельцем пользователя
oracle.
Если вы все сделали правильно, то установка
&oracle; должна пройти без проблем. Если
какие-либо трудности все же возникли, проверьте еще раз все
конфигурационные файлы и/или целостность дистрибутива
&oracle;. После окончания установки
&oracle; примените патчи,
описанные в следующих двух подразделах.Одна из часто возникающих проблем — неправильно
установленный адаптер TCP-протокола. В результате, невозможно
запустить процессы прослушивания TCP. Вот решение проблемы:&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk ntcontab.o
&prompt.root; cd $ORACLE_HOME/lib
&prompt.root; ar r libnetwork.a ntcontab.o
&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk installНе забудьте повторно запустить root.sh!Изменение 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.Изменение 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Запуск &oracle;Теперь, если вы все сделали правильно, то можете использовать
&oracle; так же, как и в системе
Linux.HolgerKippПредоставил ValentinoVaschettoИсходную версию преобразовал в SGML Установка &sap.r3;приложенияSAP R/3Инсталляции систем &sap; на базе FreeBSD
не будут поддерживаться службой поддержки &sap; — они
предоставляют поддержку только на сертифицированных платформах.ПредисловиеЭтот документ описывает возможный способ установки системы
&sap.r3; с
СУБД &oracle; Database на машине с ОС
FreeBSD, включая установку FreeBSD и
&oracle;. Будут описаны две
разные конфигурации:&sap.r3; 4.6B (IDES) с
&oracle; 8.0.5 на FreeBSD 4.3-STABLE&sap.r3; 4.6C с
&oracle; 8.1.7 на FreeBSD 4.5-STABLEХотя в этом документе мы пытаемся подробно описать все важные
шаги, он не заменяет руководства по установке
&oracle; и
&sap.r3;.По специфическим вопросам &sap; и
&oracle; обратитесь к документации,
поставляемой в составе &sap.r3;
Linux edition, а также к другим источникам информации об
&oracle; и
&sap; OSS.Программное обеспечениеДля установки &sap; были использованы
следующие диски CD-ROM:&sap.r3; 4.6B, &oracle; 8.0.5ИмяНомерОписаниеKERNEL51009113SAP Kernel Oracle /
Installation / AIX, Linux, SolarisRDBMS51007558Oracle / RDBMS 8.0.5.X /
LinuxEXPORT151010208IDES / DB-Export /
Диск 1 из 6EXPORT251010209IDES / DB-Export /
Диск 2 из 6EXPORT351010210IDES / DB-Export /
Диск 3 из 6EXPORT451010211IDES / DB-Export /
Диск 4 из 6EXPORT551010212IDES / DB-Export /
Диск 5 из 6EXPORT651010213IDES / DB-Export /
Диск 6 из 6Кроме того, мы использовали CD &oracle; 8
Server (Опытная версия 8.0.5 для Linux,
ядро версии 2.0.33), который не обязательно понадобится, и
FreeBSD 4.3-STABLE (она вышла всего через несколько дней после 4.3
RELEASE).&sap.r3; 4.6C SR2, &oracle; 8.1.7ИмяНомерОписаниеKERNEL51014004SAP Kernel Oracle /
SAP Kernel Version 4.6D / DEC, LinuxRDBMS51012930Oracle 8.1.7/ RDBMS /
LinuxEXPORT151013953Release 4.6C SR2 / Export
/ Диск 1 из 4EXPORT151013953Release 4.6C SR2 / Export
/ Диск 2 из 4EXPORT151013953Release 4.6C SR2 / Export
/ Диск 3 bp 4EXPORT151013953Release 4.6C SR2 / Export
/ Диск 4 из 4LANG151013954Release 4.6C SR2 /
Language / DE, EN, FR / Диск 1 из 3В зависимости от языков, которые необходимо установить,
могут потребоваться дополнительные CD. Здесь мы использовали
только немецкий и английский языки, поэтому потребовался только
первый языковой CD. Обратите внимание, что номера всех
EXPORT CD идентичны. Все три языковых CD тоже имеют один номер
(это отличается от нумерации CD в версии 4.6B IDES). На момент
написания этого раздела (20.03.2002) установленное ПО работало
на FreeBSD 4.5-STABLE.Примечания по &sap;Прочитайте следующие документы перед установкой
&sap.r3; — они пригодятся в ходе
установки:&sap.r3; 4.6B, &oracle; 8.0.5НомерНазвание0171356SAP Software on Linux: Essential
Comments0201147INST: 4.6C R/3 Inst. on UNIX -
Oracle0373203Update / Migration Oracle 8.0.5 -->
8.0.6/8.1.6 LINUX0072984Release of Digital UNIX 4.0B for
Oracle0130581R3SETUP step DIPGNTAB terminates0144978Your system has not been installed
correctly0162266Questions and tips for R3SETUP on Windows
NT / W2K&sap.r3; 4.6C, &oracle; 8.1.7НомерНазвание0015023Initializing table TCPDB (RSXP0004)
(EBCDIC)0045619R/3 with several languages or
typefaces0171356SAP Software on Linux: Essential
Comments0195603RedHat 6.1 Enterprise version:
Known problems0212876The new archiving tool SAPCAR0300900Linux: Released DELL Hardware0377187RedHat 6.2: important remarks0387074INST: R/3 4.6C SR2 Installation on
UNIX0387077INST: R/3 4.6C SR2 Inst. on UNIX -
Oracle0387078SAP Software on UNIX: OS Dependencies
4.6C SR2Требования к аппаратному обеспечениюСледующего оборудования достаточно для установки
&sap.r3; System. Для производственного
использования необходима более точная оценка параметров:Компонент4.6B4.6CПроцессор2 x 800MHz &pentium; III2 x 800MHz &pentium; IIIПамять1GB ECC2GB ECCОбъем дисков50-60GB (IDES)50-60GB (IDES)Для производственного использования рекомендуются процессоры
&xeon; с большим кешем, высокоскоростной доступ к дискам (SCSI,
аппаратный RAID-контроллер), USV и ECC-RAM. Большой объем дискового
пространства связан с заранее сконфигурированной системой IDES,
которая создает 27 Гбайт файлов базы данных по ходу установки.
Этого пространства также достаточно для исходных производственных
систем и прикладных данных.&sap.r3; 4.6B, &oracle; 8.0.5Было использовано следующее стандартное оборудование:
двухпроцессорная материнская плата с двумя процессорами
&pentium; III 800 MHz, SCSI-контроллером &adaptec; 29160
Ultra160 (для работы с 40/80 Гбайт стримером DLT и приводом
CDROM), &mylex; &acceleraid; (2 канала, firmware 6.00-1-00 с
32 Мбайт RAM). К RAID-контроллеру &mylex; подключены два диска
по 17 Гбайт (зеркалированы) и четыре диска по 36 Гбайт
(RAID уровня 5).&sap.r3; 4.6C, &oracle; 8.1.7Для этой установки был использован &dell; &poweredge; 2500:
двухпроцессорная плата с двумя процессорами &pentium; III
1000 MHz (256 Кбайт кэш), 2 Гбайта PC133 ECC SDRAM,
PERC/3 DC PCI RAID-контроллер со 128 Мбайтами и приводом
EIDE DVD-ROM. К RAID-контроллеру подключены два диска по
18 Гбайт (зеркалированы) и четыре диска по 36 Гбайт
(RAID уровня 5).Установка FreeBSDСначала надо установить FreeBSD. Есть несколько способов сделать
это; подробнее
см. .Компоновка дисковДля простоты диски при установке
&sap.r3; 46B и &sap.r3; 46C
SR2 использовались одинаково. Изменились только
имена устройств, поскольку установка выполнялась на разное
оборудование (/dev/da и
/dev/amr, соответственно, так что при
использовании AMI &megaraid; будут задействованы устройства
/dev/amr0s1a вместо /dev/da0s1a):Файловая системаРазмер (в блока по 1 Кбайту)Размер (Гбайт)Смонтирована в/dev/da0s1a1.016.3031//dev/da0s1b6swap/dev/da0s1e2.032.6232/var/dev/da0s1f8.205.3398/usr/dev/da1s1e45.734.36145/compat/linux/oracle/dev/da1s1f2.032.6232/compat/linux/sapmnt/dev/da1s1g2.032.6232/compat/linux/usr/sapКонфигурируем и инициализируем заранее два логических диска
с помощью ПО RAID &mylex; или PERC/3. Программы конфигурирования
можно запустить в ходе загрузки BIOS.Обратите внимание, что использованная компоновка дисков
немного отличается от рекомендованной &sap;, поскольку &sap;
рекомендует монтировать подкаталоги
&oracle; (и некоторые другие)
отдельно — мы решили просто создать подкаталоги.make world и новое ядроЗагрузите последние исходные коды ветки -STABLE. Пересоздайте
систему и ваше специализированное ядро после необходимых изменений
в файле конфигурации ядра. В него надо включить
параметры ядра, требуемые
для &sap.r3; и
&oracle;.Установка среды LinuxУстановка базовой системы LinuxСначала необходимо установить порт
linux_base
(от имени пользователя root):&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make install distcleanУстановка среды разработки LinuxСреда разработки Linux необходима, если вы хотите установить
&oracle; в ОС FreeBSD, как описано в
:&prompt.root; cd /usr/ports/devel/linux_devtools
&prompt.root; make install distcleanСреда разработки Linux была установлена только для
&sap.r3; 46B IDES. Она не нужна, если
сервер &oracle; не перекомпоновывается
в системе FreeBSD. Именно так и происходит, если вы используете
tar-архив (tarball) &oracle; с
Linux-системы.Установка необходимых пакетов RPMRPMДля запуска программы R3SETUP необходима
поддержка модулей PAM. В ходе первой установки
&sap; на ОС FreeBSD 4.3-STABLE мы
попытались установить PAM со всеми необходимыми пакетами и,
в конце концов, принудительно установили пакет PAM, что и
сработало. Для &sap.r3; 4.6C SR2 мы
сразу принудительно установили PAM RPM, что тоже сработало,
так что похоже, что пакеты, от которых декларирована зависимость,
не нужны:&prompt.root; rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \
pam-0.68-7.i386.rpmЧтобы &oracle; 8.0.5 мог запустить
интеллектуального агента, нам также пришлось установить пакет
RedHat Tcl tcl-8.0.5-30.i386.rpm (иначе
перекомпоновка в ходе установки &oracle;
не выполнится). Есть и другие проблемы с перекомпоновкой
&oracle;, но это проблема
&oracle; на Linux, не связанная с
особенностями FreeBSD.Дополнительные советыМожет также иметь смысл добавить linprocfs
в /etc/fstab; подробнее об этом см. на
странице справочника &man.linprocfs.5;. Еще можно установить
параметр kern.fallback_elf_brand=3 в файле
/etc/sysctl.conf.Создание среды &sap.r3;Создание необходимых файловых систем и точек монтированияДля простой установки достаточно создать следующие файловые
системы:точка монтированияразмер в Гбайтах/compat/linux/oracle45 GB/compat/linux/sapmnt2 GB/compat/linux/usr/sap2 GBТакже необходимо создать несколько ссылок. В противном случае,
инсталлятор &sap; будет выдавать
сообщения об ошибках, поскольку он проверяет созданные ссылки:&prompt.root; ln -s /compat/linux/oracle /oracle
&prompt.root; ln -s /compat/linux/sapmnt /sapmnt
&prompt.root; ln -s /compat/linux/usr/sap /usr/sapВозможные сообщения об ошибках в ходе установки (в данном
случае, для установки System PRD и
&sap.r3; 4.6C SR2):INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200
Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to
/sapmnt/PRD/exe. Creating if it does not exist...
WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400
Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file
/compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The
program cannot go on as long as this link exists at this
location. Move the link to another location.
ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0
can not setup link '/usr/sap/PRD/SYS/exe/dbg' with content
'/sapmnt/PRD/exe'Создание пользователей и каталоговДля системы &sap.r3; необходимы два
пользователя и три группы. Имена пользователей зависят от
идентификатора системы &sap; (SID),
который состоит из трех букв. Некоторые из этих идентификаторов
зарезервированы &sap; (например,
SAP и NIX. Полный
список см. в документации &sap;).
Для установки IDES мы использовали IDS,
а для установки 4.6C SR2 — PRD, поскольку
эта система предназначалась для промышленного использования.
Поэтому нам понадобились следующие группы (идентификаторы групп
могут отличаться, мы просто указали наши значения, использованные
при установке):идентификатор группыимя группыописание100dbaАдминистратор базы данных101sapsysСистема &sap;102operОператор базы данныхДля стандартной установки
&oracle; используется только группа
dba. В качестве группы
oper используется та же группа
dba (подробнее об этом см. в
документации &oracle; и
&sap;).Нам также нужны следующие пользователи:идентификатор пользователяимя пользователяобщий вид именигруппадополнительные группыописание1000idsadm/prdadmsidadmsapsysoperАдминистратор &sap;1002oraids/oraprdorasiddbaoperАдминистратор &oracle;Добавление пользователей с помощью &man.adduser.8;
требует следующих параметров для Администратора &sap;
(обратите внимание на командный интерпретатор и начальный
каталог):Name: sidadm
Password: ******
Fullname: SAP Administrator SID
Uid: 1000
Gid: 101 (sapsys)
Class:
Groups: sapsys dba
HOME: /home/sidadm
Shell: bash (/compat/linux/bin/bash)а для Администратора &oracle;:Name: orasid
Password: ******
Fullname: Oracle Administrator SID
Uid: 1002
Gid: 100 (dba)
Class:
Groups: dba
HOME: /oracle/sid
Shell: bash (/compat/linux/bin/bash)Для него также надо указать группу
oper, если вы используете обе группы,
dba и oper.Создание каталоговЭти каталоги обычно создаются в отдельных файловых системах.
Впрочем, все зависит от ваших требований. Мы решили создавать их
как обычные каталоги, поскольку в любом случае они находятся на
одном массиве RAID 5:Сначала мы установим владельцев и права для ряда каталогов (от
имени пользователя root):&prompt.root; chmod 775 /oracle
&prompt.root; chmod 777 /sapmnt
&prompt.root; chown root:dba /oracle
&prompt.root; chown sidadm:sapsys /compat/linux/usr/sap
&prompt.root; chmod 775 /compat/linux/usr/sapЗатем, мы создадим каталоги от имени пользователя
orasid. Все они
будут размещены в каталоге
/oracle/SID:&prompt.root; su - orasid
&prompt.root; cd /oracle/SID
&prompt.root; mkdir mirrlogA mirrlogB origlogA origlogB
&prompt.root; mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6
&prompt.root; mkdir saparch sapreorg
&prompt.root; exitДля установки &oracle; 8.1.7
потребуется несколько дополнительных каталогов:&prompt.root; su - orasid
&prompt.root; cd /oracle
&prompt.root; mkdir 805_32
&prompt.root; mkdir client stage
&prompt.root; mkdir client/80x_32
&prompt.root; mkdir stage/817_32
&prompt.root; cd /oracle/SID
&prompt.root; mkdir 817_32Каталог client/80x_32 должен иметь
точно такое имя. Не заменяйте x числом или
другим символом.На третьем шаге мы создаем каталоги от имени пользователя
sidadm:&prompt.root; su - sidadm
&prompt.root; cd /usr/sap
&prompt.root; mkdir SID
&prompt.root; mkdir trans
&prompt.root; exitЗаписи в файле /etc/servicesДля системы &sap.r3; необходим ряд
записей в файле /etc/services, которые не
будут правильно созданы при установке под FreeBSD. Пожалуйста,
добавьте следующие записи (потребуются, по крайней мере, записи,
соответствующие номеру экземпляра — в данном случае,
00. Не повредит добавить все записи, от
00 до 99, для
dp, gw, sp
и ms). Если вы собираетесь использовать
SAProuter или вам необходим доступ к
&sap; OSS, потребуется также запись для
99, поскольку порт 3299 обычно используется
для процесса SAProuter в целевой
системе:
sapdp00 3200/tcp # SAP Dispatcher. 3200 + Instance-Number
sapgw00 3300/tcp # SAP Gateway. 3300 + Instance-Number
sapsp00 3400/tcp # 3400 + Instance-Number
sapms00 3500/tcp # 3500 + Instance-Number
sapmsSID 3600/tcp # SAP Message Server. 3600 + Instance-Number
sapgw00s 4800/tcp # SAP Secure Gateway 4800 + Instance-NumberНеобходимые локалилокальСистеме &sap; нужны, по крайней
мере, две локали, не входящие в стандартную установку RedHat.
&sap; предлагает необходимые пакеты RPM для загрузки со своего
FTP-сервера (который доступен только для клиентов с доступом к
OSS). См. список необходимых пакетов RPM в заметке
0171356.Можно также просто создать соответствующие ссылки
(например, с de_DE и
en_US), но мы не рекомендуем это для
производственной системы (хотя это и сработало для системы
IDES безо всяких проблем). Необходимы следующие локали:de_DE.ISO-8859-1
en_US.ISO-8859-1Создайте ссылки следующим образом:&prompt.root; cd /compat/linux/usr/share/locale
&prompt.root; ln -s de_DE de_DE.ISO-8859-1
&prompt.root; ln -s en_US en_US.ISO-8859-1Если их не будет, в ходе установки возникнет ряд проблем.
Если их просто проигнорировать (установив STATUS
для соответствующих шагов равным OK в файле
CENTRDB.R3S), нельзя будет зарегистрироваться
в системе &sap; без дополнительных
усилий.Настройка ядранастройка ядраСистемам &sap.r3; надо много
ресурсов. Поэтому мы добавили следующие параметры в файл
конфигурации ядра:# Для пожирателей памяти (SAP и Oracle):
options MAXDSIZ="(1024*1024*1024)"
options DFLDSIZ="(1024*1024*1024)"
# Необходимые опции System V.
options SYSVSHM #совместно используемая память в стиле SYSV
options SHMMAXPGS=262144 #макс. количество страниц совместно используемой
#options SHMMAXPGS=393216 #use this for the 46C inst.parameters
options SHMMNI=256 #макс. количество идентификаторов совместно используемой
options SHMSEG=100 #макс. количество сегментов разд. памяти на процесс
options SYSVMSG #очереди сообщений в стиле SYSV
options MSGSEG=32767 #макс. количество сегментов сообщений в системе
options MSGSSZ=32 #размер сегмента сообщений. ДОЛЖЕН быть степенью 2
options MSGMNB=65535 #макс. символов на очередь сообщений
options MSGTQL=2046 #макс. количество сообщений в системе
options SYSVSEM #семафоры в стиле SYSV
options SEMMNU=256 #количество структур UNDO семафоров
options SEMMNS=1024 #количество семафоров в системе
options SEMMNI=520 #количество идентификаторов семафоров
options SEMUME=100 #количество ключей UNDOМинимальные значения указаны в документации, поставляемой
вместе с &sap;. Поскольку описания для Linux нет, дополнительную
информацию см. в разделе HP-UX (32-bit). Поскольку в системе, на
которую устанавливалась версия 4.6C SR2, оперативной памяти больше, сегменты совместно используемой можно сделать больше как для
&sap;, так и для
&oracle;, поэтому задайте большее
количество страниц совместно используемой памяти.При стандартной установке FreeBSD на &i386;,
задайте значения MAXDSIZ и DFLDSIZ не более 1 Гбайта. В противном
случае могут выдаваться странные ошибки вроде
ORA-27102: out of memory и
Linux Error: 12: Cannot allocate
memory.Установка &sap.r3;Подготовка дисков CDROM &sap;В ходе установки придется монтировать и демонтировать
много дисков CDROM. При наличии достаточного количества приводов
CDROM, можно смонтировать их все. Мы же решили скопировать
содержимое дисков CDROM в соответствующие каталоги:/oracle/SID/sapreorg/имя_cdгде имя_cd — одно из следующих
KERNEL,
RDBMS, EXPORT1,
EXPORT2, EXPORT3,
EXPORT4, EXPORT5 и
EXPORT6 для установки 4.6B/IDES, и
KERNEL, RDBMS,
DISK1, DISK2,
DISK3, DISK4 и
LANG для установки 4.6C SR2. Все имена
файлов на смонтированных дисках должны быть в верхнем регистре,
в противном случае, используйте при монтировании опцию
. Поэтому используйте следующие команды:&prompt.root; mount_cd9660 -g /dev/cd0a /mnt
&prompt.root; cp -R /mnt/* /oracle/SID/sapreorg/имя_cd
&prompt.root; umount /mntЗапуск скрипта установкиСначала надо подготовить каталог install:&prompt.root; cd /oracle/SID/sapreorg
&prompt.root; mkdir install
&prompt.root; cd installЗатем запускается скрипт установки, который скопирует почти
все необходимые файлы в каталог
install:&prompt.root; /oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SHДистрибутив IDES (4.6B) включает полностью настроенную
демонстрационную систему &sap.r3;, поэтому он включает шесть
дисков EXPORT CD, а не три. В этот момент шаблон установки
CENTRDB.R3S предназначен для установки
стандартного центрального экземпляра
(&r3; и базы данных), а не для
установки центрального экземпляра IDES, поэтому необходимо
скопировать соответствующий файл CENTRDB.R3S
из каталога EXPORT1, иначе
команда R3SETUP запросит только три диска
EXPORT CDs.Более новый релиз &sap; 4.6C SR2
включает четыре диска EXPORT CD. Шаги установки определяет файл
параметров CENTRAL.R3S. В отличие от
прежних релизов, больше нет отдельных шаблонов установки для
центрального экземпляра с базой данных или без нее.
&sap; использует отдельный шаблон для
установки базы данных. Для перезапуска установки в дальнейшем,
однако, достаточно перезапустить исходный файл.В ходе установки и после нее &sap;
требует, чтобы команда hostname возвращала
только имя компьютера, не уточнённое именем домена. Поэтому либо
задайте имя хоста в соответствии с этим требованием, либо
настройте псевдоним с помощью команды
alias hostname='hostname -s' для пользователей
orasid и
sidadm (и для
пользователя root, про крайней мере,
в ходе шагов по установке, выполняемых от имени
root). Можно также изменить
файлы .profile и .login
для обоих пользователей, которые создаются в ходе установки
&sap;.Запуск R3SETUP 4.6BПроверьте, что переменная среды LD_LIBRARY_PATH
установлена правильно:&prompt.root; export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/libВыполните команду R3SETUP от имени
пользователя root из каталога установки:&prompt.root; cd /oracle/IDS/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRDB.R3SСкрипт затем задает ряд вопросов (стандартные ответы даны
в скобках, а затем представлены реальные ответы):ВопросСтандартное значениеОтветEnter SAP System ID[C11]IDSEnterEnter SAP Instance Number[00]EnterEnter SAPMOUNT Directory[/sapmnt]EnterEnter name of SAP central host[troubadix.domain.de]EnterEnter name of SAP db host[troubadix]EnterSelect character set[1] (WE8DEC)EnterEnter Oracle server version (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.61EnterExtract Oracle Client archive[1] (Yes, extract)EnterEnter path to KERNEL CD[/sapcd]/oracle/IDS/sapreorg/KERNELEnter path to RDBMS CD[/sapcd]/oracle/IDS/sapreorg/RDBMSEnter path to EXPORT1 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT1Directory to copy EXPORT1 CD[/oracle/IDS/sapreorg/CD4_DIR]EnterEnter path to EXPORT2 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT2Directory to copy EXPORT2 CD[/oracle/IDS/sapreorg/CD5_DIR]EnterEnter path to EXPORT3 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT3Directory to copy EXPORT3 CD[/oracle/IDS/sapreorg/CD6_DIR]EnterEnter path to EXPORT4 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT4Directory to copy EXPORT4 CD[/oracle/IDS/sapreorg/CD7_DIR]EnterEnter path to EXPORT5 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT5Directory to copy EXPORT5 CD[/oracle/IDS/sapreorg/CD8_DIR]EnterEnter path to EXPORT6 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT6Directory to copy EXPORT6 CD[/oracle/IDS/sapreorg/CD9_DIR]EnterEnter amount of RAM for SAP + DB850Enter (in Megabytes)Service Entry Message Server[3600]EnterEnter Group-ID of sapsys[101]EnterEnter Group-ID of oper[102]EnterEnter Group-ID of dba[100]EnterEnter User-ID of sidadm[1000]EnterEnter User-ID of orasid[1002]EnterNumber of parallel procs[2]EnterЕсли вы не скопировали диски в разные каталоги,
инсталлятор &sap; не сможет найти
необходимые CD (идентифицируемые файлом
LABEL.ASC на диске) и попросит затем
вставить и смонтировать CD, и подтвердить или ввести точку
его монтирования.Файл CENTRDB.R3S может содержать
ошибки. В нашем случае, он снова запросил EXPORT4 CD, но
указал корректный ключ (6_LOCATION, затем 7_LOCATION и т.д.),
так что, можно просто продолжать вводить корректные
значения.За исключением нескольких упомянутых ниже проблем, все
должно идти нормально до момента, когда придется устанавливать
программное обеспечение для работы с базой данных &oracle;.Запуск R3SETUP 4.6C SR2Проверьте, что переменная среды LD_LIBRARY_PATH
установлена правильно. Это значение отличается от использованного
при установке версии 4.6B с
&oracle; 8.0.5:&prompt.root; export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/libВыполните команду R3SETUP от имени
пользователя root из каталога установки:&prompt.root; cd /oracle/PRD/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRAL.R3SСкрипт затем задаст ряд вопросов (стандартные значения
даны в скобках, а затем идут реальные ответы):ВопросСтандартное значениеОтветEnter SAP System ID[C11]PRDEnterEnter SAP Instance Number[00]EnterEnter SAPMOUNT Directory[/sapmnt]EnterEnter name of SAP central host[majestix]EnterEnter Database System ID[PRD]PRDEnterEnter name of SAP db host[majestix]EnterSelect character set[1] (WE8DEC)EnterEnter Oracle server version (2) Oracle 8.1.72EnterExtract Oracle Client archive[1] (Yes, extract)EnterEnter path to KERNEL CD[/sapcd]/oracle/PRD/sapreorg/KERNELEnter amount of RAM for SAP + DB20441800Enter (in Megabytes)Service Entry Message Server[3600]EnterEnter Group-ID of sapsys[100]EnterEnter Group-ID of oper[101]EnterEnter Group-ID of dba[102]EnterEnter User-ID of oraprd[1002]EnterEnter User-ID of prdadm[1000]EnterLDAP support3Enter (no support)Installation step completed[1] (continue)EnterChoose installation service[1] (DB inst,file)EnterПока создание пользователей дает сообщение об ошибке при
установке на стадиях OSUSERDBSID_IND_ORA (создание пользователя
orasid) и
OSUSERSIDADM_IND_ORA (создание пользователя
sidadm).За исключением некоторых упомянутых далее проблем, все
должно идти нормально до момента, когда придется устанавливать
программное обеспечение для работы с базой данных &oracle;.Установка &oracle; 8.0.5Описания возможных проблем с Linux и Сервером
&oracle; см. в соответствующих файлах
&sap; Notes и &oracle; Readme. Большинство,
если не все проблемы, связаны с несовместимыми библиотеками.Подробнее об установке &oracle;
см. в разделе Установка
&oracle;.Установка &oracle; 8.0.5 с помощью orainstЕсли надо использовать &oracle;
8.0.5, для успешной перекомпоновки понадобится
несколько дополнительных библиотек, поскольку
&oracle; 8.0.5 был скомпонован со
старой версией glibc (RedHat 6.0), но уже RedHat 6.1 использует
новую библиотеку glibc. Так что, для успешной перекомпоновки
нужно установить следующие дополнительные пакеты:compat-libs-5.2-2.i386.rpmcompat-glibc-5.2-2.0.7.2.i386.rpmcompat-egcs-5.2-1.0.3a.1.i386.rpmcompat-egcs-c++-5.2-1.0.3a.1.i386.rpmcompat-binutils-5.2-2.9.1.0.23.1.i386.rpmДополнительную информацию см. в файлах &sap; Notes или &oracle;
Readme. Если установить эти пакеты не
представляется возможным (на момент установки у нас не было
времени, чтобы это проверить), можно использовать исходные двоичные
модули или перекомпонованные двоичные модули с исходной системы
RedHat.Для компиляции интеллектуального агента должен быть
установлен пакет RedHat Tcl. Если вы не можете найти пакет
tcl-8.0.3-20.i386.rpm, подойдет и более
новый, вроде tcl-8.0.5-30.i386.rpm для
RedHat 6.1.За исключением перекомпоновки, установка выполняется
просто:&prompt.root; su - oraids
&prompt.root; export TERM=xterm
&prompt.root; export ORACLE_TERM=xterm
&prompt.root; export ORACLE_HOME=/oracle/IDS
&prompt.root; cd $ORACLE_HOME/orainst_sap
&prompt.root; ./orainstНажимайте на всех экранах клавишу Enter,
пока программное обеспечение не будет установлено, убрав только
пометку выбора с &oracle; On-Line Text Viewer,
поскольку этого компонента для Linux сейчас нет.
&oracle; затем захочет
перекомпоновать модули с помощью
i386-glibc20-linux-gcc
вместо имеющихся gcc, egcs
или i386-redhat-linux-gcc.Из-за нехватки времени мы решили использовать двоичные
модули из версии &oracle; 8.0.5
PreProduction после того, как первая попытка
заставить работать версию с RDBMS CD провалилась, — попытки
найти и загрузить требуемые пакеты RPM нам показались настоящим
кошмаром.Установка &oracle; 8.0.5 Pre-production Release для
Linux (ядро 2.0.33)Эту установку выполнить очень легко. Монтируем CD, запускаем
инсталлятор. Затем он запрашивает местонахождение начального
каталога &oracle; и копирует туда двоичные модули. Мы, однако,
не удаляли остатки прежних попыток установить RDBMS.В конечном итоге, базу данных &oracle;
удалось запустить без проблем.Установка tar-архива &oracle; 8.1.7 для LinuxСоздайте tar-архив oracle81732.tgz
каталога установки на Linux-системе и разархивируйте его в
каталог /oracle/SID/817_32/.Продолжение установки &sap.r3;Сначала проверьте настройку среды для пользователей
idsamd (sidadm) и
oraids (orasid). У
них обоих должны теперь быть файлы .profile,
.login и .cshrc,
использующие hostname. Если имя хоста в системе
полностью уточнено, надо заменить hostname
командой hostname -s во всех трех файлах.Загрузка базы данныхПотом команду R3SETUP можно либо
перезапустить, либо продолжить (в зависимости от того, была
ли завершена ее работа). R3SETUP затем
создает табличные пространства и загружает данные (для 46B
IDES — с дисков от EXPORT1 до EXPORT6, для 46C —
с дисков от DISK1 до DISK4) в базу данных с помощью утилиты
R3load.После завершения загрузки базы данных (это может занять
несколько часов), будет запрошено несколько паролей. Для тестовых
установок можно использовать хорошо известные стандартные
пароли (но если защита важна — используйте другие!):ВопросОтветEnter Password for sapr3sapEnterConfirum Password for sapr3sapEnterEnter Password for syschange_on_installEnterConfirm Password for syschange_on_installEnterEnter Password for systemmanagerEnterConfirm Password for systemmanagerEnterМы столкнулись с несколькими проблемами с
dipgntab при установке 4.6B.Процесс прослушиванияЗапустите процесс прослушивания
(&oracle; Listener) от имени
пользователя orasid
следующим образом:&prompt.user; umask 0; lsnrctl startВ противном случае, вы можете получить сообщение об
ошибке ORA-12546, поскольку у сокетов
будут неправильные права доступа. См. &sap; Note 072984.Обновление таблиц MNLSЕсли вы планируете использовать в системе
&sap; языки, для которых не
подходит кодировка Latin-1, придется изменить таблицы
Multi National Language Support. Эта процедура описана в
&sap; OSS Notes 15023 и 45619. Если же нет, можете пропустить
этот вопрос в ходе установки &sap;.Если вам не нужна поддержка MNLS, все равно необходимо
проверить таблицу TCPDB и инициализировать ее, если это еще не
было сделано. Дополнительную информацию см. в &sap; Note 0015023
и 0045619.Шаги после установкиЗапрос лицензионного ключа &sap.r3;Вы должны запросить ваш лицензионный ключ
&sap.r3;. Это необходимо, поскольку
временная лицензия, использованная в ходе установки, действительна
только четыре недели. Сначала получите ключ оборудования.
Зарегистрируйтесь как пользователь idsadm
и вызовите команду saplicense:&prompt.root; /sapmnt/IDS/exe/saplicense -getПри вызове команды saplicense без
параметров будет выдан список опций. После получения
лицензионного ключа, его можно установить с помощью
команды:&prompt.root; /sapmnt/IDS/exe/saplicense -installЗатем вас попросят ввести следующие значения:SAP SYSTEM ID = SID, 3 символа
CUSTOMER KEY = ключ оборудования, 11 символов
INSTALLATION NO = установка, 10 цифр
EXPIRATION DATE = yyyymmdd, обычно - "99991231"
LICENSE KEY = лицензионный ключ, 24 символаСоздание пользователейСоздайте пользователя в клиенте 000 (некоторые задачи
обязательно надо выполнять из клиента 000, от имени пользователя,
отличающегося от sap* и
ddic). В качестве имени пользователя мы
обычно выбираем wartung (или
service, по английски). Требуются профили
sap_new и sap_all. Для
дополнительной защиты надо изменить пароли стандартных
пользователей на всех клиентах (в том числе, пользователей
sap* и ddic).Конфигурирование системы передачи, профиля, режимов работы и т.п.В клиенте 000, от имени пользователя, отличающегося от
ddic и sap*,
выполните, как минимум, следующее:ЗадачаТранзакцияСконфигурируйте систему передачи, например, как Stand-Alone Transport Domain EntitySTMSСоздайте/Отредактируйте профиль для системыRZ10Сконфигурируйте режимы работы и экземплярыRZ04Эти и другие шаги, которые надо выполнить после установки,
подробно описаны в руководствах по установке
&sap;.Редактирование initsid.sap (initIDS.sap)Файл /oracle/IDS/dbs/initIDS.sap
содержит профиль резервного копирования
&sap;. Здесь надо задать размер
используемой ленты, тип сжатия и т.д. Чтобы можно было
использовать sapdba /
brbackup, мы изменили следующие значения:compress = hardware
archive_function = copy_delete_save
cpio_flags = "-ov --format=newc --block-size=128 --quiet"
cpio_in_flags = "-iuv --block-size=128 --quiet"
tape_size = 38000M
tape_address = /dev/nsa0
tape_address_rew = /dev/sa0Объяснения:compress: мы использовали ленту HP DLT1,
которая поддерживает аппаратное сжатие.archive_function: этот параметр задает
стандартное поведение для сохранения архивных журналов &oracle;:
новые журнальные файлы сохраняются на ленту, уже сохраненные
файлы журнала сохраняются еще раз, а затем удаляются. Это
предотвращает многочисленные проблемы, если потребуется
восстановить базу данных, а одна из архивных лент окажется
сбойной.cpio_flags: по умолчанию используется
, что устанавливает размер блока 5120 байт.
Для лент DLT компания HP рекомендует размер блока не меньше
32 Кбайт, поэтому мы использовали значение
для задания размера блока
64 Кбайта. Опция необходима,
поскольку у нас есть индексные дескрипторы (inodes) с номерами
больше 65535. Последняя опция, необходима
потому, что иначе команда brbackup выдает
сообщение об ошибке, как только команда cpio
выдаст количество сохраненных блоков.cpio_in_flags: флаги, необходимые для
загрузки данных с ленты. Формат распознается автоматически.tape_size: обычно этот параметр задает
реальную ёмкость ленты. Из соображений надежности (мы используем
аппаратное сжатие), задано значение несколько меньше
фактического.tape_address: устройство без перемотки
для использования в команде cpio.tape_address_rew: устройство с
перемоткой для использования в команде
cpio.Проблемы конфигурирования после установкиСледующие параметры &sap; надо
настроить после установки (примеры для IDES 46B,
1 Гбайт памяти):ИмяЗначениеztta/roll_extension250000000abap/heap_area_dia300000000abap/heap_area_nondia400000000em/initial_size_MB256em/blocksize_kB1024ipc/shm_psize_4070000000&sap; Note 0013026:ИмяЗначениеztta/dynpro_area2500000&sap; Note 0157246:ИмяЗначениеrdisp/ROLL_MAXFS16000rdisp/PG_MAXFS30000При указанных выше параметрах в системе с 1 Гбайт
памяти можно обнаружить примерно следующее использование
памяти:Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K FreeПроблемы в ходе установкиПерезапуск R3SETUP после устранения проблемыR3SETUP останавливается при выявлении
ошибки. Если вы просмотрели соответствующие журнальные файлы и
исправили ошибку, придется запускать R3SETUP
снова, обычно выбирая REPEAT как опцию для последнего шага,
на котором команда R3SETUP выдала сообщение
об ошибке.Для перезапуска команды R3SETUP просто
запустите её с соответствующим файлом
R3S:&prompt.root; ./R3SETUP -f CENTRDB.R3Sдля 4.6B или с файлом&prompt.root; ./R3SETUP -f CENTRAL.R3Sдля 4.6C, независимо от того, произошла ли ошибка
при работе с файлом CENTRAL.R3S или
DATABASE.R3S.На некоторых стадиях команда R3SETUP
предполагает, что запущены и работают процессы как сервера
базы данных, так и &sap; (поскольку
эти шаги уже выполнены). Если возникнут ошибки и, например,
запустить сервер базы данных не получится, придется вручную
запускать сервер базы данных и &sap;
после исправления ошибок и до повторного запуска
R3SETUP.Не забудьте также снова запустить процесс прослушивания
&oracle; (как пользователь
orasid с помощью
команды umask 0; lsnrctl start), если он тоже
был остановлен (например, из-за необходимой перезагрузки
системы).OSUSERSIDADM_IND_ORA в ходе R3SETUPЕсли R3SETUP выдает сообщения об
ошибках на этом этапе, отредактируйте используемый при этом
файл шаблона R3SETUP
(CENTRDB.R3S (4.6B), либо
CENTRAL.R3S или
DATABASE.R3S (4.6C)).
Найдите раздел [OSUSERSIDADM_IND_ORA] или
поищите единственную запись STATUS=ERROR и
отредактируйте следующие значения:HOME=/home/sidadm (было пусто)
STATUS=OK (был статус ERROR)
Затем надо снова перезапустить
R3SETUP.OSUSERDBSID_IND_ORA в ходе R3SETUPВозможно, команда R3SETUP также выдаст
сообщения об ошибке на этой стадии. Ошибка здесь аналогична
возникающей на стадии OSUSERSIDADM_IND_ORA. Просто отредактируйте
используемый файл шаблона R3SETUP
(CENTRDB.R3S (4.6B), либо
CENTRAL.R3S или
DATABASE.R3S (4.6C)).
Найдите раздел [OSUSERDBSID_IND_ORA] или поищите
единственную запись STATUS=ERROR и
отредактируйте следующее значение в этом разделе:STATUS=OKЗатем перезапустите R3SETUP.oraview.vrf FILE NOT FOUND в ходе установки &oracle;Вы не сняли выбор с &oracle; On-Line Text
Viewer перед началом установки. Он помечен для
установки, хотя этот продукт и не доступен сейчас для Linux.
Снимите пометку с этого продукта в меню установки
&oracle; и перезапустите
установку.TEXTENV_INVALID в ходе R3SETUP, RFC или запуска SAPguiЕсли возникает эта ошибка, не найдена нужная локаль.
&sap; Note 0171356 перечисляет необходимые пакеты RPM, которые
надо установить (например, saplocales-1.0-3,
saposcheck-1.0-1 для RedHat 6.1). Если
игнорировать все ошибки и менять STATUS
соответствующих шагов с ERROR на
OK (в файле CENTRDB.R3S)
каждый раз, когда R3SETUP сообщает об
ошибке и просто перезапуск ать R3SETUP, система
&sap; не будет правильно
сконфигурирована, и вы затем не сможете подключиться к системе
с помощью SAPgui, хотя запустить
систему и получится. Попытка подключения с помощью старой
Linux-версии SAPgui приведет к выдаче
следующих сообщений:Sat May 5 14:23:14 2001
*** ERROR => no valid userarea given [trgmsgo. 0401]
Sat May 5 14:23:22 2001
*** ERROR => ERROR NR 24 occured [trgmsgi. 0410]
*** ERROR => Error when generating text environment. [trgmsgi. 0435]
*** ERROR => function failed [trgmsgi. 0447]
*** ERROR => no socket operation allowed [trxio.c 3363]
SpeicherzugriffsfehlerЭто связано с тем, что система
&sap.r3; не может корректно назначить
локаль и сама не была надлежащим образом сконфигурирована
(не хватает записей в некоторых таблицах базы данных). Чтобы
можно было подключиться к &sap;,
добавьте следующие записи в файл DEFAULT.PFL
(см. Note 0043288):abap/set_etct_env_at_new_mode = 0
install/collate/active = 0
rscp/TCP0B = TCP0BПерезапустите систему &sap;. Теперь
вы можете подключиться к системе, хотя специфические для страны
языковые установки могут работать не так, как предполагалось.
После исправления настроек страны (и добавления соответствующих
локалей) эти записи можно удалить из файла
DEFAULT.PFL и перезапустить систему &sap;.ORA-00001Эта ошибка возникает только с
&oracle; 8.1.7 на FreeBSD.
Причина в том, что сервер &oracle;
не может правильно проинициализироваться и аварийно завершает
работу, оставляя не освобожденными в системе семафоры и
совместно используемую память. При следующей попытке запустить сервер
базы данных выдается ошибка ORA-00001.Найдите оставшиеся семафоры и сегменты памяти с помощью
команды ipcs -a и удалите с помощью
ipcrm.ORA-00445 (фоновый процесс PMON не запущен)Эта ошибка произошла с &oracle; 8.1.7.
Она выдается, если сервер был запущен с помощью обычного
скрипта startsap (например,
startsap_majestix_00) от имени пользователя
prdadm.Возможный способ обхода – запускать сервер базы данных
от имени пользователя oraprd с помощью
svrmgrl:&prompt.user; svrmgrl
SVRMGR> connect internal;
SVRMGR> startup;
SVRMGR> exitORA-12546 (запускайте процесс прослушивания с правильными правами)Запускайте процесс прослушивания
&oracle; от имени пользователя
oraids следующими командами:&prompt.root; umask 0; lsnrctl startВ противном случае, вы можете получить сообщение об ошибке
ORA-12546, поскольку сокеты не будут иметь
нужных прав доступа. См. &sap; Note 0072984.ORA-27102 (не хватает памяти)Эта ошибка произошла при попытке использовать значения
MAXDSIZ и DFLDSIZ больше
1 Гбайта (1024x1024x1024). Кроме того, мы получили
Linux Error 12: Cannot allocate memory.[DIPGNTAB_IND_IND] в ходе R3SETUPВ общем случае, см. &sap; Note 0130581
(прекращается работа R3SETUP на шаге
DIPGNTAB). В ходе установки
IDES-версии по каким-то причинам процесс установки использовал
вместо правильного имени системы &sap;,
IDS, пустую строку, "". Это
приводит к небольшим проблемам при доступе к каталогам, поскольку пути
генерируются динамически на базе SID
(в данном случае, IDS). Поэтому вместо обращения к:/usr/sap/IDS/SYS/...
/usr/sap/IDS/DVMGS00используются следующие пути:/usr/sap//SYS/...
/usr/sap/D00Чтобы продолжить установку мы создали ссылку и дополнительный
каталог:&prompt.root; pwd
/compat/linux/usr/sap
&prompt.root; ls -l
total 4
drwxr-xr-x 3 idsadm sapsys 512 May 5 11:20 D00
drwxr-x--x 5 idsadm sapsys 512 May 5 11:35 IDS
lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS
drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp
drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 transМы также нашли документы &sap; Notes (0029227 и 0008401),
описывающие это поведение. Мы не столкнулись с подобными
проблемами при установке
&sap; 4.6C.[RFCRSWBOINI_IND_IND] в ходе R3SETUPВ ходе установки &sap; 4.6C,
эта ошибка возникла в результате другой ошибки, произошедшей
ранее по ходу установки. В данном случае придется просмотреть
соответствующие журнальные файлы и устранить исходную
проблему.Если после просмотра журнальных файлов выявлена только эта
ошибка (проверьте &sap; Notes), можно поменять
STATUS соответствующего шага с ERROR на OK (в файле
CENTRDB.R3S) и перезапустить
R3SETUP. После установки надо
выполнить отчет RSWBOINS из транзакции SE38.
Дополнительную информацию о стадиях RFCRSWBOINI
и RFCRADDBDIF см. в &sap; Note 0162266.[RFCRADDBDIF_IND_IND] в ходе R3SETUPЗдесь применяются те же ограничения: проверьте путем просмотра
журнальных файлов, что эта ошибка не вызвана какими-то предыдущими
проблемами.Если подтверждается, что применим документ &sap; Note 0162266,
просто поменяйте STATUS соответствующего
шага с ERROR на OK (в
файле CENTRDB.R3S) и перезапустите R3SETUP. После установки надо выполнить
отчет RADDBDIF из транзакции SE38.sigaction sig31: File size limit exceededЭто сообщение об ошибке выдается в ходе запуска процессов
&sap;disp+work.
Если &sap; запускается скриптом
startsap, запускаются отдельные подпроцессы,
выполняющие грязную работу по запуску всех остальных процессов
&sap;. В результате, сам скрипт
не получит уведомления, если что-то пойдет не так.Чтобы проверить, нормально ли запустились процессы
&sap;, посмотрите на состояние
процессов с помощью команды ps ax |
grep SID, которая выдаст
список всех процессов &oracle; и
&sap;. Если похоже, что некоторых
процессов не хватает или вы не можете подключиться к системе
&sap;, просмотрите соответствующие
журнальные файлы, которые можно найти в каталоге
/usr/sap/SID/DVEBMGSnr/work/.
Надо просматривать файлы dev_ms и
dev_disp.Сигнал 31 выдается, если объем памяти, совместно используемой
&oracle; и
&sap;, превосходит заданный в файле
конфигурации ядра, и от него можно избавиться, указав большее
значение:# большее значение для производственных систем 46C:
options SHMMAXPGS=393216
# меньшее значение, достаточное для 46B:
#options SHMMAXPGS=262144Сбой при запуске saposcolЕсть ряд проблем с программой saposcol
(версии 4.6D). Система &sap; использует
saposcol для сбора данных о производительности
системы. Эта программа не нужна для использования системы
&sap;, так что проблему можно отнести
к несерьезным. Более старые версии (4.6B) работают, но собирают
не все данные (многие вызовы просто возвращают 0, например,
для использования процессора).Дополнительные сведенияЕсли вы интересуетесь, как обеспечивается двоичная совместимость
с Linux, этот раздел для вас. Большинство материала взято из
электронного письма, адресованного Terry Lambert
tlambert@primenet.com в &a.chat; (ID письма:
<199906020108.SAA07001@usr09.primenet.com>).Как все это устроено?загрузчик выполняемых классовFreeBSD поддерживает абстракцию, называемую загрузчик
выполняемых классов. Фактически, он является первой
стадией системного вызова &man.execve.2;.На самом деле, FreeBSD имеет список загрузчиков вместо
одного, завершающийся загрузчиком #! для
запуска любых командных интерпретаторов и скриптов.Исторически сложилось, что единственный загрузчик в &unix;
системах проверял магическое число (чаще всего первые
4 или 8 байт файла), чтобы определить, известен ли формат
двоичного файла системе, и если да, то вызвал соответствующий
загрузчик.Если файл не опознавался системой как двоичный, системный
вызов &man.execve.2; возвращал ошибку, и текущий командный
интерпретатор начинал выполнять файл как скрипт.По умолчанию скрипт выполнялся текущим командным
интерпретатором.Позднее, &man.sh.1; был модифицирован, так, чтобы проверять
первые два символа в файле, и если они оказывались
:\n, то файл выполнялся как сценарий для
&man.csh.1; (утверждается, что SCO были первыми, кто сделал
эту модификацию).FreeBSD сейчас ведет себя по-другому: пробегает по списку
загрузчиков,включающему специальный загрузчик #!,
который вызывает нужный интерпретатор, указанный после этих символов
до следующего пробела, или /bin/sh, если
не нашел подходящего.ELFДля поддержки Linux ABI FreeBSD ищет магическое число,
соответствующее двоичному файлу ELF (на этой стадии не различаются
FreeBSD, &solaris;, Linux или любая другая ОС поддерживающая формат
ELF).SolarisДалее, ELF-загрузчик определяет марку (brand)
двоичного файла ELF (специальный комментарий в ELF-файле,
отсутствующий в двоичных файлах ELF SVR4/&solaris;).Соответственно, Linux программы должны быть
маркированы для Linux (например, с
помощью утилиты &man.brandelf.1;):&prompt.root; brandelf -t Linux fileКогда это сделано, загрузчик ELF выявит марку
Linux в файле.ELFbrandingКогда ELF-загрузчик находит маркуLinux, он заменяет соответствующий указатель в
структуре proc. Все системные вызовы
индексируются через этот указатель (в традиционной &unix; системе это
массив структур sysent[], содержащий системные
вызовы). Кроме того, процесс помечается для специальной обработки
вектора обработчиков сигналов, а также ряда других (небольших)
исправлений, которые осуществляются специальным модулем ядра для
поддержки Linux.Вектор системных вызовов Linux содержит, среди прочего, список
записей sysent[], адреса которых находятся в
модуле ядра.При выполнении системного вызова из двоичного файла Linux,
код обработчика разыменовывает указатель на функцию системного вызова
из структуры proc, и получает точки входа
системных вызовов Linux, а не FreeBSD.Плюс ко всему, в Linux–режиме динамически изменяется
корень файловой системы при поиске файлов; фактически
так же, как и параметр union при монтировании
файловых систем (не путать с unionfs!).
Сперва, файл ищется в каталоге
/compat/linux/исходное_полное_имя
и только затем, в случае неудачи, в
/исходное_полное_имя.
Это гарантирует, что программы, которым требуются другие программы,
смогут работать (например, весь набор инструментальных средств Linux
сможет работать в среде поддержки Linux ABI). Это также дает
возможность Linux программам выполнять FreeBSD команды, если не
найдется соответствующих Linux команд. Например, можно скопировать
FreeBSD &man.uname.1; в дерево каталогов
/compat/linux, и Linux-программы не смогут
разобраться, что они работают не в Linux.Фактически, имеется ядро Linux в ядре FreeBSD; различные
базовые функции, реализующие все услуги ядра, идентичны как
в записях таблицы системных вызовов FreeBSD, так и в записях
таблицы системных вызовов Linux: операции с файловой системой,
виртуальная память, средства доставки сигналов,
System V IPC … Единственное отличие в том, что
FreeBSD-программы получают интерфейсные функции
FreeBSD, а Linux-программы получают интерфейсные
функции Linux (в большинстве более старых ОС есть только их
собственные интерфейсные функции: функции берутся из статического
глобального массива структур sysent[], а не
из массива, полученного разыменованием динамически
проинициализированного указателя в структуре
proc процесса, выполняющего вызов).Какая же реализация ABI для FreeBSD родная? Это
не имеет значения. Единственное различие (на данный момент, в
будущем все может и, вероятно, изменится), пожалуй, в том, что
функции системных вызовов FreeBSD зашиты в ядро, а для Linux они
могут быть либо статически скомпонованы в ядро, либо получаться
через модуль ядра.Да, но можно ли назвать это эмуляцией? Нет. Это реализация ABI,
а не эмуляция. Как таковой, эмулятор (или симулятор)
отсутствует.В таком случае, почему же иногда говорят об
эмуляции Linux? Чтобы насолить
FreeBSD! Фактически, причина в том, что на момент первой реализации
не существовало слова, которое бы точнее описывало этот процесс.
Нельзя было сказать, что FreeBSD запускает приложения Linux (без
перекомпиляции или загрузки соответствующего модуля ядра это
невозможно). Но надо было как-то описать, что
загружается — отсюда и эмулятор Linux.