diff --git a/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml b/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml
index f0b301a687..e891150c84 100644
--- a/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Russian Documentation Project
$FreeBSD$
- $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml,v 1.10 2004/09/15 07:25:27 den Exp $
+ $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml,v 1.11 2004/11/22 13:49:55 den Exp $
Original revision: 1.114
-->
@@ -21,7 +21,7 @@
Brian N.Handy
- Первоначально предоставили
+ Первоначально предоставил Rich
@@ -35,22 +35,29 @@
Перевод на русский язык:
+
+
+ Валерий
+ Кравчук
+ Перевод на русский язык и редактирование:
+
+
-
Работа с приложениями, написанными для Linux
+
+ Двоичная совместимость с LinuxКраткий обзор
-
Linux - бинарная совместимость
- бинарная совместимость
+ двоичная совместимостьLinux
- FreeBSD предоставляет бинарную совместимость с несколькими другими
- &unix; подобными операционными системами, включая Linux.
- Возможно, Вы спрашиваете себя, зачем FreeBSD нужно уметь работать
- с приложениями, написанными для Linux. Ответ на этот вопрос достаточно
+ FreeBSD предоставляет двоичную совместимость с несколькими другими
+ &unix;–подобными операционными системами, включая Linux.
+ Возможно, вы спрашиваете себя, зачем FreeBSD нужно уметь работать
+ с приложениями, написанными для Linux? Ответ на этот вопрос достаточно
прост: многие компании и разработчики производят программное
обеспечение только для Linux, так как эта операционная система очень
быстро завоевала огромную популярность в компьютерном мире.
@@ -58,14 +65,15 @@
разработчикам с просьбами выпустить версии своих программ специально
для FreeBSD. Проблема в том, что большинство производителей
программного обеспечения не осознают, насколько бы увеличился их рынок
- сбыта, выпускай они FreeBSD версии наряду с Linux версиями, и
- продолжают разрабатывать только под Linux. Что же делать
- пользователям FreeBSD? В этой ситуации на помощь приходит Linux
- эмуляция.
+ сбыта, выпускай они также FreeBSD–версии, и продолжают разрабатывать
+ только под Linux. Что же делать пользователям FreeBSD? В этой
+ ситуации на помощь приходит двоичная совместимость FreeBSD с
+ Linux.
- Вкратце, FreeBSD позволяет Вам работать с 90% приложений для
- Linux без каких-либо модификаций последних. Среди них:
- &staroffice;, Linux версия
+ Вкратце, эта совместимость позволяет пользователям FreeBSD
+ работать с 90% приложений для Linux без каких-либо модификаций
+ последних. Среди этих приложений:
+ &staroffice;, Linux–версия
&netscape;,
&adobe; &acrobat;,
&oracle;, WordPerfect,
Doom, Quake,
- и многие другие. Есть сведения, что
- в некоторых ситуациях эти Linux программы показывали более высокую
- производительность при работе под FreeBSD, чем под Linux.
+ и многие другие. Есть сведения, что в некоторых ситуациях эти
+ Linux–программы показывали более высокую производительность при
+ работе под FreeBSD, чем под Linux.Linux
@@ -84,38 +92,34 @@
Конечно, существует некоторые особенности Linux, которые не
- поддерживаются в полной мере FreeBSD. Например, так обстоят дела с
- приложениями Linux, использующими файловую систему
- /proc, так как реализация последней сильно
- отличается от файловой системы /proc в FreeBSD.
- Существуют также системные вызовы, специфичные для &i386;, как,
- например, переключение в виртуальный режим 8086.
+ поддерживаются в полной мере под FreeBSD. Например, не будут
+ работать приложения Linux, использующие файловую систему
+ /proc (реализация которой отличается от файловой
+ системы /proc в ОС FreeBSD) или специфичные
+ вызовы &i386;, такие как переключение в виртуальный режим 8086.
При чтении этой главы вы узнаете:
- Как включить бинарную совместимость с Linux в
+ Как включить двоичную совместимость с Linux в
вашей системе.Как установить дополнительные совместно используемые
- библиотеки Linux.
+ (shared) библиотеки Linux.
- Как установить приложения Linux в систему
- FreeBSD.
+ Как установить приложения Linux в систему FreeBSD.
- Детали реализации совместимости с Linux в
- FreeBSD.
+ Детали реализации совместимости с Linux в ОС FreeBSD.
- Перед прочтением этой главы вам
- потребуется:
+ Перед прочтением этой главы вам потребуется:
@@ -132,9 +136,9 @@
KLD (загружаемый объект ядра)
- Бинарная совместимость с Linux не включена по умолчанию.
+ Двоичная совместимость с Linux не включена по умолчанию.
Простейший способ включения этой функциональности заключается
- в загрузке KLD объекта linux (Kernel
+ в загрузке KLD–объекта linux (Kernel
LoaDable object). Вы можете загрузить этот модуль,
просто набрав linux в командной строке.
@@ -144,7 +148,7 @@
linux_enable="YES"
- Для проверки того, загружен ли KLD, может быть использована
+ Для проверки того, загружен ли модуль, может быть использована
команда &man.kldstat.8;:&prompt.user; kldstat
@@ -158,13 +162,13 @@ Id Refs Address Size Name
Если по какой-либо причине вы не хотите или не можете загрузить
- KLD, то вы можете статически включить поддержку Linux в ядро
- посредством опции options COMPAT_LINUX в файле
- конфигурации ядра. Затем соберите и проинсталлируйте новое ядро,
+ KLD, вы можете статически включить поддержку Linux в ядро,
+ добавив опцию options COMPAT_LINUX в файл
+ конфигурации ядра. Затем соберите и установите новое ядро,
следуя описанию в .
- Установка необходимых Linux библиотек
+ Установка необходимых библиотек LinuxLinux
@@ -190,9 +194,9 @@ Id Refs Address Size Name
&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make install distclean
- Теперь Вы можете работать с приложениями для Linux. Некоторые
+ Теперь вы можете работать с приложениями для Linux. Некоторые
программы, возможно, будут сообщать о несоответствии подверсий
- некоторых системных библиотек. Однако, практически, это не
+ некоторых системных библиотек. Однако обычно это не
вызывает каких-либо неудобств.Возможно наличие нескольких версий порта Установка библиотек вручную
- Если у вас нет установленной коллекции портов, можно
+ Если у вас не установлена коллекция портов, можно
установить требуемые библиотеки вручную. Вам понадобятся
- разделяемые библиотеки для Linux, которые нужны программам, и
- runtime-компоновщик. Вам также потребуется создать теневой
- корень: директорию /compat/linux, где
- будут расположены Linux библиотеки. Если нужно загрузить
- какую-либо разделяемую библиотеку, FreeBSD сперва будет пытаться
- найти ее в этом дереве. Так, если программа загружает, например,
- /lib/libc.so, FreeBSD попытается открыть
- /compat/linux/lib/libc.so, и если такого
- файла не существует, будет пытаться открыть
+ совместно используемые библиотеки для Linux, которые нужны программам, и
+ runtime–компоновщик. Вам также потребуется создать теневой
+ корневой каталог, /compat/linux, где
+ будут расположены Linux–библиотеки. Если Linux–программе нужно
+ загрузить какую–либо совместно используемую библиотеку, FreeBSD сперва будет
+ пытаться найти ее в этом дереве. Так, если программа загружает,
+ например, /lib/libc.so, FreeBSD попытается
+ открыть /compat/linux/lib/libc.so, и если
+ такого файла не существует, будет пытаться открыть
/lib/libc.so. Разделяемые библиотеки должны
- находиться в теневом дереве, а не в пути, сообщаемым командой
- Linux ld.so.
+ находиться в теневом дереве, а не в каталогах, выдаваемых
+ загрузчиком Linux ld.so.
- По мере работы с различными Linux программами, у вас будет
- накапливаться некий базовый набор библиотек, которого будет
- достаточно для большинства существующих Linux приложений.
+ Обычно вам придется добавлять совместно используемые библиотеки, от
+ которых зависят Linux–программы, только при нескольких первых
+ установках приложений Linux на вашу систему FreeBSD. По мере
+ работы, у вас в системе накопится достаточный набор совместно используемых
+ библиотек Linux для запуска новых Linux-программ без
+ дополнительных действий.
@@ -235,17 +242,18 @@ Id Refs Address Size Name
порте ваше приложение все равно сообщает об отсутствии необходимой
библиотеки? Как узнать, какая именно нужна библиотека и где ее
взять? В принципе, есть два способа. Вам необходимо иметь
- привилегии суперпользователя для их осуществления.
+ привилегии пользователя root для их
+ осуществления.Если у вас есть доступ к машине, на которой установлен Linux,
- узнайте, какие библиотеки использует Linux приложение, и просто
- скопируйте из на свою машину. Например:
+ узнайте, какие библиотеки использует Linux–приложение, и просто
+ скопируйте из на свою машину. Рассмотрим следующий пример:
- Допустим, вы скачали по FTP Linux версию
- Doom (на Linux
- машине). Вы можете узнать, какие разделяемые библиотеки нужны
- Doom при помощи команды
+ Допустим, вы скачали по FTP Linux–версию
+ Doom и установили ее на Linux–машине.
+ Вы можете узнать, какие совместно используемые библиотеки нужны
+ Doom, с помощью команды
ldd linuxdoom:&prompt.user; ldd linuxdoom
@@ -255,12 +263,11 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29символические ссылки
- Вам потребуются все файлы, перечисленные в последней
- колонке. Скопируйте их в директорию
- /compat/linux на вашей системе, а также
- создайте символические ссылки на эти файлы, с именами ссылок из
- первой колонки соответственно. В итоге у вас на машине должны
- быть следующие файлы:
+ Вам потребуются все файлы, перечисленные в последнем
+ столбце. Скопируйте их в дерево /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
@@ -271,26 +278,31 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/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:
+ версии, судя по результатам команды
+ ldd:
libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29
- Если подверсии немного отличаются, копировать
- /lib/libc.so.4.6.29 необязательно, так
- как программа, скорее всего, будет нормально работать и с
- устаревшей версией. Тем не менее, вы можете заменить
+ Если версии немного отличаются в последней цифре,
+ копировать /lib/libc.so.4.6.29
+ необязательно, так как программа, скорее всего, будет
+ нормально работать и с немного устаревшей версией.
+ Тем не менее, вы можете заменить
libc.so:/compat/linux/lib/libc.so.4.6.29
@@ -301,7 +313,7 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29
Символические ссылки важны только
- для Linux программ. Runtime-компоновщик FreeBSD
+ для Linux–программ. Runtime–компоновщик FreeBSD
самостоятельно подберет правильные номера версий библиотек,
и вам не нужно об этом беспокоиться.
@@ -311,45 +323,44 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29
- Установка Linux ELF исполняемых файлов
+ Установка двоичных файлов Linux ELFLinux
- ELF исполняемые файлы
+ двоичные файлы ELF
- Для ELF программ иногда требуется сделать так называемый
- branding. Если при попытке запустить ELF-файл, Вы
- получаете следующее сообщение об ошибке:
+ Для ELF-файлов иногда требуется сделать так называемый
+ branding (маркировать его). Если попытаться
+ запустить немаркированный ELF-файл, вы получите следующее сообщение
+ об ошибке:
- &prompt.user; ./linux-elf-программа
+ &prompt.user; ./моя-linux-elf-программа
ELF binary type not known
Abort
- то нужно изменить тип исполняемого файла, чтобы ядро FreeBSD
- правильно определило, что это Linux программа. Это можно сделать
- при помощи утилиты &man.brandelf.1;:
+ Чтобы помочь ядру FreeBSD отличить ELF-файл FreeBSD от
+ двоичного файла Linux, используется утилита &man.brandelf.1;:
- &prompt.user; brandelf -t Linux linux-elf-программа
+ &prompt.user; brandelf -t Linux моя-linux-elf-программаGNU toolchain
- В настоящее время GNU toolchain помещает необходимую информацию
- в исполняемые файлы ELF автоматически, поэтому необходимость
- в этом действии случается все реже и реже, и в недалеком
- будущем вы вряд ли прибегнете к нему вообще.
+ В настоящее время набор инструментальных средств GNU
+ (GNU toolchain) помещает необходимую маркировочную информацию
+ в двоичные ELF-файлы автоматически, поэтому необходимость
+ в этом действии возникает всё реже.
- Распознавание доменных имен
+ Конфигурирование распознавания имен хостов
- Если DNS не настроен или недоступен, или вы получаете это
- сообщение:
+ Если DNS не работает или вы получаете это сообщение:resolv+: "bind" is an invalid keyword resolv+:
"hosts" is an invalid keyword
- то вам нужно создать (модифицировать) файл
+ то вам нужно создать (изменить) файл
/compat/linux/etc/host.conf, содержащий:order hosts, bind
@@ -358,10 +369,10 @@ multi onТаким образом, вы указываете, то сначала производится поиск в
файле /etc/hosts, а только затем запрашивается
DNS. Когда файл /compat/linux/etc/host.conf
- отсутствует, Linux приложения находят файл
+ отсутствует, Linux–приложения находят файл
/etc/host.conf для FreeBSD и сообщают о
несовместимом синтаксисе. Если вы не настраивали сервер имен
- (/etc/resolv.conf), уберите
+ с помощью файла /etc/resolv.conf, уберите
bind из файла
/compat/linux/etc/host.conf.
@@ -392,30 +403,30 @@ multi on
Mathematica
- Ниже описано, как установить Linux версию пакета
+ Ниже описано, как установить Linux–версию пакета
&mathematica; 4.X
на систему FreeBSD.
- Linux версия &mathematica; отлично
+ Linux–версия &mathematica; отлично
работает под FreeBSD, однако
- исполняемые файлы, поставляемые Wolfram, должны быть модифицированы
+ выполняемые файлы, поставляемые Wolfram, должны быть маркированы
утилитой &man.brandelf.1;, чтобы FreeBSD знала о необходимости
использования Linux ABI для их выполнения.
- Linux версия пакета &mathematica;
- или &mathematica; для студентов
- может быть заказана непосредственно через Wolfram по адресу .
+ Linux–версию пакета &mathematica;
+ или &mathematica; for Students
+ можно заказать непосредственно в компании Wolfram по адресу
+ .
- Модификация исполняемых файлов
+ Маркировка двоичных файлов Linux
- Исполняемые файлы пакета &mathematica;
- находятся в директории
- Unix на компакт диске с дистрибутивом.
- Скопируйте эту директорию (вместе со всеми подкаталогами) на ваш
- жесткий диск, чтобы модифицировать (утилитой &man.brandelf.1;)
- исполняемые файлы перед инсталляцией:
+ Двоичные файлы Linux находятся в каталоге
+ Unix на компакт-диске с дистрибутивом
+ &mathematica; от Wolfram.
+ Скопируйте этот каталог (вместе со всеми подкаталогами) на ваш
+ жесткий диск, чтобы промаркировать (утилитой &man.brandelf.1;)
+ двоичные файлы Linux перед инсталляцией:&prompt.root; mount /cdrom
&prompt.root; cp -rp /cdrom/Unix/ /localdir/
@@ -428,76 +439,74 @@ multi on
&prompt.root; cd /localdir/Installers/Linux/
&prompt.root; ./MathInstaller
- Вы также можете установить ELF brand по умолчанию для всех
- приложений Linux, которым это требуется, с помощью команды:
+ Вы также можете установить марку ELF Linux по умолчанию для всех
+ немаркированных двоичных файлов с помощью команды:&prompt.root; sysctl kern.fallback_elf_brand=3
- FreeBSD будет считать, что все программы, не
- обработанные &man.brandelf.1; используют Linux ABI и вы сможете
+ FreeBSD будет считать, что все немаркированные двоичные
+ ELF-файлы используют Linux ABI, и вы сможете
запустить MathInstaller прямо с CDROM.
- Пароль к пакету &mathematica;
+ Получение пароля к пакету &mathematica;
- Вам необходимо зарегистрировать свою копию пакета
- &mathematica; и
- получить от Wolfram специальный пароль, соответствующий
+ Прежде чем запускать &mathematica;,
+ вам необходимо получить от компании Wolfram пароль, соответствующий
идентификатору машины.Ethernet
- MAC адрес
+ MAC-адресПосле того, как вы установили необходимые библиотеки и
распаковали файлы &mathematica;,
- получите идентификатор
- машины, запустив программу mathinfo в
- инсталляционной директории. Идентификатор машины зависит от
+ получите идентификатор машины, запустив
+ программу mathinfo в
+ инсталляционном каталоге. Идентификатор машины зависит от
MAC-адреса вашей первой Ethernet-карты.&prompt.root; cd /localdir/Files/SystemFiles/Installation/Binaries/Linux
&prompt.root; mathinfo
disco.example.com 7115-70839-20412
- При регистрации, либо по телефону или факсу, либо по
- электронной почте, вы сообщаете идентификатор
- машины, а в ответ получаете пароль, состоящий из нескольких
- чисел. Введите этот пароль при первом запуске
+ При регистрации по электронной почте, по телефону или по факсу
+ вы сообщаете идентификатор машины, а в ответ
+ получаете пароль, состоящий из нескольких групп чисел. Введите
+ этот пароль при первом запуске
&mathematica;, как и для
любой другой платформы.
- Подключение интерфейс &mathematica; через сеть
+ Использование интерфейса &mathematica; по сети&mathematica; использует специальные
- шрифты для отображения
- некоторых символов, которые отсутствуют в стандартных шрифтах
- (символы интегралов, сумм, греческий алфавит и другие). Протокол X
- требует, чтобы эти шрифты были установлены
+ шрифты для отображения некоторых символов, которые отсутствуют в
+ стандартных шрифтах (символы интегралов, сумм, греческий алфавит и
+ другие). Протокол X требует, чтобы эти шрифты были установлены
локально. Это означает, что вы должны
- скопировать эти шрифты с компакт диска или сетевого узла
- &mathematica; на ваш
- жесткий диск. Обычно, все шрифты должны находиться в каталоге
- /cdrom/Unix/Files/SystemFiles/Fonts компакт
- диска или
+ скопировать эти шрифты с компакт-диска или хоста, на котором
+ установлена &mathematica;, на вашу
+ машину. Обычно эти шрифты находятся в каталоге
+ /cdrom/Unix/Files/SystemFiles/Fonts
+ компакт-диска или в каталоге
/usr/local/mathematica/SystemFiles/Fonts на
- винчестере. Собственно файлы со шрифтами находятся в подкаталогах
+ диске. Собственно файлы со шрифтами находятся в подкаталогах
Type1 и X. О том, как их
использовать, читайте ниже.
- Можно просто скопировать их в один из существующих подкаталогов
- в директории /usr/X11R6/lib/X11/fonts. В этом
- случае, вам потребуется отредактировать файл
+ Можно просто скопировать их в один из существующих каталогов
+ шрифтов в каталоге /usr/X11R6/lib/X11/fonts.
+ В этом случае придётся отредактировать файл
fonts.dir, добавив в него названия шрифтов и
- изменив число шрифтов в первой строке. Или вы можете запустить
+ изменив число шрифтов в первой строке. Можно также запустить
программу &man.mkfontdir.1;, находясь в том каталоге,
куда вы скопировали шрифты.
- Есть альтернативный способ: скопировать директории в каталог
+ Есть альтернативный способ: скопировать каталоги в
/usr/X11R6/lib/X11/fonts:&prompt.root; cd /usr/X11R6/lib/X11/fonts
@@ -518,7 +527,7 @@ disco.example.com 7115-70839-20412
&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; xset fp rehash
- Если вы используете &xfree86;,
+ Если вы используете сервер &xfree86;,
то можно просто прописать эти
каталоги в файле XF86Config.
@@ -532,15 +541,397 @@ disco.example.com 7115-70839-20412
- Installing &maple; *
+
+
+
+ Aaron
+ Kaplan
+
+ Предоставил
+
+
+
+
+ Robert
+ Getschmann
+
+ Благодарности:
+
+
+
+ Установка &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 (которая защищена
+ лицензионным ключом).
+
+
- Installing &matlab; *
+ Установка &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 и начала использования этой программы.
+
@@ -570,18 +961,20 @@ disco.example.com 7115-70839-20412
- Настройка Linux окружения
+ Установка Linux–среды
- Удостоверьтесь, что порты emulators/linux_base и
+ Удостоверьтесь, что порты
+ emulators/linux_base и
devel/linux_devtools установлены
- на вашей системе. Если у вас возникнут трудности с этими портами,
- воспользуйтесь более ранней их версией.
+ на вашей системе. Если у вас возникнут трудности с этими портами,
+ воспользуйтесь пакетами или более ранними их версиями из
+ коллекции портов.
- Если вы хотите использовать intelligent agent, также
- понадобится TCL пакет от Red Hat:
- tcl-8.0.3-20.i386.rpm. Для этого
- воспользуйтесь следующей командой RPM
+ Если вы хотите использовать интеллектуальный агент (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 пакет
@@ -591,14 +984,14 @@ disco.example.com 7115-70839-20412
- Настройка окружения &oracle;
+ Создание среды &oracle;Прежде чем вы сможете установить
- &oracle;, вам необходимо
- обеспечить соответствующее окружение. Ниже дана информация, что
- именно нужно сделать, чтобы успешно запускать
- &oracle; для Linux под FreeBSD,
- а не то, что написано в фирменном руководстве по установке
+ &oracle;, необходимо настроить
+ соответствующую среду. В этом документе описано, что
+ специально нужно сделать, чтобы запустить
+ &oracle; для Linux под FreeBSD –
+ это не пересказ официального руководства по установке
&oracle;.
@@ -606,14 +999,14 @@ disco.example.com 7115-70839-20412
настройка ядра
- Как описывается в руководстве по установке
+ Как описано в руководстве по установке
&oracle;, необходимо
- установить максимальный размер разделяемой памяти. Не используйте
+ установить максимальный размер совместно используемой (shared) памяти. Не используйте
SHMMAX под FreeBSD. SHMMAX
- высчитывается, исходя из SHMMAXPGS и
+ просто вычисляется, исходя из SHMMAXPGS и
PGSIZE. Следовательно, нужно задавать
SHMMAXPGS. За информацией о прочих опциях
- обратитесь к фирменному руководству. Пример настроек:
+ обратитесь к официальному руководству. Пример настроек:options SHMMAXPGS=10000
options SHMMNI=100
@@ -628,7 +1021,7 @@ options SEMMSL=61Не забудьте добавить следующие строки в файл конфигурации
ядра:
-options SYSVSHM # разделяемая память SysV
+options SYSVSHM # совместно используемая память SysV
options SYSVSEM # семафоры SysV
options SYSVMSG # межпроцессное взаимодействие SysV
@@ -648,12 +1041,12 @@ options SYSVMSG #
- Переменные окружения
+ Переменные среды
- Кроме стандартных переменных окружения
+ Кроме стандартных переменных среды
&oracle;, таких как
ORACLE_HOME и ORACLE_SID, вам нужно
- будет установить следующие дополнительные переменные:
+ будет установить следующие переменные среды:
@@ -697,7 +1090,7 @@ $ORACLE_HOME/bin
- Желательно устанавливать их в файле
+ Желательно устанавливать все переменные среды в файле
.profile. Вот реальный пример:ORACLE_BASE=/oracle; export ORACLE_BASE
@@ -718,7 +1111,7 @@ export PATHУстановка &oracle;
- Из-за небольшой несовместимости с Linux эмулятором, вам нужно
+ Из-за небольшой несовместимости с Linux–эмулятором, вам нужно
будет создать подкаталог .oracle в каталоге
/var/tmp прежде, чем можно будет начать
установку. Либо сделайте ее владельцем пользователя
@@ -728,12 +1121,12 @@ export PATH
какие-либо трудности все же возникли, проверьте еще раз все
конфигурационные файлы и/или целостность дистрибутива
&oracle;. После окончания установки
- &oracle; приложите патчи
- (смотрите следующие два раздела).
+ &oracle; примените патчи,
+ описанные в следующих двух подразделах.Одна из часто возникающих проблем — неправильно
- установленный TCP адаптер. В результате, невозможно запустить TCP
- сервисы. Вот решение проблемы:
+ установленный адаптер TCP-протокола. В результате, невозможно
+ запустить процессы прослушивания TCP. Вот решение проблемы:&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk ntcontab.o
@@ -745,14 +1138,14 @@ export PATH
Не забудьте повторно запустить root.sh!
- Модификация root.sh
+ Изменение root.shПри установке &oracle;
- необходимо выполнить некоторые действия
- (имея при этом привилегии суперпользователя). Фактически это
- сводится к выполнению скрипта root.sh,
- который находится в директории orainst.
- Перед запуском, приложите к нему следующий патч (исправляет
+ необходимо выполнить некоторые действия от имени
+ пользователя root. Они записаны в
+ скрипте командного интерпретатора root.sh,
+ который находится в каталоге orainst.
+ Перед запуском, примените к нему следующий патч (исправляет
местонахождение утилиты chown), либо запускайте его в командном
интерпретаторе Linux.
@@ -775,19 +1168,19 @@ export PATH
# Define variables to be used in this script
Если вы устанавливаете &oracle;
- не с компакт диска, можно модифицировать исходный файл
+ не с компакт–диска, можно изменить исходный файл
root.sh. Он называется
rthd.sh и находится в каталоге
orainst.
- Модификация genclntsh
+ Изменение genclntshСкрипт genclntsh используется для того,
чтобы создать единую совместно используемую клиентскую библиотеку,
- которая используется для создания демонстраций. Приложите следующий
- патч, чтобы закомментировать определение переменной
+ которая используется для создания демонстраций. Примените
+ следующий патч, чтобы закомментировать определение переменной
PATH:*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
@@ -820,41 +1213,2132 @@ export PATH
+
+
+
+ Holger
+ Kipp
+ Предоставил
+
+
+
+
+
+ Valentino
+ Vaschetto
+ Исходную версию преобразовал в SGML
+
+
+
- Installing &sap.r3; *
+ Установка &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, Solaris
+
+
+
+ RDBMS51007558Oracle / RDBMS 8.0.5.X /
+ Linux
+
+
+
+ EXPORT151010208IDES / DB-Export /
+ Диск 1 из 6
+
+
+
+ EXPORT251010209IDES / DB-Export /
+ Диск 2 из 6
+
+
+
+ EXPORT351010210IDES / DB-Export /
+ Диск 3 из 6
+
+
+
+ EXPORT451010211IDES / DB-Export /
+ Диск 4 из 6
+
+
+
+ EXPORT551010212IDES / DB-Export /
+ Диск 5 из 6
+
+
+
+ EXPORT651010213IDES / 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, Linux
+
+
+
+ RDBMS51012930Oracle 8.1.7/ RDBMS /
+ Linux
+
+
+
+ EXPORT151013953Release 4.6C SR2 / Export
+ / Диск 1 из 4
+
+
+
+ EXPORT151013953Release 4.6C SR2 / Export
+ / Диск 2 из 4
+
+
+
+ EXPORT151013953Release 4.6C SR2 / Export
+ / Диск 3 bp 4
+
+
+
+ EXPORT151013953Release 4.6C SR2 / Export
+ / Диск 4 из 4
+
+
+
+ LANG151013954Release 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
+ Comments
+
+
+
+ 0201147INST: 4.6C R/3 Inst. on UNIX -
+ Oracle
+
+
+
+ 0373203Update / Migration Oracle 8.0.5 -->
+ 8.0.6/8.1.6 LINUX
+
+
+
+ 0072984Release of Digital UNIX 4.0B for
+ Oracle
+
+
+
+ 0130581R3SETUP step DIPGNTAB terminates
+
+
+
+ 0144978Your system has not been installed
+ correctly
+
+
+
+ 0162266Questions 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
+ typefaces
+
+
+
+ 0171356SAP Software on Linux: Essential
+ Comments
+
+
+
+ 0195603RedHat 6.1 Enterprise version:
+ Known problems
+
+
+
+ 0212876The new archiving tool SAPCAR
+
+
+
+ 0300900Linux: Released DELL Hardware
+
+
+
+ 0377187RedHat 6.2: important remarks
+
+
+
+ 0387074INST: R/3 4.6C SR2 Installation on
+ UNIX
+
+
+
+ 0387077INST: R/3 4.6C SR2 Inst. on UNIX -
+ Oracle
+
+
+
+ 0387078SAP Software on UNIX: OS Dependencies
+ 4.6C SR2
+
+
+
+
+
+
+
+
+ Требования к аппаратному обеспечению
+
+ Следующего оборудования достаточно для установки
+ &sap.r3; System. Для производственного
+ использования необходима более точная оценка параметров:
+
+
+
+
+
+ Компонент
+ 4.6B
+ 4.6C
+
+
+
+
+ Процессор
+ 2 x 800MHz &pentium; III
+ 2 x 800MHz &pentium; III
+
+
+
+ Память
+ 1GB ECC
+ 2GB 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. Есть несколько способов сделать
+ это (FreeBSD 4.3 была установлена по FTP,
+ FreeBSD 4.5 - непосредственно с RELEASE CD); подробнее
+ см. .
+
+
+ Компоновка дисков
+
+ Для простоты диски при установке
+ &sap.r3; 46B и &sap.r3; 46C
+ SR2 использовались одинаково. Изменились только
+ имена устройств, поскольку установка выполнялась на разное
+ оборудование (/dev/da и
+ /dev/amr, соответственно, так что при
+ использовании AMI &megaraid; будут задействованы устройства
+ /dev/amr0s1a вместо /dev/da0s1a):
+
+
+
+
+
+ Файловая система
+ Размер (в блока по 1 Кбайту)
+ Размер (Гбайт)
+ Смонтирована в
+
+
+
+
+ /dev/da0s1a
+ 1.016.303
+ 1
+ /
+
+
+
+ /dev/da0s1b
+
+ 6
+ swap
+
+
+
+ /dev/da0s1e
+ 2.032.623
+ 2
+ /var
+
+
+
+ /dev/da0s1f
+ 8.205.339
+ 8
+ /usr
+
+
+
+ /dev/da1s1e
+ 45.734.361
+ 45
+ /compat/linux/oracle
+
+
+
+ /dev/da1s1f
+ 2.032.623
+ 2
+ /compat/linux/sapmnt
+
+
+
+ /dev/da1s1g
+ 2.032.623
+ 2
+ /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-системы.
+
+
+
+
+ Установка необходимых пакетов RPM
+ RPM
+
+ Для запуска программы 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; подробнее об этом см. на
+ странице справочника the &man.linprocfs.5;. Еще можно установить
+ параметр kern.fallback_elf_brand=3 в файле
+ /etc/sysctl.conf.
+
+
+
+
+ Создание среды &sap.r3;
+
+
+ Создание необходимых файловых систем и точек монтирования
+
+ Для простой установки достаточно создать следующие файловые
+ системы:
+
+
+
+
+
+ точка монтирования
+ размер в Гбайтах
+
+
+
+
+ /compat/linux/oracle
+ 45 GB
+
+
+
+ /compat/linux/sapmnt
+ 2 GB
+
+
+
+ /compat/linux/usr/sap
+ 2 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, поскольку
+ эта система предназначалась для промышленного использования.
+ Поэтому нам понадобились следующие группы (идентификаторы групп
+ могут отличаться, мы просто указали наши значения, использованные
+ при установке):
+
+
+
+
+
+ идентификатор группы
+ имя группы
+ описание
+
+
+
+
+ 100
+ dba
+ Администратор базы данных
+
+
+ 101
+ sapsys
+ Система &sap;
+
+
+ 102
+ oper
+ Оператор базы данных
+
+
+
+
+
+ Для стандартной установки
+ &oracle; используется только группа
+ dba. В качестве группы
+ oper используется та же группа
+ dba (подробнее об этом см. в
+ документации &oracle; и
+ &sap;).
+
+ Нам также нужны следующие пользователи:
+
+
+
+
+
+ идентификатор пользователя
+ имя пользователя
+ общий вид имени
+ группа
+ дополнительные группы
+ описание
+
+
+
+
+ 1000
+ idsadm/prdadm
+ sidadm
+ sapsys
+ oper
+ Администратор &sap;
+
+
+ 1002
+ oraids/oraprd
+ orasid
+ dba
+ oper
+ Администратор &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 4.5 на &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]
+ IDSEnter
+
+
+ Enter SAP Instance Number
+ [00]
+ Enter
+
+
+ Enter SAPMOUNT Directory
+ [/sapmnt]
+ Enter
+
+
+ Enter name of SAP central host
+ [troubadix.domain.de]
+ Enter
+
+
+ Enter name of SAP db host
+ [troubadix]
+ Enter
+
+
+ Select character set
+ [1] (WE8DEC)
+ Enter
+
+
+ Enter Oracle server version (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.6
+
+ 1Enter
+
+
+ Extract Oracle Client archive
+ [1] (Yes, extract)
+ Enter
+
+
+ Enter path to KERNEL CD
+ [/sapcd]
+ /oracle/IDS/sapreorg/KERNEL
+
+
+ Enter path to RDBMS CD
+ [/sapcd]
+ /oracle/IDS/sapreorg/RDBMS
+
+
+ Enter path to EXPORT1 CD
+ [/sapcd]
+ /oracle/IDS/sapreorg/EXPORT1
+
+
+ Directory to copy EXPORT1 CD
+ [/oracle/IDS/sapreorg/CD4_DIR]
+ Enter
+
+
+ Enter path to EXPORT2 CD
+ [/sapcd]
+ /oracle/IDS/sapreorg/EXPORT2
+
+
+ Directory to copy EXPORT2 CD
+ [/oracle/IDS/sapreorg/CD5_DIR]
+ Enter
+
+
+ Enter path to EXPORT3 CD
+ [/sapcd]
+ /oracle/IDS/sapreorg/EXPORT3
+
+
+ Directory to copy EXPORT3 CD
+ [/oracle/IDS/sapreorg/CD6_DIR]
+ Enter
+
+
+ Enter path to EXPORT4 CD
+ [/sapcd]
+ /oracle/IDS/sapreorg/EXPORT4
+
+
+ Directory to copy EXPORT4 CD
+ [/oracle/IDS/sapreorg/CD7_DIR]
+ Enter
+
+
+ Enter path to EXPORT5 CD
+ [/sapcd]
+ /oracle/IDS/sapreorg/EXPORT5
+
+
+ Directory to copy EXPORT5 CD
+ [/oracle/IDS/sapreorg/CD8_DIR]
+ Enter
+
+
+ Enter path to EXPORT6 CD
+ [/sapcd]
+ /oracle/IDS/sapreorg/EXPORT6
+
+
+ Directory to copy EXPORT6 CD
+ [/oracle/IDS/sapreorg/CD9_DIR]
+ Enter
+
+
+ Enter amount of RAM for SAP + DB
+
+ 850Enter (in Megabytes)
+
+
+ Service Entry Message Server
+ [3600]
+ Enter
+
+
+ Enter Group-ID of sapsys
+ [101]
+ Enter
+
+
+ Enter Group-ID of oper
+ [102]
+ Enter
+
+
+ Enter Group-ID of dba
+ [100]
+ Enter
+
+
+ Enter User-ID of sidadm
+ [1000]
+ Enter
+
+
+ Enter User-ID of orasid
+ [1002]
+ Enter
+
+
+ Number 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]
+ PRDEnter
+
+
+ Enter SAP Instance Number
+ [00]
+ Enter
+
+
+ Enter SAPMOUNT Directory
+ [/sapmnt]
+ Enter
+
+
+ Enter name of SAP central host
+ [majestix]
+ Enter
+
+
+ Enter Database System ID
+ [PRD]
+ PRDEnter
+
+
+ Enter name of SAP db host
+ [majestix]
+ Enter
+
+
+ Select character set
+ [1] (WE8DEC)
+ Enter
+
+
+ Enter Oracle server version (2) Oracle 8.1.7
+
+ 2Enter
+
+
+ Extract Oracle Client archive
+ [1] (Yes, extract)
+ Enter
+
+
+ Enter path to KERNEL CD
+ [/sapcd]
+ /oracle/PRD/sapreorg/KERNEL
+
+
+ Enter amount of RAM for SAP + DB
+ 2044
+ 1800Enter (in Megabytes)
+
+
+ Service Entry Message Server
+ [3600]
+ Enter
+
+
+ Enter Group-ID of sapsys
+ [100]
+ Enter
+
+
+ Enter Group-ID of oper
+ [101]
+ Enter
+
+
+ Enter Group-ID of dba
+ [102]
+ Enter
+
+
+ Enter User-ID of oraprd
+ [1002]
+ Enter
+
+
+ Enter User-ID of prdadm
+ [1000]
+ Enter
+
+
+ LDAP support
+
+ 3Enter (no support)
+
+
+ Installation step completed
+ [1] (continue)
+ Enter
+
+
+ Choose 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.rpm
+ compat-glibc-5.2-2.0.7.2.i386.rpm
+ compat-egcs-5.2-1.0.3a.1.i386.rpm
+ compat-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 sapr3
+ sapEnter
+
+
+ Confirum Password for sapr3
+ sapEnter
+
+
+ Enter Password for sys
+ change_on_installEnter
+
+
+ Confirm Password for sys
+ change_on_installEnter
+
+
+ Enter Password for system
+ managerEnter
+
+
+ Confirm Password for system
+ managerEnter
+
+
+
+
+
+ Мы столкнулись с несколькими проблемами с
+ 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 Entity
+ STMS
+
+
+ Создайте/Отредактируйте профиль для системы
+ 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_extension
+ 250000000
+
+
+ abap/heap_area_dia
+ 300000000
+
+
+ abap/heap_area_nondia
+ 400000000
+
+
+ em/initial_size_MB
+ 256
+
+
+ em/blocksize_kB
+ 1024
+
+
+ ipc/shm_psize_40
+ 70000000
+
+
+
+
+
+ &sap; Note 0013026:
+
+
+
+
+
+ Имя
+ Значение
+
+
+
+
+ ztta/dynpro_area
+ 2500000
+
+
+
+
+
+ &sap; Note 0157246:
+
+
+
+
+
+ Имя
+ Значение
+
+
+
+
+ rdisp/ROLL_MAXFS
+ 16000
+
+
+ rdisp/PG_MAXFS
+ 30000
+
+
+
+
+
+
+ При указанных выше параметрах в системе с 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 4.5.
+ Причина в том, что сервер &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> exit
+
+
+
+
+ ORA-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 эмуляция, этот раздел для
- вас. Большинство материала взято из электронного письма, адресованного
- &a.chat; by Terry Lambert tlambert@primenet.com (ID
- письма: <199906020108.SAA07001@usr09.primenet.com>).
+ Если вы интересуетесь, как обеспечивается двоичная совместимость
+ с Linux, этот раздел для вас. Большинство материала взято из
+ электронного письма, адресованного в &a.chat; by Terry Lambert
+ tlambert@primenet.com (ID письма:
+ <199906020108.SAA07001@usr09.primenet.com>).Как все это устроено?
- загрузчик исполнимых классов
+ загрузчик выполняемых классовFreeBSD поддерживает абстракцию, называемую загрузчик
- исполнимых классов, который фактически является первой
+ выполняемых классов. Фактически, он является первой
стадией системного вызова &man.execve.2;.
- На самом деле, FreeBSD имеет несколько загрузчиков вместо
- одного, который, в случае неудачи, выполняет программу как
- сценарий (скрипт).
+ На самом деле, FreeBSD имеет список загрузчиков вместо
+ одного, завершающийся загрузчиком #! для
+ запуска любых командных интерпретаторов и скриптов.Исторически сложилось, что единственный загрузчик в &unix;
системах проверял магическое число (чаще всего первые
4 или 8 байт файла), чтобы определить, известен ли формат
- исполняемого файла системе, и если да, то вызвал соответствующий
+ двоичного файла системе, и если да, то вызвал соответствующий
загрузчик.
- Если файл не опознавался системой как исполнимый, &man.execve.2;
- возвращал ошибку, и текущий командный интерпретатор начинал
- выполнять файл как скрипт.
+ Если файл не опознавался системой как двоичный, системный
+ вызов &man.execve.2; возвращал ошибку, и текущий командный
+ интерпретатор начинал выполнять файл как скрипт.
+
+ По умолчанию скрипт выполнялся текущим командным
+ интерпретатором.Позднее, &man.sh.1; был модифицирован, так, чтобы проверять
первые два символа в файле, и если они оказывались
@@ -862,23 +3346,22 @@ export PATH
&man.csh.1; (утверждается, что SCO были первыми, кто сделал
эту модификацию).
- FreeBSD ведет себя по-другому: пробегает по списку загрузчиков,
- включая специальный #! загрузчик, который
- вызывает нужный интерпретатор или /bin/sh, если
+ FreeBSD сейчас ведет себя по-другому: пробегает по списку
+ загрузчиков,включающему специальный загрузчик #!,
+ который вызывает нужный интерпретатор, указанный после этих символов
+ до следующего пробела, или /bin/sh, если
не нашел подходящего.ELF
- Формат исполняемого файла FreeBSD определяет по
- магическому числу. На этой стадии пока не
- различается, для какой операционной системы предназначен файл
- (Linux, &solaris;, или любой другой, использующей ELF-формат
- исполняемых файлов).
+ Для поддержки Linux ABI FreeBSD ищет магическое число,
+ соответствующее двоичному файлу ELF (на этой стадии не различаются
+ FreeBSD, &solaris;, Linux или любая другая ОС поддерживающая формат
+ ELF).Solaris
- Далее, ELF-загрузчик определяет марку
- (специальный комментарий; отсутствует в исполняемых файлах
- SVR4/&solaris;) исполняемого файла, то есть для какой операционной
- системы он предназначен.
+ Далее, ELF-загрузчик определяет марку (brand)
+ двоичного файла ELF (специальный комментарий в ELF-файле,
+ отсутствующий в двоичных файлах ELF SVR4/&solaris;).Соответственно, Linux программы должны быть
маркированы для Linux (например, с
@@ -886,6 +3369,8 @@ export PATH
&prompt.root; brandelf -t Linux file
+ Когда это сделано, загрузчик ELF выявит марку
+ Linux в файле.ELFbranding
@@ -895,55 +3380,72 @@ export PATH
Linux, он заменяет соответствующий указатель в
структуре proc. Все системные вызовы
индексируются через этот указатель (в традиционной &unix; системе это
- массив sysent[], содержащий системные вызовы).
- Некоторые особые ситуации и системные вызовы обрабатываются
- специальным модулем ядра поддержки Linux.
+ массив структур sysent[], содержащий системные
+ вызовы). Кроме того, процесс помечается для специальной обработки
+ вектора обработчиков сигналов, а также ряда других (небольших)
+ исправлений, которые осуществляются специальным модулем ядра для
+ поддержки Linux.
- Плюс ко всему, Linux эмулятор динамически изменяет
+ Вектор системных вызовов Linux содержит, среди прочего, список
+ записей sysent[], адреса которых находятся в
+ модуле ядра.
+
+ При выполнении системного вызова из двоичного файла Linux,
+ код обработчика разыменовывает указатель на функцию системного вызова
+ из структуры proc, и получает точки входа
+ системных вызовов Linux, а не FreeBSD.
+
+ Плюс ко всему, в Linux–режиме динамически изменяется
корень файловой системы при поиске файлов; фактически
так же, как и параметр union при монтировании
файловых систем (не путать с unionfs!).
Сперва, файл ищется в каталоге
- /compat/linux/original-path
+ /compat/linux/исходное_полное_имя
и только затем, в случае неудачи, в
- /original-path. Это
- дает возможность Linux программам выполнять FreeBSD команды, если не
- найдется соответствующих Linux команд. Например, скопировав FreeBSD
- &man.uname.1; в каталог /compat/linux/bin/,
- можно заставить Linux программы сообщать, что они
- запускаются под FreeBSD.
+ /исходное_полное_имя.
+ Это гарантирует, что программы, которым требуются другие программы,
+ смогут работать (например, весь набор инструментальных средств Linux
+ сможет работать в среде поддержки Linux ABI). Это также дает
+ возможность Linux программам выполнять FreeBSD команды, если не
+ найдется соответствующих Linux команд. Например, можно скопировать
+ FreeBSD &man.uname.1; в дерево каталогов
+ /compat/linux, и Linux-программы не смогут
+ разобраться, что они работают не в Linux.
- На самом деле, ядра FreeBSD и Linux во многом похожи: системные
- операции, виртуальная память, система сигналов и сообщений,
- межпроцессное взаимодействие и прочее. Разница в том, что FreeBSD
- программы обращаются к системным вызовам FreeBSD, Linux программы
- соответственно к системным вызовам Linux. Во многих операционных
- системах прошлого адреса системных вызовов были
- зашиты в статический глобальный массив
- sysent[], вместо обращения по указателю в
- структуре proc, который инициализируется
- динамически, позволяя таким образом запускать программы, написанные
- для разных операционных систем.
+ Фактически, имеется ядро Linux в ядре FreeBSD; различные
+ базовые функции, реализующие все услуги ядра, идентичны как
+ в записях таблицы системных вызовов FreeBSD, так и в записях
+ таблицы системных вызовов Linux: операции с файловой системой,
+ виртуальная память, средства доставки сигналов,
+ System V IPC … Единственное отличие в том, что
+ FreeBSD-программы получают интерфейсные функции
+ FreeBSD, а Linux-программы получают интерфейсные
+ функции Linux (в большинстве более старых ОС есть только их
+ собственные интерфейсные функции: функции берутся из статического
+ глобального массива структур sysent[], а не
+ из массива, полученного разыменованием динамически
+ проинициализированного указателя в структуре
+ proc процесса, выполняющего вызов).
- В чем же разница между системными вызовами Linux и FreeBSD?
- Фактически никакой. Единственное различие (на данный момент, в
+ Какая же реализация ABI для FreeBSD родная? Это
+ не имеет значения. Единственное различие (на данный момент, в
будущем все может и, вероятно, изменится), пожалуй, в том, что
функции системных вызовов FreeBSD зашиты в ядро, а для Linux они
- могут быть либо в ядре, либо в динамически загружаемом
- модуле.
+ могут быть либо статически скомпонованы в ядро, либо получаться
+ через модуль ядра.
- Можно ли назвать это эмуляцией? Нет. Это реализация ABI,
+ Да, но можно ли назвать это эмуляцией? Нет. Это реализация ABI,
а не эмуляция. Как таковой, эмулятор (или симулятор)
отсутствует.
- В таком случае, почему же тогда
- говорят Linux эмуляция? Чтобы
- насолить FreeBSD?!. На самом
- деле, это вопрос терминологии: не существовало слова, которое бы
- точнее описывало этот процесс. Нельзя сказать, что FreeBSD
- запускает приложения Linux (без перекомпиляции или загрузки
- соответствующего модуля ядра). Поэтому и придумали термин
- Linux эмуляция.
+ В таком случае, почему же иногда говорят об
+ эмуляции Linux? Чтобы насолить
+ FreeBSD! Фактически, причина в том, что на момент первой реализации
+ не существовало слова, которое бы точнее описывало этот процесс.
+ Нельзя было сказать, что FreeBSD запускает приложения Linux (без
+ перекомпиляции или загрузки соответствующего модуля ядра это
+ невозможно). Но надо было как-то описать, что
+ загружается—отсюда и эмулятор Linux.