diff --git a/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml b/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml index 79ce390898..c6b25895db 100644 --- a/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml @@ -2,13 +2,32 @@ The FreeBSD Russian Documentation Project $FreeBSD$ - $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml,v 1.8 2004/08/26 11:16:12 den Exp $ + $FreeBSDru$ - Original revision: 1.35 + Original revision: 1.114 --> + + + Jim + Mock + Реструктурировал и частично обновил + + + + + + Brian N. + Handy + Первоначально предоставили + + + Rich + Murphey + + Алексей @@ -19,17 +38,18 @@ Работа с приложениями, написанными для Linux - Реструктурировал и частично дополнил &a.jim;, 22 марта - 2000. Оригинальная версия Brian N. Handy и &a.rich; - - + Краткий обзор - В этой главе будет рассказано о том, каким образом можно запускать - приложения, изначально написанные для Linux, под FreeBSD и что нужно - для этого сделать. + Linux - бинарная совместимость + + бинарная совместимость + Linux + - Возможно, Вы спрашиваете себя, зачем FreeBSD нужно уметь работать + FreeBSD предоставляет бинарную совместимость с несколькими другими + &unix; подобными операционными системами, включая Linux. + Возможно, Вы спрашиваете себя, зачем FreeBSD нужно уметь работать с приложениями, написанными для Linux. Ответ на этот вопрос достаточно прост: многие компании и разработчики производят программное обеспечение только для Linux, так как эта операционная система очень @@ -44,69 +64,113 @@ эмуляция. Вкратце, FreeBSD позволяет Вам работать с 90% приложений для - Linux без каких-либо модификаций последних. Среди них: Star Office, - Linux версия Netscape, Adobe Acrobat, RealPlayer 5 и 7, VMWare, - Oracle, WordPerfect, Doom, Quake и многие другие. Есть сведения, что + Linux без каких-либо модификаций последних. Среди них: + &staroffice;, Linux версия + &netscape;, + &adobe; &acrobat;, + RealPlayer + 5 и 7, VMware, + &oracle;, WordPerfect, + Doom, Quake, + и многие другие. Есть сведения, что в некоторых ситуациях эти Linux программы показывали более высокую производительность при работе под FreeBSD, чем под Linux. - Конечно, существует некоторые особенности Linux, которые (пока) не + + Linux + файловая система /proc + + + Конечно, существует некоторые особенности Linux, которые не поддерживаются в полной мере FreeBSD. Например, так обстоят дела с приложениями Linux, использующими файловую систему /proc, так как реализация последней сильно - отличается от таковой в FreeBSD (однако, ситуация меняется к лучшему: - в FreeBSD-CURRENT поддержка Linux procfs уже встроена в систему). - Существуют также системные вызовы, специфичные для i386, как, - например, переключение в режим V86. + отличается от файловой системы /proc в FreeBSD. + Существуют также системные вызовы, специфичные для &i386;, как, + например, переключение в виртуальный режим 8086. + + При чтении этой главы вы узнаете: + + + Как включить бинарную совместимость с Linux в + вашей системе. + + + + Как установить дополнительные совместно используемые + библиотеки Linux. + + + + Как установить приложения Linux в систему + FreeBSD. + + + + Детали реализации совместимости с Linux в + FreeBSD. + + + + Перед прочтением этой главы вам + потребуется: + + + + Узнать как устанавливать дополнительное + программное обеспечение сторонних разработчиков + (). + + - О том, как установить поддержку запуска Linux программ, читайте в - следующей секции. - Инсталляция + Установка - Начиная с 3.0-RELEASE, больше нет необходимости указывать - options LINUX или options - COMPAT_LINUX в Вашем файле конфигурации ядра. + KLD (загружаемый объект ядра) - Поддержка Linux приложений осуществляется посредством специального - модуля ядра (KLD объекта, Kernel LoaDable object), то - есть его можно загрузить/выгрузить на лету, без - необходимости перезагрузки. Вам потребуется убедиться в наличии - следующей строки в файле /etc/rc.conf: + Бинарная совместимость с Linux не включена по умолчанию. + Простейший способ включения этой функциональности заключается + в загрузке KLD объекта linux (Kernel + LoaDable object). Вы можете загрузить этот модуль, + просто набрав linux в командной строке. - linux_enable=YES + Если вы хотите, чтобы совместимость с Linux была включена + постоянно, необходимо добавить в /etc/rc.conf + следующую строку: - Это, в свою очередь, повлияет на выполнение следующего кода в - файле /etc/rc.i386: + linux_enable="YES" - # Start the Linux binary compatibility if requested. -# -case ${linux_enable} in -[Yy][Ee][Ss]) - echo -n ' linux'; linux > /dev/null 2>&1 - ;; -esac - - Если Вы хотите проверить, загружен ли модуль, это можно сделать - при помощи команды kldstat: + Для проверки того, загружен ли KLD, может быть использована + команда &man.kldstat.8;: &prompt.user; kldstat Id Refs Address Size Name 1 2 0xc0100000 16bdb8 kernel 7 1 0xc24db000 d000 linux.ko - Если по какой-либо причине Вы не хотите или не можете загрузить - KLD, то Вы можете статически включить поддержку Linux в ядро - посредством опции options LINUX в файле + + параметры ядра + LINUX + + + Если по какой-либо причине вы не хотите или не можете загрузить + KLD, то вы можете статически включить поддержку Linux в ядро + посредством опции options COMPAT_LINUX в файле конфигурации ядра. Затем соберите и проинсталлируйте новое ядро, - следуя описанию в секции, посвященной конфигурации ядра. + следуя описанию в . Установка необходимых Linux библиотек + + Linux + установка библиотек Linux + + Установить все требуемые библиотеки можно двумя путями: либо используя порт linux_base, либо установив их Установка с помощью порта linux_base + коллекция портов + Этот метод является самым простым, и мы рекомендуем воспользоваться именно им. Процесс аналогичен установке любого - другого порта из коллекции портов. + другого порта из коллекции портов. Просто выполните следующие команды: &prompt.root; cd /usr/ports/emulators/linux_base @@ -127,13 +194,20 @@ Id Refs Address Size Name программы, возможно, будут сообщать о несоответствии подверсий некоторых системных библиотек. Однако, практически, это не вызывает каких-либо неудобств. + + Возможно наличие нескольких версий порта emulators/linux_base, соответствующих + различным версиям разных дистрибутивов Linux. Вы должны + установить порт, наиболее близко соотвествующий требованиям + приложений Linux, которые будут установлены. + Установка библиотек вручную - Если у Вас нет установленной коллекции портов, то можно - установить требуемые библиотеки вручную Вам понадобятся + Если у вас нет установленной коллекции портов, можно + установить требуемые библиотеки вручную. Вам понадобятся разделяемые библиотеки для Linux, которые нужны программам, и runtime-компоновщик. Вам также потребуется создать теневой корень: директорию /compat/linux, где @@ -147,55 +221,62 @@ Id Refs Address Size Name находиться в теневом дереве, а не в пути, сообщаемым командой Linux ld.so. - По мере работы с различными Linux программами, у Вас будет + По мере работы с различными Linux программами, у вас будет накапливаться некий базовый набор библиотек, которого будет достаточно для большинства существующих Linux приложений. - Как установить дополнительные разделяемые библиотеки + Как установить дополнительные совместно используемые библиотеки + + совместно используемые библиотеки Что, если при установленном linux_base - порте Ваше приложение все равно сообщает об отсутствии необходимой + порте ваше приложение все равно сообщает об отсутствии необходимой библиотеки? Как узнать, какая именно нужна библиотека и где ее взять? В принципе, есть два способа. Вам необходимо иметь привилегии суперпользователя для их осуществления. - Если у Вас есть доступ к машине, на которой установлен Linux, + Если у вас есть доступ к машине, на которой установлен Linux, узнайте, какие библиотеки использует Linux приложение, и просто скопируйте из на свою машину. Например: - Допустим, Вы скачали по FTP Linux версию Doom'а (на Linux + Допустим, вы скачали по FTP Linux версию + Doom (на Linux машине). Вы можете узнать, какие разделяемые библиотеки нужны - Doom'у при помощи команды ldd linuxdoom: + 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 на Вашей системе, а также + /compat/linux на вашей системе, а также создайте символические ссылки на эти файлы, с именами ссылок из - первой колонки соответственно. В итоге у Вас на машине должны + первой колонки соответственно. В итоге у вас на машине должны быть следующие файлы: /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 +/compat/linux/lib/libc.so.4.6.29 +/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
- Заметьте, что если у Вас уже есть какая-либо из + Заметьте, что если у вас уже есть какая-либо из перечисленных библиотек, то ее не нужно копировать заново. - Однако, у Вас может быть более старая версия. В этом + Однако, у вас может быть более старая версия. В этом случае, лучше все-таки скопировать библиотеку поздней версии, изменив соответственно ссылку на нее. Предыдущую - версию библиотеки можно удалить. Например, пусть у Вас есть + версию библиотеки можно удалить. Например, пусть у вас есть следующие библиотеки: /compat/linux/lib/libc.so.4.6.27 @@ -209,7 +290,7 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29 Если подверсии немного отличаются, копировать /lib/libc.so.4.6.29 необязательно, так как программа, скорее всего, будет нормально работать и с - устаревшей версией. Тем не менее, Вы можете заменить + устаревшей версией. Тем не менее, вы можете заменить libc.so: /compat/linux/lib/libc.so.4.6.29 @@ -222,7 +303,7 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29 Символические ссылки важны только для Linux программ. Runtime-компоновщик FreeBSD самостоятельно подберет правильные номера версий библиотек, - и Вам не нужно об этом беспокоиться. + и вам не нужно об этом беспокоиться.
@@ -230,9 +311,14 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29
- Настройка Linux ELF-исполняемых файлов + Установка Linux ELF исполняемых файлов - Для ELF-программ иногда требуется сделать так называемый + + Linux + ELF исполняемые файлы + + + Для ELF программ иногда требуется сделать так называемый branding. Если при попытке запустить ELF-файл, Вы получаете следующее сообщение об ошибке: @@ -246,32 +332,35 @@ Abort &prompt.user; brandelf -t Linux linux-elf-программа - Следует отметить, что программы, для которых необходим - branding, встречаются все реже и реже, и в недалеком - будущем Вы вряд ли прибегнете к нему вообще. + GNU toolchain + + В настоящее время 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 multi on - Таким образом, Вы указываете, то сначала производится поиск в + Таким образом, вы указываете, то сначала производится поиск в файле /etc/hosts, а только затем запрашивается DNS. Когда файл /compat/linux/etc/host.conf отсутствует, Linux приложения находят файл /etc/host.conf для FreeBSD и сообщают о - несовместимом синтаксисе. Если Вы не настраивали сервер имен + несовместимом синтаксисе. Если вы не настраивали сервер имен (/etc/resolv.conf), уберите bind из файла /compat/linux/etc/host.conf. @@ -279,29 +368,52 @@ multi on
- Установка пакета Mathematica + + + + Murray + Stokely + Обновил для Mathematica 4.X + + + + + Bojan + Bistrovic + Объединено с работой + + + - Обновлено для Mathematica версии 4.x &a.murray; - и объединено с работой Bojan Bistrovic - bojanb@physics.odu.edu. + Установка &mathematica; - Ниже описано, как установить Linux версию пакета Mathematica 4.x - на FreeBSD систему. + + приложения + Mathematica + - Linux версия Mathematica отлично работает под FreeBSD, однако - исполняемые файлы должны быть модифицированы утилитой - &man.brandelf.1;. + Ниже описано, как установить Linux версию пакета + &mathematica; 4.X + на систему FreeBSD. - Linux версия пакета Mathematica или Mathematica для Студентов + Linux версия &mathematica; отлично + работает под FreeBSD, однако + исполняемые файлы, поставляемые Wolfram, должны быть модифицированы + утилитой &man.brandelf.1;, чтобы FreeBSD знала о необходимости + использования Linux ABI для их выполнения. + + Linux версия пакета &mathematica; + или &mathematica; для студентов может быть заказана непосредственно через Wolfram по адресу http://www.wolfram.com/. + url="http://www.wolfram.com/">. Модификация исполняемых файлов - Исполняемые файлы пакета Mathematica находятся в директории + Исполняемые файлы пакета &mathematica; + находятся в директории Unix на компакт диске с дистрибутивом. - Скопируйте эту директорию (вместе со всеми подкаталогами) на Ваш + Скопируйте эту директорию (вместе со всеми подкаталогами) на ваш жесткий диск, чтобы модифицировать (утилитой &man.brandelf.1;) исполняемые файлы перед инсталляцией: @@ -316,48 +428,59 @@ multi on &prompt.root; cd /localdir/Installers/Linux/ &prompt.root; ./MathInstaller - Вы также можете установить ELF brand по умолчанию в Linux - brand с помощью команды: + Вы также можете установить ELF brand по умолчанию для всех + приложений Linux, которым это требуется, с помощью команды: - &prompt.root; sysctl -w kern.fallback_elf_brand=3 + &prompt.root; sysctl kern.fallback_elf_brand=3 - Это заставит FreeBSD думать о том, что все программы не - обработанные &man.brandelf.1; используют Linux ABI и Вы сможете + FreeBSD будет считать, что все программы, не + обработанные &man.brandelf.1; используют Linux ABI и вы сможете запустить MathInstaller прямо с CDROM. - Пароль к пакету Mathematica + Пароль к пакету &mathematica; - Вам необходимо зарегистрировать свою копию пакета Mathematica и + Вам необходимо зарегистрировать свою копию пакета + &mathematica; и получить от Wolfram специальный пароль, соответствующий - идентификатор машины. + идентификатору машины. - После того, как Вы установили необходимые библиотеки и - распаковали файлы Mathematica, получите идентификатор + + Ethernet + MAC адрес + + + После того, как вы установили необходимые библиотеки и + распаковали файлы &mathematica;, + получите идентификатор машины, запустив программу mathinfo в инсталляционной директории. Идентификатор машины зависит от - MAC-адреса Вашей первой ethernet-карточки. + MAC-адреса вашей первой Ethernet-карты. &prompt.root; cd /localdir/Files/SystemFiles/Installation/Binaries/Linux &prompt.root; mathinfo disco.example.com 7115-70839-20412 При регистрации, либо по телефону или факсу, либо по - электронной почте, Вы сообщаете Ваш идентификатор + электронной почте, вы сообщаете идентификатор машины, а в ответ получаете пароль, состоящий из нескольких - чисел. Введите этот пароль при первом запуске Mathematica. + чисел. Введите этот пароль при первом запуске + &mathematica;, как и для + любой другой платформы. - Внешний интерфейс пакета Mathematica + Подключение интерфейс &mathematica; через сеть - Mathematica использует специальные шрифты для отображения + &mathematica; использует специальные + шрифты для отображения некоторых символов, которые отсутствуют в стандартных шрифтах (символы интегралов, сумм, греческий алфавит и другие). Протокол X требует, чтобы эти шрифты были установлены - локально. Это означает, что Вы должны - скопировать эти шрифты с компакт диска или сетевого узла на Ваш + локально. Это означает, что вы должны + скопировать эти шрифты с компакт диска или сетевого узла + &mathematica; на ваш жесткий диск. Обычно, все шрифты должны находиться в каталоге /cdrom/Unix/Files/SystemFiles/Fonts компакт диска или @@ -368,11 +491,11 @@ disco.example.com 7115-70839-20412 Можно просто скопировать их в один из существующих подкаталогов в директории /usr/X11R6/lib/X11/fonts. В этом - случае, Вам потребуется отредактировать файл + случае, вам потребуется отредактировать файл fonts.dir, добавив в него названия шрифтов и - изменив число шрифтов в первой строке. Или Вы можете запустить - программу mkfontdir, находясь в том каталоге, - куда Вы скопировали шрифты. + изменив число шрифтов в первой строке. Или вы можете запустить + программу &man.mkfontdir.1;, находясь в том каталоге, + куда вы скопировали шрифты. Есть альтернативный способ: скопировать директории в каталог /usr/X11R6/lib/X11/fonts: @@ -386,7 +509,7 @@ disco.example.com 7115-70839-20412 &prompt.root; cd /usr/X11R6/lib/X11/fonts/X &prompt.root; mkfontdir &prompt.root; cd ../MathType1 -&prompt.root; mkfontdir +&prompt.root; mkfontdir Теперь добавьте каталоги с новыми шрифтами в путь к шрифтам: @@ -395,69 +518,102 @@ disco.example.com 7115-70839-20412 &prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1 &prompt.root; xset fp rehash - Если Вы используете XFree86, то можно просто прописать эти + Если вы используете &xfree86;, + то можно просто прописать эти каталоги в файле XF86Config. - Если на Вашем компьютере нет каталога - /usr/X11R6/lib/X11/fonts/Type1, то замените + шрифты + + Если на вашем компьютере нет каталога + /usr/X11R6/lib/X11/fonts/Type1, замените MathType1 на Type1 в предыдущем примере. - - Установка Oracle + + Installing &maple; * - Автор Marcel Moolenaar - marcel@cup.hp.com + Этот раздел не переведен. + + + + Installing &matlab; * + + Этот раздел не переведен. + + + + + + + Marcel + Moolenaar + Предоставил + + + + + Установка &oracle; + + + приложения + Oracle + Введение - Ниже описан процесс установки Oracle 8.0.5 и Oracle 8.0.5.1 - Enterprise Edition для Linux на систему с FreeBSD. + + Ниже описан процесс установки &oracle; + 8.0.5 и &oracle; 8.0.5.1 Enterprise + Edition для Linux на систему FreeBSD. Настройка Linux окружения - Удостоверьтесь, что порты linux_base и - linux_devtools установлены на Вашей системе. - Они появились в коллекции портов после выхода FreeBSD 3.2. Если Вы - используете FreeBSD 3.2 или более раннюю, обновите коллекцию портов. - Нелишним будет и апгрейд до более поздней версии FreeBSD. Если у - Вас возникнут трудности с linux_base-6.1 или - linux_devtools-6.1, воспользуйтесь версией 5.2 - этих пакетов. + Удостоверьтесь, что порты emulators/linux_base и + devel/linux_devtools установлены + на вашей системе. Если у вас возникнут трудности с этими портами, + воспользуйтесь более ранней их версией. - Если Вы хотите использовать intelligent agent, Вам также + Если вы хотите использовать 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 package + &prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm пакет - Установка этого пакета должна пройти без каких-либо ошибок. + Установка этого пакета должна + пройти без каких-либо ошибок. - Настройка окружения Oracle + Настройка окружения &oracle; - Прежде чем Вы сможете установить Oracle, Вам необходимо - обеспечить нужное окружение. Ниже описывается, что - конкретно нужно сделать, чтобы успешно запускать - Oracle для Linux под FreeBSD. За общими сведениями обратитесь к - фирменному руководству по инсталляции Oracle. + Прежде чем вы сможете установить + &oracle;, вам необходимо + обеспечить соответствующее окружение. Ниже дана информация, что + именно нужно сделать, чтобы успешно запускать + &oracle; для Linux под FreeBSD, + а не то, что написано в фирменном руководстве по установке + &oracle;. Настройка ядра - Как описывается в руководстве по инсталляции, необходимо + настройка ядра + + Как описывается в руководстве по установке + &oracle;, необходимо установить максимальный размер разделяемой памяти. Не используйте SHMMAX под FreeBSD. SHMMAX высчитывается, исходя из SHMMAXPGS и PGSIZE. Следовательно, нужно задавать SHMMAXPGS. За информацией о прочих опциях - обратитесь к фирменному руководству: + обратитесь к фирменному руководству. Пример настроек: options SHMMAXPGS=10000 options SHMMNI=100 @@ -467,7 +623,7 @@ options SEMMNI=70 options SEMMSL=61 Установите эти опции в зависимости от того, как и для чего - Вы будете использовать Oracle. + вы будете использовать &oracle;. Не забудьте добавить следующие строки в файл конфигурации ядра: @@ -479,25 +635,30 @@ options SYSVMSG # - Oracle аккаунт + Учетная запись &oracle; - Вам нужно создать специальный Oracle аккаунт, как и любой - другой аккаунт. Единственное отличие в том, что Вы должны указать - для него командный интерпретатор Linux: - /compat/linux/bin/bash. Не забудьте добавить - /compat/linux/bin/bash в файл - /etc/shells. + Создайте специальную учетную запись + oracle, как и любую другую учетную запись. + Единственное отличие в том, что для oracle + необходимо указать командный интерпретатор Linux. + Добавьте /compat/linux/bin/bash в + /etc/shells и установите для + oracle командный интерпритатор + /compat/linux/bin/bash. Переменные окружения - Кроме стандартных переменных окружения, таких как - ORACLE_HOME и ORACLE_SID, Вам нужно + Кроме стандартных переменных окружения + &oracle;, таких как + ORACLE_HOME и ORACLE_SID, вам нужно будет установить следующие дополнительные переменные: + + Переменная @@ -547,23 +708,28 @@ 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:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/bin +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 + Установка &oracle; - Из-за небольшой несовместимости с Linux эмулятором, Вам нужно - будет создать подкаталог .oracle в директории - /var/tmp прежде чем можно будет начать - инсталляцию. Либо сделайте ее владельцем пользователя oracle, либо - поставьте права на запись для всех. Если Вы все сделали правильно, - то инсталляция должна пройти без проблем. Если какие-либо трудности - все же возникли, проверьте еще раз все конфигурационные файлы и - целостность дистрибутива. После окончания установки, приложите - патчи (смотрите следующие две секции). + Из-за небольшой несовместимости с Linux эмулятором, вам нужно + будет создать подкаталог .oracle в каталоге + /var/tmp прежде, чем можно будет начать + установку. Либо сделайте ее владельцем пользователя + oracle, либо поставьте права на запись для всех. + Если вы все сделали правильно, то установка + &oracle; должна пройти без проблем. Если + какие-либо трудности все же возникли, проверьте еще раз все + конфигурационные файлы и/или целостность дистрибутива + &oracle;. После окончания установки + &oracle; приложите патчи + (смотрите следующие два раздела). Одна из часто возникающих проблем — неправильно установленный TCP адаптер. В результате, невозможно запустить TCP @@ -581,7 +747,8 @@ export PATH Модификация root.sh - Инсталлируя Oracle, необходимо выполнить некоторые действия + При установке &oracle; + необходимо выполнить некоторые действия (имея при этом привилегии суперпользователя). Фактически это сводится к выполнению скрипта root.sh, который находится в директории orainst. @@ -607,17 +774,21 @@ export PATH # # Define variables to be used in this script - Если Вы инсталлируете Oracle не с компакт диска, то можно - модифицировать файл rthd.sh, который - находится в директории orainst. + Если вы устанавливаете &oracle; + не с компакт диска, можно модифицировать исходный файл + root.sh. Он называется + rthd.sh и находится в каталоге + orainst. Модификация genclntsh - Скрипт genclntsh используется для того, чтобы создать единую - разделяемую клиентскую библиотеку. Приложите следующий патч, - чтобы закомментировать определение переменной PATH: + Скрипт genclntsh используется для того, + чтобы создать единую совместно используемую клиентскую библиотеку, + которая используется для создания демонстраций. Приложите следующий + патч, чтобы закомментировать определение переменной + PATH: *** bin/genclntsh.orig Wed Sep 30 07:37:19 1998 --- bin/genclntsh Tue Dec 22 15:36:49 1998 @@ -640,23 +811,32 @@ export PATH - Запуск и использование Oracle + Запуск &oracle; - Теперь, если Вы все сделали правильно, то можете использовать - Oracle так же, как если бы Вы поставили его на Linux систему. + Теперь, если вы все сделали правильно, то можете использовать + &oracle; так же, как и в системе + Linux. - + + + Installing &sap.r3; * + + Этот раздел не переведен. + + + Дополнительные сведения - Если Вы интересуетесь, как работает Linux эмуляция, эта секция для - Вас. Большинство материала взято из электронного письма, адресованного + Если вы интересуетесь, как работает Linux эмуляция, этот раздел для + вас. Большинство материала взято из электронного письма, адресованного &a.chat; by Terry Lambert tlambert@primenet.com (ID письма: <199906020108.SAA07001@usr09.primenet.com>). Как все это устроено? + загрузчик исполнимых классов FreeBSD поддерживает абстракцию, называемую загрузчик исполнимых классов, который фактически является первой @@ -666,7 +846,7 @@ export PATH одного, который, в случае неудачи, выполняет программу как сценарий (скрипт). - Исторически сложилось, что единственный загрузчик в UNIX + Исторически сложилось, что единственный загрузчик в &unix; системах проверял магическое число (чаще всего первые 4 или 8 байт файла), чтобы определить, известен ли формат исполняемого файла системе, и если да, то вызвал соответствующий @@ -686,16 +866,18 @@ export PATH включая специальный #! загрузчик, который вызывает нужный интерпретатор или /bin/sh, если не нашел подходящего. + ELF Формат исполняемого файла FreeBSD определяет по магическому числу. На этой стадии пока не различается, для какой операционной системы предназначен файл - (Linux, Solaris, или любой другой, использующей ELF-формат + (Linux, &solaris;, или любой другой, использующей ELF-формат исполняемых файлов). + Solaris Далее, ELF-загрузчик определяет марку (специальный комментарий; отсутствует в исполняемых файлах - SVR4/Solaris) исполняемого файла, то есть для какой операционной + SVR4/&solaris;) исполняемого файла, то есть для какой операционной системы он предназначен. Соответственно, Linux программы должны быть @@ -704,19 +886,24 @@ export PATH &prompt.root; brandelf -t Linux file + + ELF + branding + + Когда ELF-загрузчик находит марку Linux, он заменяет соответствующий указатель в структуре proc. Все системные вызовы - индексируются через этот указатель (в традиционной UNIX системе, это + индексируются через этот указатель (в традиционной &unix; системе это массив sysent[], содержащий системные вызовы). Некоторые особые ситуации и системные вызовы обрабатываются специальным модулем ядра поддержки Linux. Плюс ко всему, Linux эмулятор динамически изменяет - корень файловой системы при поиске файлов (фактически делая - то же самое, что и опция union при монтировании - файловых систем (не путать с unionfs!)). Сперва, файл ищется в - директории + корень файловой системы при поиске файлов; фактически + так же, как и параметр union при монтировании + файловых систем (не путать с unionfs!). + Сперва, файл ищется в каталоге /compat/linux/original-path и только затем, в случае неудачи, в /original-path. Это @@ -745,15 +932,29 @@ export PATH могут быть либо в ядре, либо в динамически загружаемом модуле. - Можно ли назвать это эмуляцией? Нет. Как таковой, эмулятор - (или симулятор) отсутствует. В таком случае, почему же тогда + Можно ли назвать это эмуляцией? Нет. Это реализация ABI, + а не эмуляция. Как таковой, эмулятор (или симулятор) + отсутствует. + + В таком случае, почему же тогда говорят Linux эмуляция? Чтобы - насолить FreeBSD?! 8-). На самом + насолить FreeBSD?!. На самом деле, это вопрос терминологии: не существовало слова, которое бы точнее описывало этот процесс. Нельзя сказать, что FreeBSD запускает приложения Linux (без перекомпиляции или загрузки - соответствующего модуля ядра). Тогда и придумали термин + соответствующего модуля ядра). Поэтому и придумали термин Linux эмуляция.
+ +