doc/hu_HU.ISO8859-2/books/handbook/linuxemu/chapter.xml
2013-07-03 17:35:46 +00:00

4424 lines
132 KiB
XML

<?xml version="1.0" encoding="iso-8859-2"?>
<!--
The FreeBSD Documentation Project
$FreeBSD$
-->
<!--
The FreeBSD Hungarian Documentation Project
Translated by: PALI, Gabor <pgj@FreeBSD.org>
%SOURCE% en_US.ISO8859-1/books/handbook/linuxemu/chapter.xml
%SRCID% 1.141
-->
<chapter id="linuxemu" lang="hu">
<chapterinfo>
<authorgroup>
<author>
<firstname>Jim</firstname>
<surname>Mock</surname>
<contrib>Átdolgozta és egyes részeit
aktualizálta: </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Brian N.</firstname>
<surname>Handy</surname>
<contrib>Eredetileg írta: </contrib>
</author>
<author>
<firstname>Rich</firstname>
<surname>Murphey</surname>
</author>
</authorgroup>
</chapterinfo>
<title>Bináris Linux kompatibilitás</title>
<sect1 id="linuxemu-synopsis">
<title>Áttekintés</title>
<indexterm><primary>Bináris Linux
kompatibilitás</primary></indexterm>
<indexterm>
<primary>bináris kompatibilitás</primary>
<secondary>Linux</secondary>
</indexterm>
<para>A &os; számos más &unix;-szerű
operációs rendszerhez nyújt bináris
kompatibilitást, köztük a Linuxhoz is.
Elcsodálkozhatnánk rajta, hogy vajon miért
kell tudnia a &os;-nek Linux binárisokat futtatnia. A
válasz erre nagyon egyszerű. Rengeteg cég
és fejlesztő kizárólag csak Linuxra
fejleszt, hiszen ez mostanság egy nagyon <quote>izgalmas
téma</quote> az informatika világában.
Emiatt azonban a &os; közösségnek külön
győzködnie kell ezeket a cégeket és
fejlesztőket, hogy készítsék el a
termékeik natív &os;-s változatát.
Ezzel az a gond, a legtöbb ilyen cég egyszerűen
nem veszi észre, hogy ha létezne a
terméküknek &os;-re írt változata, akkor
még többen használnák. Így
továbbra is csak Linuxra fejlesztenek. Mit tudnak tenni
ilyenkor a &os; használói? Nos, ekkor jön
jól a &os; bináris szintű
kompatibilitása.</para>
<para>Dióhéjban úgy tudnánk
összefoglalni, hogy ennek köszönhetően a &os;
felhasználók képesek a linuxos
alkalmazások közel 90%-át mindenféle
további módosítás nélkül
futtatni. Így tehát használható a
<application>&staroffice;</application>,
<application>&netscape;</application> Linux változata, az
<application>&adobe;&nbsp;&acrobat;</application>,
<application>&realplayer;</application>,
<application><trademark>VMware</trademark></application>,
<application>&oracle;</application>,
<application>&wordperfect;</application>,
<application>Doom</application>, <application>Quake</application>,
és még sok minden más. Sőt, egyes
tapasztalatok szerint bizonyos helyzetekben a &os; által
futtatott Linux binárisok sokkal jobban
teljesítenek, mint Linux alatt.</para>
<para>Azonban vannak olyan Linuxra jellemző, az
operációs rendszer szintjén
meghúzódó eszközök, amelyek &os;
alatt nem használhatóak. &os;-n nem fognak
működni azok a Linux binárisok, amelyek
túlzottan kihasználják az olyan &i386;-os
rendszerhívásokat, mint például a
virtuális 8086 mód.</para>
<para>A fejezet elolvasása során
megismerjük:</para>
<itemizedlist>
<listitem>
<para>hogyan engedélyezzük rendszerünkön a
Linux kompatibilitást;</para>
</listitem>
<listitem>
<para>hogyan telepítsünk linuxos osztott
könyvtárakat;</para>
</listitem>
<listitem>
<para>hogyan telepítsünk linuxos
alkalmazásokat a &os; rendszerünkre;</para>
</listitem>
<listitem>
<para>a &os; Linux kompatibilitásának
implementációs részleteit.</para>
</listitem>
</itemizedlist>
<para>A fejezet elolvasásához ajánlott:</para>
<itemizedlist>
<listitem>
<para>külső szoftverek
telepítésének ismerete (<xref
linkend="ports"/>).</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="linuxemu-lbc-install">
<title>Telepítés</title>
<indexterm><primary>KLD (betölthető rendszermag
objektum)</primary></indexterm>
<para>A bináris Linux kompatibilitás
alapértelmezés szerint nem engedélyezett.
Legkönnyebben úgy tudjuk elérhetővé
tenni, ha betöltjük a <literal>linux</literal> nevű
KLD modult (<quote>Kernel LoaDable</quote>). Ehhez
<username>root</username> felhasználóként a
következőket kell begépelni:</para>
<screen>&prompt.root; <userinput>kldload linux</userinput></screen>
<para>Ha minden egyes rendszerindítás során
engedélyezni szeretnénk a bináris
kompatibilitást, akkor tegyük bele az
<filename>/etc/rc.conf</filename> állományba ezt a
sort:</para>
<programlisting>linux_enable="YES"</programlisting>
<para>A modul betöltődését a &man.kldstat.8;
paranccsal tudjuk ellenőrizni:</para>
<screen>&prompt.user; <userinput>kldstat</userinput>
Id Refs Address Size Name
1 2 0xc0100000 16bdb8 kernel
7 1 0xc24db000 d000 linux.ko</screen>
<indexterm>
<primary>a rendszermag beállításai</primary>
<secondary>COMPAT_LINUX</secondary>
</indexterm>
<para>Ha valamiért nem akarjuk vagy nem éppen nem
tudjuk betölteni a modult, akkor a bináris Linux
kompatibilitást az <literal>options COMPAT_LINUX</literal>
beállítással be is tudjuk
építeni a rendszermagba. Ennek pontos
menetét a <xref linkend="kernelconfig"/>ben találjuk
meg.</para>
<sect2>
<title>Linuxos futtatókönyvtárak
telepítése</title>
<indexterm>
<primary>Linux</primary>
<secondary>linuxos könyvtárak
telepítése</secondary>
</indexterm>
<para>A linuxos könyvtárakat két módon
is felrakhatjuk: egyrészt a <link
linkend="linuxemu-libs-port">linux_base</link> port
telepítésével, másrészt <link
linkend="linuxemu-libs-manually">manuálisan</link>.</para>
<sect3 id="linuxemu-libs-port">
<title>A könyvtárak telepítése a
linux_base porttal</title>
<indexterm><primary>Portgyűjtemény</primary></indexterm>
<para>A futtatókönyvtárakat a lehető
legegyszerűbben a <filename
role="package">emulators/linux_base</filename> porton
keresztül tudjuk telepíteni. Teljesen úgy
történik, mint a <ulink type="html"
url="file://localhost/usr/ports/">Portgyűjtemény</ulink>
akármelyik másik portjának
telepítése. Csupán ennyit kell
beírnunk:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_base-f10</userinput>
&prompt.root; <userinput>make install distclean</userinput></screen>
<note>
<para>A &os; 8.0 kiadását megelőző
változataiban az <filename
role="package">emulators/linux_base-f10</filename> port
helyett az <filename
role="package">emulators/linux_base-fc4</filename> portot
használjuk.</para>
</note>
<para>A telepítés végeztével kaptunk
is egy működő bináris Linux
kompatibilitást, habár egyes programok
még panaszkodhatnak a rendszerkönyvtárak
alverzióit illetően.
Általánosságban véve ez azonban
nem okoz nagyobb gondot.</para>
<note>
<para>A <filename
role="package">emulators/linux_base</filename> portnak
több változata is használható,
melyek az egyes Linux disztribúcióknak
feleltethetőek meg. Ilyenkor mindig érdemes
közülük azt választani, amelyik a
leginkább megfelel a telepíteni
kívánt linuxos alkalmazás
igényeinek.</para>
</note>
</sect3>
<sect3 id="linuxemu-libs-manually">
<title>A könyvtárak telepítése
manuálisan</title>
<para>Ha korábban még nem telepítettük
volna a Portgyűjteményt, akkor egyénileg
kell felraknunk az egyes könyvtárakat.
Közülük azokra lesz
szükségünk, amelyeket maga az
alkalmazás is használni akar, valamint a
futásidejű linkerre. Emellett még a &os;
rendszerünkön levő Linux binárisok
számára a <filename>/compat/linux</filename>
könyvtárban létre kell hoznunk a
gyökér ún.
<quote>árnyékkönyvtárát</quote>
is. A &os; alatt elindított Linux programok
először ebben a könyvtárban
fogják keresni a hozzájuk tartozó osztott
könyvtárakat. Így tehát, amikor egy
linuxos program betölti például a
<filename>/lib/libc.so</filename>
függvénykönyvtárat, akkor a &os;
először a
<filename>/compat/linux/lib/libc.so</filename>
állományt próbálja meg megnyitni,
majd ha az nem létezik, akkor a
<filename>/lib/libc.so</filename> állományt. Az
osztott könyvtárak ezért a
<filename>/compat/linux/lib</filename>
árnyékkönyvtárba
telepítendőek, és nem oda, ahova a linuxos
<command>ld.so</command> mutat.</para>
<para>Általánosságban szólva eleinte
elég csak azokat az osztott könyvtárakat
megkeresni és felrakni, amelyekre a
telepítendő linuxos alkalmazásunknak
ténylegesen szüksége van. Egy idő
után úgyis összegyűlnek azok a
fontosabb függvénykönyvtárak, amelyek
segítségével már minden
további ráfordítás
nélkül futtatni tudjuk a frissen importált
programokat.</para>
</sect3>
<sect3>
<title>Hogyan telepítsünk újabb osztott
könyvtárakat?</title>
<indexterm><primary>osztott
könyvtárak</primary></indexterm>
<para>Mit tegyünk, ha az <filename
role="package">emulators/linux_base</filename> port
telepítése után az alkalmazás
még mindig hiányol néhány osztott
könyvtárat? Honnan tudhatjuk meg, hogy milyen
osztott könyvtárak kellenek majd egy Linux
bináris használatához, és honnan
szerezzük be ezeket? Erre alapvetőn két
lehetőségünk van (az
utasításokat <username>root</username>
felhasználóként kell majd
végrehajtanunk).</para>
<para>Ha hozzáférünk egy Linux rendszerhez,
akkor szedjük össze az alkalmazásunk
futtatásához szükséges osztott
könyvtárakat, és másoljuk ezeket a
&os; partíciójára.
Például:</para>
<informalexample>
<para>Tegyük fel, hogy FTP-n keresztül
leszedtük a <application>Doom</application> Linux
változatát, és felraktuk egy
általunk elérhető Linux rendszerre. Az
<command>ldd linuxdoom</command> parancs
segítségével ki tudjuk deríteni,
milyen osztott könyvtárak kellenek majd
nekünk:</para>
<screen>&prompt.user; <userinput>ldd linuxdoom</userinput>
libXt.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libXt.so.3.1.0
libX11.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libX11.so.3.1.0
libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>
<indexterm><primary>szimbolikus linkek</primary></indexterm>
<para>Az utolsó oszlopban levő
állományokat másoljuk át,
tegyük ezeket a <filename>/compat/linux</filename>
könyvtárba, és hozzunk létre az
első oszlopban szereplő szimbolikus linkeket.
Így tehát a következő
állományok kellenének:</para>
<screen>/compat/linux/usr/X11/lib/libXt.so.3.1.0
/compat/linux/usr/X11/lib/libXt.so.3 -&gt; libXt.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3 -&gt; libX11.so.3.1.0
/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.29</screen>
<blockquote>
<note>
<para>Ha már rendelkezünk az
<command>ldd</command> kimenetének első
oszlopában szereplő
főverziószámú osztott
könyvtárral, akkor nem kell
átmásolni az utolsó oszlopban
levő állományokat, hiszen így
is működnie kellene mindennek. Ha viszont egy
újabb változattal találkozunk,
akkor érdemes mégis inkább
átmásolni. Miután a szimbolikus
linkeket átirányítottuk az
új változatra, a régit akár
törölhetjük is. Ha például
ezek a könyvtárak elérhetőek a
rendszerünkön:</para>
<screen>/compat/linux/lib/libc.so.4.6.27
/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.27</screen>
<para>Észrevesszük, hogy az
<command>ldd</command> kimenetében az új
bináris egy újabb változatot
igényel:</para>
<screen>libc.so.4 (DLL Jump 4.5pl26) -&gt; libc.so.4.6.29</screen>
<para>Ha csak az utolsó jegyében marad le
valamivel a verziószám, akkor nem kell
különösebben aggódnunk a
<filename>/lib/libc.so.4.6.29</filename> miatt sem,
hiszen a programnak egy picivel korábbi
verzióval is remekül kellene tudnia
működni. Természetesen, ha akarjuk,
ettől függetlenül
lecserélhetjük a
<filename>libc.so</filename> állományt,
ami ezt eredményezi:</para>
<screen>/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.29</screen>
</note>
</blockquote>
<blockquote>
<note>
<para>A szimbolikus linkek karbantartása
<emphasis>csak</emphasis> a Linux binárisok
esetén szükséges. A &os;
saját futásidejű linkere
magától megkeresi a megfelelő
főverziószámú
könyvtárakat, ezért emiatt
általában nem kell aggódni.</para>
</note>
</blockquote>
</informalexample>
</sect3>
</sect2>
<sect2>
<title>Linux ELF binárisok telepítése</title>
<indexterm>
<primary>Linux</primary>
<secondary>ELF binárisok</secondary>
</indexterm>
<para>Az ELF binárisok futtatása előtt
néha még szükség van a
<quote>megbélyegzés</quote> (branding)
használatára is. Ha egy bélyegezetlen ELF
binárist akarunk elindítani, akkor a
következő hibaüzenetet kapjuk:</para>
<screen>&prompt.user; <userinput><replaceable>./egy-linux-elf-bináris</replaceable></userinput>
ELF binary type not known
Abort</screen>
<para>A &os; rendszermagjának a &man.brandelf.1; paranccsal
tudunk segíteni a &os; és a Linux
binárisainak
megkülönböztetésében.</para>
<screen>&prompt.user; <userinput>brandelf -t Linux <replaceable>egy-linux-elf-bináris</replaceable></userinput></screen>
<indexterm><primary>GNU
eszköztár</primary></indexterm>
<para>A GNU által fejlesztett eszközök
manapság már automatikusan elhelyezik az ELF
binárisok azonosításához
szükséges bélyegeket, ezért ez a
lépés a jövőben egyre inkább
feleslegessé válik.</para>
</sect2>
<sect2>
<title>Tetszőleges RPM formátumú csomag
telepítése</title>
<para>A &os; a telepített (akár linuxos)
alkalmazások nyomonkövetésére
saját csomagadatbázissal rendelkezik, amelynek
következtében a &linux; által
felkínált RPM adatbázisokat nem
támogatja.</para>
<para>Ennek ellenére akármelyik RPM alapú
&linux; alkalmazás telepíthető
rendszerünkre a következő módon:</para>
<screen>&prompt.root; <userinput>cd /compat/linux</userinput>
&prompt.root; <userinput>rpm2cpio -q &lt; <replaceable>/a/linuxos/allomány.helye.rpm</replaceable> | cpio -id</userinput></screen>
<para>Ezt követően a &man.brandelf.1;
segítségével állítsuk be az ELF
binárisokat (könyvtárakat viszont ne!)
megfelelő típusúra. Ekkor ugyan nem
leszünk képesek rendesen eltávolítani
az így telepített szoftvert, de ez a
módszer teszteléshez megfelelő.</para>
</sect2>
<sect2>
<title>A névfeloldó
beállítása</title>
<para>Ha a névfeloldás (DNS) valamiért nem
működne, vagy egy ehhez hasonló üzenetet
kapunk:</para>
<screen>resolv+: "bind" is an invalid keyword resolv+:
"hosts" is an invalid keyword</screen>
<para>Akkor a <filename>/compat/linux/etc/host.conf</filename>
állományba be kell illesztenünk a
következő sorokat:</para>
<programlisting>order hosts, bind
multi on</programlisting>
<para>Az itt megszabott sorrend szerint először az
<filename>/etc/hosts</filename> állományt
nézi át, és majd csak ezután
próbálja meg feloldani a nevet. Ha a
<filename>/compat/linux/etc/host.conf</filename>
állomány nem létezik, akkor a linuxos
alkalmazás a &os; <filename>/etc/host.conf</filename>
állományát találja meg, és
panaszkodni fog a &os; eltérő
formátumára. Távolítsuk el a
<literal>bind</literal> szócskát, ha nem
állítottunk be névszervert az
<filename>/etc/resolv.conf</filename>
állományhoz.</para>
</sect2>
</sect1>
<sect1 id="linuxemu-mathematica">
<sect1info>
<authorgroup>
<author>
<firstname>Boris</firstname>
<surname>Hollas</surname>
<contrib>A Mathematica 5.X verziójához
igazította: </contrib>
</author>
</authorgroup>
</sect1info>
<title>A &mathematica; telepítése</title>
<indexterm>
<primary>alkalmazások</primary>
<secondary><application>Mathematica</application></secondary>
</indexterm>
<para>Ebben a szakaszban megismerhetjük, hogyan
telepítsük a <application>&mathematica;
5.X</application> Linux változatát &os;
rendszerekre.</para>
<para>A <application>&mathematica;</application> vagy a
<application>&mathematica; for Students</application> linuxos
változatai közvetlenül megrendelhetőek a
fejlesztőtől: <ulink
url="http://www.wolfram.com/"></ulink>.</para>
<sect2>
<title>A &mathematica; telepítőjének
elindítása</title>
<para>Először is jeleznünk kell a &os;-nek, hogy a
<application>&mathematica;</application> binárisai a
linuxos ABI-t (Application Binary Interface) fogják
használni. Itt legkönnyebben úgy
járhatunk el, ha egyszerűen
beállítjuk, hogy a rendszer a bélyegezetlen
ELF binárisokat automatikusan Linux binárisoknak
tekintse:</para>
<screen>&prompt.root; <userinput>sysctl kern.fallback_elf_brand=3</userinput></screen>
<para>Ennek köszönhetően a &os; most már az
összes bélyegezetlen ELF bináris
esetén a linuxos ABI-t fogja használni, és
így a telepítőt akár már
közvetlenül a CD-ről is
indíthatjuk.</para>
<para>Most másoljuk át a
<filename>MathInstaller</filename> nevű
állományt a merevlemezünkre:</para>
<screen>&prompt.root; <userinput>mount /cdrom</userinput>
&prompt.root; <userinput>cp /cdrom/Unix/Installers/Linux/MathInstaller <replaceable>helyi_könyvtár</replaceable></userinput></screen>
<para>Az állományban cseréljük ki az
első sorban található
<literal>/bin/sh</literal> hivatkozást a
<literal>/compat/linux/bin/sh</literal> hivatkozásra.
Ezzel biztosíthatjuk, hogy a telepítőt a
linuxos &man.sh.1; fogja elindítani. Ezután a
kedvenc szövegszerkesztőnkkel vagy a
következő szakaszban található szkript
segítségével helyettesítsük
benne a <literal>Linux)</literal> szöveg összes
előfordulását a <literal>FreeBSD)</literal>
szöveggel. Mivel a
<application>&mathematica;</application> telepítője
az <command>uname -s</command> parancsra kapott
válaszból állapítja meg az
operációs rendszer típusát,
ezért ezzel a módosítással a &os;-t
is a Linuxhoz hasonló módon fogja kezelni. A
<command>MathInstaller</command> elindítása
után most már telepíthető a
<application>&mathematica;</application>.</para>
</sect2>
<sect2>
<title>A &mathematica; állományainak
módosítása</title>
<para>A <application>&mathematica;</application>
telepítése során létrejött
szkripteket a használatuk előtt át kell
írnunk. Amennyiben a
<application>&mathematica;</application>hoz tartozó
programokat a <filename
class="directory">/usr/local/bin</filename>
könyvtárba telepítettük, akkor itt
találjuk a <filename>math</filename>,
<filename>mathematica</filename>,
<filename>Mathematica</filename> és
<filename>MathKernel</filename> állományokra
mutató szimbolikus linkeket. Ezek mindegyikében
cseréljük ki a <literal>Linux)</literal>
karakterláncot a <literal>FreeBSD)</literal>
szövegre a kedvenc szövegszerkesztőnkkel vagy az
alábbi szkripttel:</para>
<programlisting>#!/bin/sh
cd /usr/local/bin
for i in math mathematica Mathematica MathKernel
do sed 's/Linux)/FreeBSD)/g' $i &gt; $i.tmp
sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp &gt; $i
rm $i.tmp
chmod a+x $i
done</programlisting>
</sect2>
<sect2>
<title>A &mathematica; jelszavának
megszerzése</title>
<indexterm>
<primary>Ethernet</primary>
<secondary>MAC-cím</secondary>
</indexterm>
<para>A <application>&mathematica;</application> első
indítása során kérni fog egy
jelszót. Ha még nem kértünk volna
jelszót a fejlesztőtől, akkor a
<quote>számítógépünk
azonosítójának</quote> (machine ID)
megállapításához indítsuk el
a telepítés könyvtárában
található <command>mathinfo</command> nevű
programot. Ez az azonosító
lényegében az elsődleges Ethernet
kártyánk MAC-címe lesz, ezért a
<application>&mathematica;</application> nem futtatható
több számítógépen.</para>
<para>Amikor e-mailen, telefonon vagy faxon keresztül
regisztráljuk a terméket a Wolframnál,
akkor meg kell adnunk nekik ezt az azonosítót
<quote>machine ID</quote> néven, amire ők
elküldik a hozzá tartozó
jelszót.</para>
</sect2>
<sect2>
<title>A &mathematica; frontendjének futtatása
hálózaton keresztül</title>
<para>A <application>&mathematica;</application> a
szabványos betűkészletekkel meg nem
jeleníthető szimbólumokhoz
(integráljelek, szummák, görög
betűk, matematikai jelölések stb.)
használ néhány olyan speciális
betűtípust, amelyek nem minden esetben állnak
rendelkezésre. Az X által használt
protokoll miatt ezeket a betűtípusokat
<emphasis>helyben</emphasis> kell telepíteni. Ennek
értelmében a
<application>&mathematica;</application> CD-jén
található betűtípusokat
telepítenünk kell a
számítógépünkre is. A CD-n
ezeket általában a
<filename>/cdrom/Unix/Files/SystemFiles/Fonts</filename>
könyvtárban találjuk meg, vagy a merevlemezen
a <filename>/usr/local/mathematica/SystemFiles/Fonts</filename>
könyvtárban. Ezen belül pedig a
<filename>Type1</filename> és <filename>X</filename>
alkönyvtárakra van szükségünk. Az
alábbiakban leírtak szerint több módon
is használhatjuk ezeket.</para>
<para>Az egyik ilyen módszer, ha átmásoljuk
az imént említett könyvtárakat a
többi mellé, vagyis a
<filename>/usr/X11R6/lib/X11/fonts</filename>
könyvtárba. Ekkor szükségünk lesz
még a <filename>fonts.dir</filename>
állomány átírására is,
ahova fel kell vennünk a betűtípusok neveit,
majd ennek megfelelően az első sorban
módosítanunk a könyvtárban
található betűtípusok
számát. De ugyanígy lefuttathatjuk ebben a
könyvtárban a &man.mkfontdir.1; parancsot is.</para>
<para>Az a másik megoldás, ha a
könyvtárakat így másoljuk át a
<filename>/usr/X11R6/lib/X11/fonts</filename> helyre:</para>
<screen>&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts</userinput>
&prompt.root; <userinput>mkdir X</userinput>
&prompt.root; <userinput>mkdir MathType1</userinput>
&prompt.root; <userinput>cd /cdrom/Unix/Files/SystemFiles/Fonts</userinput>
&prompt.root; <userinput>cp X/* /usr/X11R6/lib/X11/fonts/X</userinput>
&prompt.root; <userinput>cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1</userinput>
&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts/X</userinput>
&prompt.root; <userinput>mkfontdir</userinput>
&prompt.root; <userinput>cd ../MathType1</userinput>
&prompt.root; <userinput>mkfontdir</userinput></screen>
<para>Most adjuk hozzá az új
könyvtárakat a betűtípusok
könyvtáraihoz:</para>
<screen>&prompt.root; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/X</userinput>
&prompt.root; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/MathType1</userinput>
&prompt.root; <userinput>xset fp rehash</userinput></screen>
<para>Ha az <application>&xorg;</application> szervert
használjuk, akkor az <filename>xorg.conf</filename>
állományban megadhatjuk ezen
könyvtárak automatikus betöltését
is.</para>
<note>
<para>Az <application>&xfree86;</application>
típusú szerverek esetén az
<filename>XF86Config</filename> konfigurációs
állományt kell
módosítanunk.</para>
</note>
<indexterm><primary>betűk</primary></indexterm>
<para>Ha még <emphasis>nincs</emphasis>
<filename>/usr/X11R6/lib/X11/fonts/Type1</filename> nevű
könyvtárunk, akkor a példában
szereplő <filename>MathType1</filename>
könyvtárat nyugodtan átnevezhetjük
<filename>Type1</filename> nevűre.</para>
</sect2>
</sect1>
<sect1 id="linuxemu-maple">
<sect1info>
<authorgroup>
<author>
<firstname>Aaron</firstname>
<surname>Kaplan</surname>
<contrib>Írta: </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Robert</firstname>
<surname>Getschmann</surname>
<contrib>Köszönet: </contrib>
</author>
</authorgroup>
</sect1info>
<title>A &maple; telepítése</title>
<indexterm>
<primary>alkalmazások</primary>
<secondary><application>Maple</application></secondary>
</indexterm>
<para>A <application>&maple;</application> egy
<application>&mathematica;</application>hoz hasonló
kereskedelmi alkalmazás. A használatához
először meg kell vásárolni a <ulink
url="http://www.maplesoft.com/"></ulink> címről, majd
a licenc megszerzéséhez ugyanott
regisztrálni. &os;-re a szoftvert a következő
egyszerű lépéseken keresztül tudjuk
telepíteni.</para>
<procedure>
<step>
<para>Indítsuk el a termékhez mellékelt
<filename>INSTALL</filename> nevű szkriptet.
Válasszuk a telepítőprogram által
felkínált opciók közül a
<quote>RedHat</quote> címkéjűt. A
telepítés célkönyvtára legyen
a <filename
class="directory">/usr/local/maple</filename>.</para>
</step>
<step>
<para>Ha eddig még nem tettük volna meg,
rendeljük meg a <application>&maple;</application>
licencét a Maple Waterloo Software-től (<ulink
url="http://register.maplesoft.com/"></ulink>) és
másoljuk az
<filename>/usr/local/maple/license/license.dat</filename>
állományba.</para>
</step>
<step>
<para>Az <application>&maple;</application>-höz
mellékelt <filename>INSTALL_LIC</filename> szkript
elindításával telepítsük a
<application>FLEXlm</application> licenckezelőt. A
szervernek adjuk meg a
számítógépünk
hálózati nevét.</para>
</step>
<step>
<para>Javítsuk át a
<filename>/usr/local/maple/bin/maple.system.type</filename>
állományt a következő
módon:</para>
<programlisting> ----- itt kezdődik a módosítás ---------
*** 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
----- módosítás vége -------------------</programlisting>
<para>Vigyázzunk, hogy a <literal>"FreeBSD"|\</literal>
kezdetű sor végén nem szabad semmilyen
további whitespace karakternek lennie.</para>
<para>Ez a javítás arra utasítja a
<application>&maple;</application>-t, hogy a
<quote>FreeBSD</quote>-t Linux rendszerként ismerje
fel. A <filename>bin/maple</filename> szkript hívja a
<filename>bin/maple.system.type</filename> szkriptet, amely
pedig a <command>uname -a</command> hívással
próbálja kideríteni az
operációs rendszer nevét. Ettől
függően választja ki, hogy milyen
típusú binárisokat fog futtatni.</para>
</step>
<step>
<para>Indítsuk el a licenckezelő szervert.</para>
<para>A most következő szkripttel
könnyedén el tudjuk indítani az
<command>lmgrd</command> programot. A szkriptet
<filename>/usr/local/etc/rc.d/lmgrd.sh</filename> néven
hozzuk létre:</para>
<programlisting> ----- nyissz -----------
#! /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&gt;&gt; ${LOG} 1&gt;&amp;2
echo -n " lmgrd"
;;
stop)
lmgrd -c ${LICENSE_FILE} -x lmdown 2&gt;&gt; ${LOG} 1&gt;&amp;2
;;
*)
echo "Usage: `basename $0` {start|stop}" 1&gt;&amp;2
exit 64
;;
esac
exit 0
----- nyissz -----------</programlisting>
</step>
<step>
<para>Próbáljuk meg elindítani a
<application>&maple;</application>-t:</para>
<screen>&prompt.user; <userinput>cd /usr/local/maple/bin</userinput>
&prompt.user; <userinput>./xmaple</userinput></screen>
<para>Szerencsés esetben innentől kezdve már
minden működik. És ne felejtsünk el
írni a Maplesoftnak, hogy szeretnénk egy
natív &os; verziót a
termékükből!</para>
</step>
</procedure>
<sect2>
<title>Általános buktatók</title>
<itemizedlist>
<listitem>
<para>A <application>FLEXlm</application> licenckezelővel
esetenként nehéz lehet elboldogulni.
Erről a témáról bővebben a
<ulink url="http://www.globetrotter.com/"></ulink>
címen találunk
leírásokat.</para>
</listitem>
<listitem>
<para>Az <command>lmgrd</command> nagyon
válogatós a licencállományokat
illetően és bármilyen
apróságra kiakad. Egy szabályos
licencállomány valahogy így néz
ki:</para>
<programlisting># =======================================================
# 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</programlisting>
<note>
<para>A sorozatszámot természetesen
eltávolítottuk. Itt a
<hostid>chillig</hostid> a
számítógép neve.</para>
</note>
<para>Az itt megadott licencállomány
remekül használható egészen addig
a pontig, amíg békén hagyjuk a
<quote>FEATURE</quote> kezdetű sort (melyet a
licenckulcs véd).</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="linuxemu-matlab">
<sect1info>
<authorgroup>
<author>
<firstname>Dan</firstname>
<surname>Pelleg</surname>
<contrib>Írta: </contrib>
</author>
</authorgroup>
</sect1info>
<title>A &matlab; telepítése</title>
<indexterm>
<primary>alkalmazások</primary>
<secondary><application>MATLAB</application></secondary>
</indexterm>
<para>Ez a leírás azt mutatja be, hogyan
telepítsük &os; rendszerekre a <application>&matlab;
version 6.5</application> Linux változatát. A
<application>&java.virtual.machine;</application> (lásd
<xref linkend="matlab-jre"/>) használatától
eltekintve meglepően jól működik.</para>
<para>A <application>&matlab;</application> Linux változata
közvetlenül megrendelhető a The MathWorks-től,
a <ulink url="http://www.mathworks.com"></ulink> címen. Ne
felejtsük el beszerezni a licencállományt
és az elkészítéséhez
szükséges útmutatót. Ha már
úgyis arra járunk, jelezzük a
fejlesztőknek, hogy igényt tartanánk a
termékük natív &os;-s változatára
is!</para>
<sect2>
<title>A &matlab; telepítése</title>
<para>A <application>&matlab;</application>
telepítéséhez a következőket kell
tennünk:</para>
<procedure>
<step>
<para>Helyezzük be a telepítő CD-t és
csatlakoztassuk. A telepítőszkript
javaslatának megfelelően váltsunk
át a <username>root</username>
felhasználóra. A szóbanforgó
szkript elindításához
gépeljük be a következőt:</para>
<screen>&prompt.root; <userinput>/compat/linux/bin/sh /cdrom/install</userinput></screen>
<tip>
<para>A telepítő grafikus. Ha a
megjelenítő használatáról
szóló hibaüzeneteket kapunk, akkor
adjuk ki a <command>setenv HOME
~<replaceable>FELHASZNÁLÓ</replaceable></command>
parancsot, ahol a
<replaceable>FELHASZNÁLÓ</replaceable> annak
a felhasználónak a neve legyen, amivel az
imént meghívtuk a &man.su.1;
programot.</para>
</tip>
</step>
<step>
<para>Amikor a <application>&matlab;</application>
könyvtárát kell megadnunk, ezt
írjuk be:
<userinput>/compat/linux/usr/local/matlab</userinput>.</para>
<tip>
<para>A telepítés további
részeinek megkönnyítése
érdekében írjuk be ezt a
parancssorba: <command>set
MATLAB=/compat/linux/usr/local/matlab</command></para>
</tip>
</step>
<step>
<para>Miután megkaptuk a
<application>&matlab;</application> licencét, az
útmutatás szerint szerkesszük
át.</para>
<tip>
<para>A licencállományt a kedvenc
szövegszerkesztőnkkel akár már
korábban elő is
készíthetjük, és majd amikor a
telepítőnek szüksége lesz
rá, másoljuk be
<filename>$MATLAB/license.dat</filename> helyre.</para>
</tip>
</step>
<step>
<para>Futtassuk le a telepítést.</para>
</step>
</procedure>
<para>Ezzel befejeződött a
<application>&matlab;</application> hagyományos
telepítése. Innentől már csak a &os;
rendszer <quote>hozzátapasztásán</quote>
fogunk dolgozni.</para>
</sect2>
<sect2>
<title>A licenckezelő elindítása</title>
<procedure>
<step>
<para>Hozzunk létre szimbolikus linkeket a
licenckezelő szkriptjeire:</para>
<screen>&prompt.root; <userinput>ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW</userinput>
&prompt.root; <userinput>ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMW</userinput></screen>
</step>
<step>
<para>Hozzunk létre egy indítószkriptet
<filename>/usr/local/etc/rc.d/flexlm.sh</filename>
néven. A lentebb látható minta a
<application>&matlab;</application>hoz mellékelt
<filename>$MATLAB/etc/rc.lm.glnx86</filename>
állomány egy módosított
változata. Benne az állományok
helyét és a licenckezelő
indításának
körülményeit változtattuk meg (hogy
Linux emuláció alatt fusson).</para>
<programlisting>#!/bin/sh
case "$1" in
start)
if [ -f /usr/local/etc/lmboot_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u <replaceable>felhasználó</replaceable> &amp;&amp; echo 'MATLAB_lmgrd'
fi
;;
stop)
if [ -f /usr/local/etc/lmdown_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmdown_TMW &gt; /dev/null 2&gt;&amp;1
fi
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0</programlisting>
<important>
<para>Tegyük ezt az állományt
végrehajthatóvá:</para>
<screen>&prompt.root; <userinput>chmod +x /usr/local/etc/rc.d/flexlm.sh</userinput></screen>
<para>A fenti szkriptben cseréljük ki a
<replaceable>felhasználó</replaceable>
nevét a rendszerünkben levő egyik
felhasználó nevére (ami persze nem a
<username>root</username>).</para>
</important>
</step>
<step>
<para>A licenckezelőt az alábbi paranccsal
indítsuk el:</para>
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/flexlm.sh start</userinput></screen>
</step>
</procedure>
</sect2>
<sect2 id="matlab-jre">
<title>A &java; futtató környezet
élesítése</title>
<para>A <application>&java;</application> futtató
környezet (&java; Runtime Environment, JRE) linkjét
irányítsuk át egy &os; alatt
működő változatéra:</para>
<screen>&prompt.root; <userinput>cd $MATLAB/sys/java/jre/glnx86/</userinput>
&prompt.root; <userinput>unlink jre; ln -s ./jre1.1.8 ./jre</userinput></screen>
</sect2>
<sect2>
<title>A &matlab; indítószkriptjének
elkészítése</title>
<procedure>
<step>
<para>Hozzunk létre egy ilyen
indítószkriptet a
<filename>/usr/local/bin/matlab</filename>
könyvtárban:</para>
<programlisting>#!/bin/sh
/compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"</programlisting>
</step>
<step>
<para>Futtassuk le a <command>chmod +x
/usr/local/bin/matlab</command> parancsot.</para>
</step>
</procedure>
<tip>
<para>A szkript lefutása során az <filename
role="package">emulators/linux_base</filename>
verziójától függően
hibákat is kaphatunk. Ha el akarjuk kerülni
ezeket, akkor szerkesszük át a
<filename>/compat/linux/usr/local/matlab/bin/matlab</filename>
állomány következő
sorát:</para>
<programlisting>if [ `expr "$lscmd" : '.*-&gt;.*'` -ne 0 ]; then</programlisting>
<para>(a 13.0.1 számú verzióban ez 410.
sor) erre:</para>
<programlisting>if test -L $newbase; then</programlisting>
</tip>
</sect2>
<sect2>
<title>A &matlab; leállító
szkriptjének elkészítése</title>
<para>A &matlab; szabálytalan kilépéseit az
alábbi utasítások nyomán tudjuk
megszüntetni.</para>
<procedure>
<step>
<para>Hozzunk létre egy
<filename>$MATLAB/toolbox/local/finish.m</filename>
nevű állományt, majd írjuk bele
ezt a sort:</para>
<programlisting>! $MATLAB/bin/finish.sh</programlisting>
<note>
<para>A <literal>$MATLAB</literal> szöveget pontosan
így írjuk be.</para></note>
<tip>
<para>Ugyanebben a könyvtárban találjuk a
beállításaink kilépés
előtti mentéséért felelős
<filename>finishsav.m</filename> és
<filename>finishdlg.m</filename>
állományokat. Ha ezek valamelyikét
módosítjuk, akkor az előbbi parancsot
közvetlenül a <literal>save</literal>
után szúrjuk be.</para>
</tip>
</step>
<step>
<para>Hozzunk létre egy
<filename>$MATLAB/bin/finish.sh</filename>
állományt, amelyben szerepeljen a
következő:</para>
<programlisting>#!/usr/compat/linux/bin/sh
(sleep 5; killall -1 matlab_helper) &amp;
exit 0</programlisting>
</step>
<step>
<para>Tegyük végrehajthatóvá:</para>
<screen>&prompt.root; <userinput>chmod +x $MATLAB/bin/finish.sh</userinput></screen>
</step>
</procedure>
</sect2>
<sect2 id="matlab-using">
<title>A &matlab; használata</title>
<para>Most már a <command>matlab</command> parancs
begépelésével bármikor
elindíthatjuk.</para>
</sect2>
</sect1>
<sect1 id="linuxemu-oracle">
<sect1info>
<authorgroup>
<author>
<firstname>Marcel</firstname>
<surname>Moolenaar</surname>
<contrib>Írta: </contrib>
</author>
</authorgroup>
</sect1info>
<title>Az &oracle; telepítése</title>
<indexterm>
<primary>alkalmazások</primary>
<secondary><application>Oracle</application></secondary>
</indexterm>
<sect2>
<title>Előszó</title>
<para>Ez a leírás azt mutatja be, hogyan
telepítsük &os;-re az <application>&oracle;
8.0.5</application> és <application>&oracle; 8.0.5.1
Enterprise Edition</application> Linux
változatait.</para>
</sect2>
<sect2>
<title>A Linux környezet telepítése</title>
<para>Telepítsük az <filename
role="package">emulators/linux_base</filename> és
<filename role="package">devel/linux_devtools</filename>
portokat a Portgyűjteményből. Amennyiben ennek
során nehézségekbe
ütköznénk, próbálkozzunk a
korábbi változataikkal.</para>
<para>Fel kell raknunk a Red&nbsp;Hat Tcl csomagját is, ha
az alkalmazáshoz tartozó intelligens
ügynököt is futtatni szeretnénk. Ez a
<filename>tcl-8.0.3-20.i386.rpm</filename>. A hivatalos
<application>RPM</application> port
segítségével az alábbi
általános parancson keresztül tudunk
csomagokat telepíteni:</para>
<screen>&prompt.root; <userinput>rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm <replaceable>csomag</replaceable></userinput></screen>
<para>A <replaceable>csomag</replaceable>
telepítésének semmilyen hibát nem
kellene okoznia.</para>
</sect2>
<sect2>
<title>Az &oracle; környezetének
létrehozása</title>
<para>Az <application>&oracle;</application>
telepítéséhez először ki kell
alakítanunk a megfelelő környezetet. Ez a
leírás <emphasis>kifejezetten</emphasis>
arról szól, hogy &os;-n hogyan futtassuk a linuxos
<application>&oracle;</application>-t, nem pedig az
<application>&oracle;</application> telepítési
útmutatójában bemutatottakat
taglalja.</para>
<sect3 id="linuxemu-kernel-tuning">
<title>A rendszermag hangolása</title>
<indexterm><primary>a rendszermag
hangolása</primary></indexterm>
<para>Ahogy az <application>&oracle;</application>
telepítési útmutatójában is
olvashatjuk, be kell állítanunk az osztott
memória maximális méretét. &os;
alatt erre a célra ne használjuk az
<literal>SHMMAX</literal> értéket, mivel az
<literal>SHMMAX</literal> az <literal>SHMMAXPGS</literal>
és <literal>PGSIZE</literal>
értékekből számolódik ki.
Ezért nekünk itt a <literal>SHMMAXPGS</literal>
értékét kell meghatároznunk.
Minden egyéb beállítás
történhet az útmutatóban megadottak
szerint. Például:</para>
<programlisting>options SHMMAXPGS=10000
options SHMMNI=100
options SHMSEG=10
options SEMMNS=200
options SEMMNI=70
options SEMMSL=61</programlisting>
<para>Hangoljuk be ezeket az értékeket az
<application>&oracle;</application> tervezett
használatához.</para>
<para>Emellett a konfigurációs
állományban ne feledkezzünk meg az
alábbi beállítások
megadásáról sem:</para>
<programlisting>options SYSVSHM #SysV osztott memória
options SYSVSEM #SysV szemaforok
options SYSVMSG #SysV folyamatok közti kommunikáció</programlisting>
</sect3>
<sect3 id="linuxemu-oracle-account">
<title>Az &oracle; hozzáférése</title>
<para>Egy rendes hozzáféréshez
hasonlóan hozzunk létre egy külön
<username>oracle</username> hozzáférést
is rendszerünkön. Az <username>oracle</username>
hozzáférés csak annyiban
különleges, hogy linuxos
parancsértelmezőt kell társítanunk
hozzá. Ehhez vegyük fel
<literal>/compat/linux/bin/bash</literal> sort az
<filename>/etc/shells</filename> állományba,
majd állítsuk át az
<username>oracle</username> nevű
felhasználó
parancsértelmezőjét a
<filename>/compat/linux/bin/bash</filename> programra.</para>
</sect3>
<sect3 id="linuxemu-environment">
<title>Környezet</title>
<para>A megszokott <application>&oracle;</application>
környezeti változók, mint
például az <envar>ORACLE_HOME</envar> és
<envar>ORACLE_SID</envar> mellett még
definiálnunk kell a következőket is:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<colspec colwidth="1*"/>
<colspec colwidth="2*"/>
<thead>
<row>
<entry>Változó</entry>
<entry>Érték</entry>
</row>
</thead>
<tbody>
<row>
<entry><envar>LD_LIBRARY_PATH</envar></entry>
<entry><literal>$ORACLE_HOME/lib</literal></entry>
</row>
<row>
<entry><envar>CLASSPATH</envar></entry>
<entry><literal>$ORACLE_HOME/jdbc/lib/classes111.zip</literal></entry>
</row>
<row>
<entry><envar>PATH</envar></entry>
<entry><literal>/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</literal></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Javasoljuk, hogy az összes környezeti
változót a <filename>.profile</filename>
állományban adjuk meg. Ennek megfelelően a
példa beállításai így
fognak kinézni benne:</para>
<programlisting>ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=/oracle; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH
ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_TERM=386x; export ORACLE_TERM
CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
export CLASSPATH
PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin
PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin
export PATH</programlisting>
</sect3>
</sect2>
<sect2>
<title>Az &oracle; telepítése</title>
<para>A Linux emulátorban meghúzódó
apró egyenletlenségek miatt a
telepítés előtt létre kell hoznunk egy
<filename>.oracle</filename> nevű alkönyvtárat
a <filename>/var/tmp</filename> könyvtárban.
Helyezzük ezt az <username>oracle</username>
felhasználó tulajdonába. Ezt
követően minden további gond nélkül
képesek leszünk az
<application>&oracle;</application>
telepítésére. Ha netalán
mégis problémákba
ütköznénk, először mindig az
<application>&oracle;</application> telepítési
és konfigurációs állományait
ellenőrizzük! Az <application>&oracle;</application>
telepítése után rakjuk fel a
következő szakaszokban bemutatandó
javításokat.</para>
<para>Gyakran problémát okoz, ha a TCP protokollt
még nem telepítettük. Ennek
következményeképpen ugyanis nem tudnak
elindulni a TCP alapú szolgáltatások. Az
alábbi műveletek ebben igyekeznek
segíteni:</para>
<screen>&prompt.root; <userinput>cd $ORACLE_HOME/network/lib</userinput>
&prompt.root; <userinput>make -f ins_network.mk ntcontab.o</userinput>
&prompt.root; <userinput>cd $ORACLE_HOME/lib</userinput>
&prompt.root; <userinput>ar r libnetwork.a ntcontab.o</userinput>
&prompt.root; <userinput>cd $ORACLE_HOME/network/lib</userinput>
&prompt.root; <userinput>make -f ins_network.mk install</userinput></screen>
<para>Ne felejtsük el ismét elindítani a
<filename>root.sh</filename> szkriptet!</para>
<sect3 id="linuxemu-patch-root">
<title>A root.sh javítása</title>
<para>Az <application>&oracle;</application>
telepítése során
<username>root</username> (privilegizált)
felhasználóként elvégzendő
műveleteket a <filename>root.sh</filename>
elnevezésű szkriptben találjuk. Ez a
szkript az <filename>orainst</filename> könyvtárba
kerül. A <command>chown</command> parancs helyes
lefutásához alkalmazzuk az alább
mellékelt javítást, vagy az egész
szkriptet egy linuxos parancsértelmezőből
indítsuk el.</para>
<programlisting>*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
--- orainst/root.sh Mon Dec 28 15:58:53 1998
***************
*** 31,37 ****
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/bin/chown
#
# Define variables to be used in this script
--- 31,37 ----
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/usr/sbin/chown
#
# Define variables to be used in this script</programlisting>
<para>Ha nem CD-ről telepítjük az
<application>&oracle;</application>-t, akkor akár a
<filename>root.sh</filename> forrását is
kijavíthatjuk. A neve <filename>rthd.sh</filename>,
és a forrásfa <filename>orainst</filename>
könyvtárában találhatjuk.</para>
</sect3>
<sect3 id="linuxemu-patch-tcl">
<title>A genclntsh javítása</title>
<para>A <command>genclntsh</command> szkript a kliensek
által használt osztott könyvtár
létrehozására alkalmazható.
Általában demók
fordításához van rá
szükség. Az alábbi javítás
alkalmazásával a <envar>PATH</envar>
változó értéke
törölhető:</para>
<programlisting>*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
--- bin/genclntsh Tue Dec 22 15:36:49 1998
***************
*** 32,38 ****
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst
--- 32,38 ----
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst</programlisting>
</sect3>
</sect2>
<sect2>
<title>Az &oracle; futtatása</title>
<para>Ha rendesen követtük az iménti
utasításokat, akkor most már úgy
tudjuk futtatni az <application>&oracle;</application>-t, mintha
csak Linuxon futna.</para>
</sect2>
</sect1>
<sect1 id="sapr3">
<sect1info>
<authorgroup>
<author>
<firstname>Holger</firstname>
<surname>Kipp</surname>
<contrib>Írta: </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Valentino</firstname>
<surname>Vaschetto</surname>
<contrib>Az eredeti verziót SGML-re ültette:
</contrib>
</author>
</authorgroup>
</sect1info>
<title>Az &sap.r3; telepítése</title>
<indexterm>
<primary>alkalmazások</primary>
<secondary><application>SAP R/3</application></secondary>
</indexterm>
<para>Az <application>&sap;</application> típusú
rendszerek telepítéséhez &os;-re hivatalosan
nem kaphatunk műszaki segélynyújtást
&mdash; csak a minősített platformokat
támogatják.</para>
<sect2 id="preface">
<title>Előszó</title>
<para>Ez a leírás az
<application>&sap.r3;</application> rendszer és
<application>&oracle;</application> adatbázis Linux
változatainak telepítését mutatja be
&os;-n, beleértve a &os; és az
<application>&oracle;</application>
telepítését. Kétféle
konfigurációt írunk le:</para>
<itemizedlist>
<listitem>
<para><application>&sap.r3; 4.6B (IDES)</application> és
<application>&oracle; 8.0.5</application>, FreeBSD 4.3-STABLE</para>
</listitem>
<listitem>
<para><application>&sap.r3; 4.6C</application> és
<application>&oracle; 8.1.7</application>, FreeBSD 4.5-STABLE</para>
</listitem>
</itemizedlist>
<para>Habár ez a dokumentum igyekszik az összes fontos
lépést a lehető legrészletesebb
módon tárgyalni, semmiképpen sem
célja az <application>&oracle;</application> és az
<application>&sap.r3;</application> alkalmazásokhoz
mellékelt telepítési
útmutatók kiváltása.</para>
<para>A kifejezetten az <application>&sap;</application> vagy az
<application>&oracle;</application> Linux változataira
vonatkozó kérdések, valamint az
<application>&oracle;</application> és az
<application>&sap; OSS</application> konkrét
használatával kapcsolatos leírások
tekintetében a saját
dokumentációjukat olvassuk el.</para>
</sect2>
<sect2 id="software">
<title>A szoftver</title>
<para>Az <application>&sap;</application>
telepítéséhez az alábbi CD-ket
használtuk fel:</para>
<sect3 id="software-46b">
<title>&sap.r3; 4.6B, &oracle; 8.0.5</title>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>Név</entry>
<entry>Szám</entry>
<entry>Leírás</entry>
</row>
</thead>
<tbody>
<row>
<entry>KERNEL</entry>
<entry>51009113</entry>
<entry>SAP Kernel Oracle /
telepítő / AIX, Linux, Solaris</entry>
</row>
<row>
<entry>RDBMS</entry>
<entry>51007558</entry>
<entry>Oracle / RDBMS 8.0.5.X /
Linux</entry>
</row>
<row>
<entry>EXPORT1</entry>
<entry>51010208</entry>
<entry>IDES / DB-Export /
1. lemez</entry>
</row>
<row>
<entry>EXPORT2</entry>
<entry>51010209</entry>
<entry>IDES / DB-Export /
2. lemez</entry>
</row>
<row>
<entry>EXPORT3</entry>
<entry>51010210</entry>
<entry>IDES / DB-Export /
3. lemez</entry>
</row>
<row>
<entry>EXPORT4</entry>
<entry>51010211</entry>
<entry>IDES / DB-Export /
4. lemez</entry>
</row>
<row>
<entry>EXPORT5</entry>
<entry>51010212</entry>
<entry>IDES / DB-Export /
5. lemez</entry>
</row>
<row>
<entry>EXPORT6</entry>
<entry>51010213</entry>
<entry>IDES / DB-Export /
6. (utolsó) lemez</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Emellett még használtuk az
<application>&oracle; 8 Server</application> (az előzetes
8.0.5 változat a Linux 2.0.33 verziójához)
CD-jét is, amely igazából nem
feltétlenül szükséges, valamint a &os;
(a 4.3 RELEASE kiadása után nem sokkal levő)
4.3-STABLE változatát.</para>
</sect3>
<sect3 id="software-46c">
<title>&sap.r3; 4.6C SR2, &oracle; 8.1.7</title>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>Név</entry>
<entry>Szám</entry>
<entry>Leírás</entry>
</row>
</thead>
<tbody>
<row>
<entry>KERNEL</entry>
<entry>51014004</entry>
<entry>SAP Kernel Oracle /
SAP Kernel 4.6D változat / DEC, Linux</entry>
</row>
<row>
<entry>RDBMS</entry>
<entry>51012930</entry>
<entry>Oracle 8.1.7/ RDBMS /
Linux</entry>
</row>
<row>
<entry>EXPORT1</entry>
<entry>51013953</entry>
<entry>4.6C kiadás SR2 / Export
/ 1. lemez</entry>
</row>
<row>
<entry>EXPORT1</entry>
<entry>51013953</entry>
<entry>4.6C kiadás SR2 / Export
/ 2. lemez</entry>
</row>
<row>
<entry>EXPORT1</entry>
<entry>51013953</entry>
<entry>4.6C kiadás SR2 / Export
/ 3. lemez</entry>
</row>
<row>
<entry>EXPORT1</entry>
<entry>51013953</entry>
<entry>4.6C kiadás SR2 / Export
/ 4. (utolsó) lemez</entry>
</row>
<row>
<entry>LANG1</entry>
<entry>51013954</entry>
<entry>4.6C kiadás SR2 / Nyelvi
támogatás / német, angol, francia
/ 1. lemez</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>A telepítendő nyelvtől függően
egyéb nyelvi támogatást tartalmazó
CD használata is szükségessé
válhat. Itt most csak a német és angol
nyelveket használjuk, ezért elegendő az
első CD. Csendben hozzátesszük, hogy mind a
négy EXPORT CD száma megegyezik.
Ugyanígy a három nyelvi CD-nek is megegyeznek a
számai (ez eltér a 4.6B IDES kiadás CD
számozásától). Az
írás pillanatában a &os; 4.5-STABLE
(2002.03.20-i) változatát
használjuk.</para>
</sect3>
</sect2>
<sect2 id="sap-notes">
<title>&sap; füzetek</title>
<para>Az <application>&sap.r3;</application>
telepítésével kapcsolatban az alábbi
füzetek bizonyultak hasznosnak:</para>
<sect3 id="sap-notes-46b">
<title>&sap.r3; 4.6B, &oracle; 8.0.5</title>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Szám</entry>
<entry>Cím</entry>
</row>
</thead>
<tbody>
<row>
<entry>0171356</entry>
<entry>SAP Software on Linux: Essential
Comments</entry>
</row>
<row>
<entry>0201147</entry>
<entry>INST: 4.6C R/3 Inst. on UNIX -
Oracle</entry>
</row>
<row>
<entry>0373203</entry>
<entry>Update / Migration Oracle 8.0.5 --&gt;
8.0.6/8.1.6 LINUX</entry>
</row>
<row>
<entry>0072984</entry>
<entry>Release of Digital UNIX 4.0B for
Oracle</entry>
</row>
<row>
<entry>0130581</entry>
<entry>R3SETUP step DIPGNTAB terminates</entry>
</row>
<row>
<entry>0144978</entry>
<entry>Your system has not been installed
correctly</entry>
</row>
<row>
<entry>0162266</entry>
<entry>Questions and tips for R3SETUP on Windows
NT / W2K</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect3>
<sect3 id="sap-notes-46c">
<title>&sap.r3; 4.6C, &oracle; 8.1.7</title>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Szám</entry>
<entry>Cím</entry>
</row>
</thead>
<tbody>
<row>
<entry>0015023</entry>
<entry>Initializing table TCPDB (RSXP0004)
(EBCDIC)</entry>
</row>
<row>
<entry>0045619</entry>
<entry>R/3 with several languages or
typefaces</entry>
</row>
<row>
<entry>0171356</entry>
<entry>SAP Software on Linux: Essential
Comments</entry>
</row>
<row>
<entry>0195603</entry>
<entry>RedHat 6.1 Enterprise version:
Known problems</entry>
</row>
<row>
<entry>0212876</entry>
<entry>The new archiving tool SAPCAR</entry>
</row>
<row>
<entry>0300900</entry>
<entry>Linux: Released DELL Hardware</entry>
</row>
<row>
<entry>0377187</entry>
<entry>RedHat 6.2: important remarks</entry>
</row>
<row>
<entry>0387074</entry>
<entry>INST: R/3 4.6C SR2 Installation on
UNIX</entry>
</row>
<row>
<entry>0387077</entry>
<entry>INST: R/3 4.6C SR2 Inst. on UNIX -
Oracle</entry>
</row>
<row>
<entry>0387078</entry>
<entry>SAP Software on UNIX: OS Dependencies
4.6C SR2</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect3>
</sect2>
<sect2 id="hardware-requirements">
<title>Hardverkövetelmények</title>
<para>Az alábbi hardvereszközök
szükségesek az <application>&sap.r3;</application>
rendszer telepítéséhez. Az éles
használathoz ennél természetesen valamivel
több kell majd:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>Változat</entry>
<entry>4.6B</entry>
<entry>4.6C</entry>
</row>
</thead>
<tbody>
<row>
<entry>Processzor</entry>
<entry>Két &pentium; III 800MHz</entry>
<entry>Két &pentium; III 800MHz</entry>
</row>
<row>
<entry>Memória</entry>
<entry>1GB ECC</entry>
<entry>2GB ECC</entry>
</row>
<row>
<entry>Szabad hely a merevlemezen</entry>
<entry>50 - 60GB (IDES)</entry>
<entry>50 - 60GB (IDES)</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Éles használatra nagyobb
gyorsítótárral rendelkező &xeon;
processzorokat, nagysebességű
háttértárakat (SCSI, hardveres RAID
vezérlővel), USV és ECC memória
modulok ajánlottak. A nagy tárigényt
egyébként az előre beállított
IDES rendszer indokolja, ami egy 27&nbsp;GB méretű
adatbázist hoz létre a telepítés
során. Ez a terület általában
elegendő egy frissen induló rendszer és
hozzá tartozó alkalmazásadatok
tárolására.</para>
<sect3 id="hardware-46b">
<title>&sap.r3; 4.6B, &oracle; 8.0.5</title>
<para>A következő hardverkonfigurációt
használtuk: két 800 MHz-es &pentium;&nbsp;III
processzor és a hozzájuk tartozó alaplap,
egy &adaptec; 29160 Ultra160 SCSI-vezérlő (a
40/80&nbsp;GB méretű DLT szalagos meghajtó
és CD-meghajtó használatához)
és egy &mylex; &acceleraid; RAID-vezérlő (2
csatorna, 6.00-1-00 verziójú firmware és
32&nbsp;MB memória), amihez két 17&nbsp;GB-os
(tükrözött) merevlemez és négy
36&nbsp;GB-os merevlemez (RAID&nbsp;5) csatlakozik.</para>
</sect3>
<sect3 id="hardware-46c">
<title>&sap.r3; 4.6C, &oracle; 8.1.7</title>
<para>Itt a hardver egy &dell; &poweredge; 2500 volt:
kétprocesszoros alaplap, két darab
1000&nbsp;MHz-es &pentium;&nbsp;III processzorral
(fejenként 256&nbsp;KB
gyorsítótárral), 2&nbsp;GB PC133-as ECC
SDRAM memóriával, PERC/3 DC PCI
RAID-vezérlővel (128&nbsp;MB memória),
valamint egy EIDE DVD-meghajtóval. A
RAID-vezérlőre két, egyenként
18&nbsp;GB méretű merevlemezt (tükrözve)
és négy 36&nbsp;GB méretű
merevlemezt csatlakoztattunk (RAID&nbsp;5-ben).</para>
</sect3>
</sect2>
<sect2 id="installation">
<title>A &os; telepítése</title>
<para>Először is telepítenünk kell a &os;-t.
Ez több módon is lehetséges, ezekről a
<xref linkend="install-diff-media"/>ban olvashatunk
bővebben.</para>
<sect3 id="disk-layout">
<title>A lemezek felosztása</title>
<para>Az egyszerűség kedvéért az
<application>&sap.r3; 46B</application> és
<application>&sap.r3; 46C SR2</application>
telepítése során is ugyanazt a
felosztást használtuk. Egyedül az
eszközök nevei változtak, mivel a
telepítés eltérő hardvereken
történt (<filename>/dev/da</filename>) és
<filename>/dev/amr</filename>, tehát ha az AMI
&megaraid; esetén a <filename>/dev/da0s1a</filename>
helyett a <filename>/dev/amr0s1a</filename> eszközt
láthatjuk):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>Állományrendszer</entry>
<entry>Méret</entry>
<entry>Csatlakozási pont</entry>
</row>
</thead>
<tbody>
<row>
<entry><filename>/dev/da0s1a</filename></entry>
<entry>1&nbsp;GB</entry>
<entry><filename>/</filename></entry>
</row>
<row>
<entry><filename>/dev/da0s1b</filename></entry>
<entry>6&nbsp;GB</entry>
<entry>lapozóállomány</entry>
</row>
<row>
<entry><filename>/dev/da0s1e</filename></entry>
<entry>2&nbsp;GB</entry>
<entry><filename>/var</filename></entry>
</row>
<row>
<entry><filename>/dev/da0s1f</filename></entry>
<entry>8&nbsp;GB</entry>
<entry><filename>/usr</filename></entry>
</row>
<row>
<entry><filename>/dev/da1s1e</filename></entry>
<entry>45&nbsp;GB</entry>
<entry><filename>/compat/linux/oracle</filename></entry>
</row>
<row>
<entry><filename>/dev/da1s1f</filename></entry>
<entry>2&nbsp;GB</entry>
<entry><filename>/compat/linux/sapmnt</filename></entry>
</row>
<row>
<entry><filename>/dev/da1s1g</filename></entry>
<entry>2&nbsp;GB</entry>
<entry><filename>/compat/linux/usr/sap</filename></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Előre állítsuk be és
inicializáljuk a két logikai meghajtót a
&mylex; és a PERC/3 RAID-vezérlőkön.
A hozzá tartozó szoftver a
<acronym>BIOS</acronym> indításának
fázisában hívható be.</para>
<para>A lemezek felosztása némileg eltér az
&sap; által javasoltaktól, mivel az &sap;
szerint az <application>&oracle;</application>
könyvtárait (néhány másikkal
együtt) külön-külön érdemes
csatlakoztatni &mdash; mi most az
egyszerűsítés kedvéért csak
létrehoztuk ezeket.</para>
</sect3>
<sect3 id="makeworldandnewkernel">
<title>A <command>make world</command> és egy új
rendszermag</title>
<para>Töltsük le a legfrissebb -STABLE
forrásokat. Fordítsuk újra az
összes forrást (<command>make world</command>)
és a beállításainak
elvégzése után a saját
rendszermagunkat is. Itt ne felejtsük el megadni az
<application>&sap.r3;</application> és az
<application>&oracle;</application>
működéséhez szükséges
<link
linkend="kerneltuning">paramétereket</link>.</para>
</sect3>
</sect2>
<sect2 id="installingthelinuxenviornment">
<title>A Linux környezet telepítése</title>
<sect3 id="installinglinuxbase-system">
<title>Az linuxos alaprendszer telepítése</title>
<para>Elsőként a <link
linkend="linuxemu-libs-port">linux_base</link> portot kell
felraknunk (<username>root</username>
felhasználóként):</para>
<screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_base-fc4</userinput>
&prompt.root; <userinput>make install distclean</userinput></screen>
</sect3>
<sect3 id="installinglinuxdevelopment">
<title>A linuxos fejlesztői környezet
telepítése</title>
<para>Ha az <application>&oracle;</application>-t &os;-re a
<xref linkend="linuxemu-oracle"/>ban leírtak szerint
akarjuk telepíteni, akkor szükségünk
lesz a linuxos fejlesztőeszközökre is:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/devel/linux_devtools</userinput>
&prompt.root; <userinput>make install distclean</userinput></screen>
<para>A linuxos fejlesztőkörnyezetet csak az
<application>&sap.r3; 46B IDES</application>
telepítésénél raktuk fel. Nincs
rá szükségünk, ha a &os; rendszeren
nem akarjuk újralinkelni az
<application>&oracle;</application> adatbázist.
Pontosan ez a helyzet, amikor egy Linux rendszerhez
gyártott <application>&oracle;</application>
készletet használunk.</para>
</sect3>
<sect3 id="installingnecessaryrpms">
<title>A szükséges RPM csomagok
telepítése</title>
<indexterm><primary>RPM</primary></indexterm>
<para>Az <command>R3SETUP</command>
elindításához PAM
támogatásra is szükségünk lesz.
Amikor először próbáltuk meg
telepíteni a &os; 4.3-STABLE változatára
az <application>&sap;</application>-t, felraktuk a PAM-et
és az összes hozzá tartozó csomagot,
majd végül úgy bírtuk
működésre, hogy
kényszerítettük a PAM
telepítését is. Az <application>&sap.r3;
4.6C SR2</application> esetén szintén
sikerült önmagában felrakni a PAM RPM
csomagját is, tehát úgy néz ki,
hogy a függőségeit már nem kell
telepíteni: </para>
<screen>&prompt.root; <userinput>rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \
pam-0.68-7.i386.rpm</userinput></screen>
<para>Az <application>&oracle; 8.0.5</application>
verziójához mellékelt intelligens
ügynök futtatásához fel kell rakni a
RedHat <filename>tcl-8.0.5-30.i386.rpm</filename> nevű
Tcl csomagját is (máskülönben a az
<application>&oracle;</application> telepítése
közben szükséges újralinkelés
nem fog működni). Vannak ugyan
egyébként is gondok az
<application>&oracle;</application>
újralinkelésével, azonban ez linuxos
probléma, nem pedig &os;-s.</para>
</sect3>
<sect3 id="linuxprocandfallbackelfbrand">
<title>Néhány további tipp</title>
<para>Hasznos lehet, ha felvesszük a
<literal>linprocfs</literal> bejegyzést az
<filename>/etc/fstab</filename> állományba.
Ennek pontos részleteit a &man.linprocfs.5; man oldalon
találjuk meg. Másik fontos paraméter a
<literal>kern.fallback_elf_brand=3</literal>, amelyet az
<filename>/etc/sysctl.conf</filename> állományba
kell beszúrnunk.</para>
</sect3>
</sect2>
<sect2 id="creatingsapr3env">
<title>Az &sap.r3; környezetének
létrehozása</title>
<sect3 id="filesystemsandmountpoints">
<title>A szükséges állományrendszerek
és csatlakozási pontok
létrehozása</title>
<para>Egy egyszerűbb telepítéshez elég
csupán a következő
állományrendszereket
elkészíteni:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>csatlakozási pont</entry>
<entry>méret GB-ban</entry>
</row>
</thead>
<tbody>
<row>
<entry><filename>/compat/linux/oracle</filename></entry>
<entry>45 GB</entry>
</row>
<row>
<entry><filename>/compat/linux/sapmnt</filename></entry>
<entry>2 GB</entry>
</row>
<row>
<entry><filename>/compat/linux/usr/sap</filename></entry>
<entry>2 GB</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Készítenünk kell még
néhány linket is, különben az
<application>&sap;</application> telepítője
panaszkodni fogni az ellenőrzésük
során:</para>
<screen>&prompt.root; <userinput>ln -s /compat/linux/oracle /oracle</userinput>
&prompt.root; <userinput>ln -s /compat/linux/sapmnt /sapmnt</userinput>
&prompt.root; <userinput>ln -s /compat/linux/usr/sap /usr/sap</userinput></screen>
<para>Az egyik ilyen telepítés közben
megjelenő hibaüzenet (a <emphasis>PRD</emphasis>
rendszer és az <application>&sap.r3; 4.6C
SR2</application> telepítése
esetén):</para>
<screen>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'</screen>
</sect3>
<sect3 id="creatingusersanddirectories">
<title>A felhasználók és
könyvtárak létrehozása</title>
<para>Az <application>&sap.r3;</application> rendszernek
két felhasználóra és három
csoportra van szüksége. Az igényelt
felhasználók nevei az
<application>&sap;</application> rendszer
azonosítójától (System ID, SID)
függenek, amely három betűből
áll. Egyes ilyen rendszerazonosítók az
<application>&sap;</application> számára vannak
fenntartva. (Például a <literal>SAP</literal>
és a <literal>NIX</literal>. Ezek teljes
listáját az <application>&sap;</application>
dokumentációjában találjuk meg.)
Erre az IDES telepítéséhez az
<literal>IDS</literal>, a 4.6C SR2
telepítésénél a
<literal>PRD</literal> neveket adtuk, mivel ezeket a
rendszereket éles használatra
szánták. Ennélfogva a
következő csoportokat hoztuk létre
hozzájuk (a csoportok azonosítói ugyan
eltérhetnek az általunk
használtaktól):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>csoport azonosítója</entry>
<entry>csoport neve</entry>
<entry>leírás</entry>
</row>
</thead>
<tbody>
<row>
<entry>100</entry>
<entry>dba</entry>
<entry>Adatbázis adminisztrátor</entry>
</row>
<row>
<entry>101</entry>
<entry>sapsys</entry>
<entry>&sap; rendszer</entry>
</row>
<row>
<entry>102</entry>
<entry>oper</entry>
<entry>Adatbázis operátor</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Az <application>&oracle;</application>
alapértelmezett
telepítésénél csak a
<groupname>dba</groupname> csoport jön létre. A
<groupname>dba</groupname> csoportot
<groupname>oper</groupname> csoportként is
használhatjuk (bővebb
információkért lásd az
<application>&oracle;</application> és az
<application>&sap;</application>
dokumentációját).</para>
<para>Ezenkívül az alábbi
felhasználókra van még
szükségünk:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="6">
<thead>
<row>
<entry>felhasználói
azonosító</entry>
<entry>felhasználói név</entry>
<entry>általános név</entry>
<entry>csoport</entry>
<entry>egyéb csoportok</entry>
<entry>leírás</entry>
</row>
</thead>
<tbody>
<row>
<entry>1000</entry>
<entry>idsadm/prdadm</entry>
<entry><replaceable>sid</replaceable>adm</entry>
<entry>sapsys</entry>
<entry>oper</entry>
<entry>&sap; adminisztrátor</entry>
</row>
<row>
<entry>1002</entry>
<entry>oraids/oraprd</entry>
<entry>ora<replaceable>sid</replaceable></entry>
<entry>dba</entry>
<entry>oper</entry>
<entry>&oracle; adminisztrátor</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Az &man.adduser.8; parancs használata során
a következőkre lesz szükségünk egy
<quote>&sap; Administrator</quote>
létrehozásához (figyeljük a
parancsértelmezőt (shell) és a
felhasználói könyvtárat (home
directory)):</para>
<programlisting>Name: <replaceable>sid</replaceable>adm
Password: ******
Fullname: SAP Administrator <replaceable>SID</replaceable>
Uid: 1000
Gid: 101 (sapsys)
Class:
Groups: sapsys dba
HOME: /home/<replaceable>sid</replaceable>adm
Shell: bash (/compat/linux/bin/bash)</programlisting>
<para>Ugyanígy az <quote>&oracle; Administrator</quote>
esetében:</para>
<programlisting>Name: ora<replaceable>sid</replaceable>
Password: ******
Fullname: Oracle Administrator <replaceable>SID</replaceable>
Uid: 1002
Gid: 100 (dba)
Class:
Groups: dba
HOME: /oracle/<replaceable>sid</replaceable>
Shell: bash (/compat/linux/bin/bash)</programlisting>
<para>A <groupname>dba</groupname> és
<groupname>oper</groupname> csoportok használata
során ne felejtsük el megadni az
<groupname>oper</groupname> csoportot sem.</para>
</sect3>
<sect3 id="creatingdirectories">
<title>Könyvtárak létrehozása</title>
<para>A könyvtárakat általában
külön állományrendszerekként
hozzák létre, de ez teljesen az
igényeinken múlik. Mi most egyszerű
könyvtárakként alakítottuk ki
ezeket, ezért tulajdonképpen ugyanazon a
RAID&nbsp;5 tömbön találhatóak
meg:</para>
<para>Ehhez először beállítjuk az egyes
könyvtárak tulajdonosait és
engedélyeit (<username>root</username>
felhasználóként):</para>
<screen>&prompt.root; <userinput>chmod 775 /oracle</userinput>
&prompt.root; <userinput>chmod 777 /sapmnt</userinput>
&prompt.root; <userinput>chown root:dba /oracle</userinput>
&prompt.root; <userinput>chown <replaceable>sid</replaceable>adm:sapsys /compat/linux/usr/sap</userinput>
&prompt.root; <userinput>chmod 775 /compat/linux/usr/sap</userinput></screen>
<para>Másodsorban
<username>ora<replaceable>sid</replaceable></username>
felhasználóként hozzuk létre az
<filename>/oracle/<replaceable>SID</replaceable></filename>
alkönyvtárait:</para>
<screen>&prompt.root; <userinput>su - ora<replaceable>sid</replaceable></userinput>
&prompt.root; <userinput>cd /oracle/<replaceable>SID</replaceable></userinput>
&prompt.root; <userinput>mkdir mirrlogA mirrlogB origlogA origlogB</userinput>
&prompt.root; <userinput>mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6</userinput>
&prompt.root; <userinput>mkdir saparch sapreorg</userinput>
&prompt.root; <userinput>exit</userinput></screen>
<para>Az <application>&oracle; 8.1.7</application>
telepítésénél még
további könyvtárakra is
szükségünk lesz:</para>
<screen>&prompt.root; <userinput>su - ora<replaceable>sid</replaceable></userinput>
&prompt.root; <userinput>cd /oracle</userinput>
&prompt.root; <userinput>mkdir 805_32</userinput>
&prompt.root; <userinput>mkdir client stage</userinput>
&prompt.root; <userinput>mkdir client/80x_32</userinput>
&prompt.root; <userinput>mkdir stage/817_32</userinput>
&prompt.root; <userinput>cd /oracle/<replaceable>SID</replaceable></userinput>
&prompt.root; <userinput>mkdir 817_32</userinput></screen>
<note>
<para>A <filename>client/80x_32</filename>
könyvtárnak pontosan ilyen névvel kell
rendelkeznie. Ne cseréljük ki a benne
szereplő <emphasis>x</emphasis>-et semmire se!</para>
</note>
<para>A harmadik lépésben létrehozzuk a
<username><replaceable>sid</replaceable>adm</username>
felhasználóhoz tartozó
könyvtárakat:</para>
<screen>&prompt.root; <userinput>su - <replaceable>sid</replaceable>adm</userinput>
&prompt.root; <userinput>cd /usr/sap</userinput>
&prompt.root; <userinput>mkdir <replaceable>SID</replaceable></userinput>
&prompt.root; <userinput>mkdir trans</userinput>
&prompt.root; <userinput>exit</userinput></screen>
</sect3>
<sect3 id="entriesinslashetcslashservices">
<title>Az <filename>/etc/services</filename></title>
<para>A <application>&sap.r3;</application>
működéséhez fel kell vennünk
néhány olyan bejegyzést is az
<filename>/etc/services</filename> állományba,
amelyek a &os; telepítése során nem
jönnek létre. Így tehát
írjuk be az alábbi sorokat (legalább a
használni kívánt példány
számához illő sorokat adjuk meg &mdash; ez
jelen esetünkben most a <literal>00</literal>.
Természetesen az sem okoz gondot, ha a
<literal>dp</literal>, <literal>gw</literal>,
<literal>sp</literal> és <literal>ms</literal>
esetén beírjuk az összes
példánynak megfelelő portot
<literal>00</literal>-tól <literal>99</literal>-ig).
Amennyiben a <application>SAProuter</application> vagy az
<application>&sap;</application> OSS
használatára lenne szükségünk,
akkor adjuk meg a <application>SAProuter</application>
által lefoglalt <literal>99</literal>-es
példánynak megfelelő 3299-es portot a
rendszerünkön:</para>
<programlisting>
sapdp00 3200/tcp # SAP menetirányító 3200 + a példány száma
sapgw00 3300/tcp # SAP átjáró 3300 + a példány száma
sapsp00 3400/tcp # 3400 + a példány száma
sapms00 3500/tcp # 3500 + a példány száma
sapms<replaceable>SID</replaceable> 3600/tcp # SAP üzenetkezelő szerver 3600 + a példány száma
sapgw00s 4800/tcp # biztonságos SAP átjáró 4800 + a példány száma</programlisting>
</sect3>
<sect3 id="necessarylocales">
<title>A szükséges nyelvi
beállítások</title>
<indexterm><primary>nyelvi
beállítás</primary></indexterm>
<para>Az <application>&sap;</application>-nek legalább
két olyan nyelvre van szüksége, amely nem
része az alap RedHat telepítéseknek. Az
&sap; a saját FTP szervereiről
elérhetővé tette az ehhez
szükséges RPM csomagokat (amelyek viszont csak OSS
típusú hozzáférés
birtokában tölthetőek le). A 0171356
számú jegyzet tartalmazza a beszerzendő
RPM-ek listáját.</para>
<para>Megcsinálhatjuk úgy is, hogy egyszerűen
csak linkeket hozunk létre (például a
<emphasis>de_DE</emphasis> és
<emphasis>en_US</emphasis> könyvtárakra),
habár ezt egy éles rendszer esetében
semmiképpen sem ajánljuk (az IDES rendszerrel
tapasztalataink szerint eddig még remekül
működött). Az alábbi nyelvi
beállítások fognak tehát
nekünk kelleni:</para>
<programlisting>de_DE.ISO-8859-1
en_US.ISO-8859-1</programlisting>
<para>Így hozzuk létre hozzájuk a
linkeket:</para>
<screen>&prompt.root; <userinput>cd /compat/linux/usr/share/locale</userinput>
&prompt.root; <userinput>ln -s de_DE de_DE.ISO-8859-1</userinput>
&prompt.root; <userinput>ln -s en_US en_US.ISO-8859-1</userinput></screen>
<para>A telepítés során az iméntiek
hiánya gondokat okozhat. Ha folyamatosan figyelmen
kívül hagyjuk az ezekből fakadó
hibákat (vagyis a <filename>CENTRDB.R3S</filename>
állományban a gondot okozó
lépések <literal>STATUS</literal>
értékét <literal>OK</literal>-ra
állítjuk), akkor komolyabb
erőfeszítések megtétele
nélkül majd képtelenek leszünk
bejelentkezni a frissen telepített
<application>&sap;</application> rendszerünkbe.</para>
</sect3>
<sect3 id="kerneltuning">
<title>A rendszermag finomhangolása</title>
<indexterm><primary>a rendszermag
finomhangolása</primary></indexterm>
<para>Az <application>&sap.r3;</application> rendszerek
temérdek mennyiségű erőforrást
igényelnek. Ennek
kielégítésére az alábbi
paramétereket adjuk hozzá a rendszermag
beállításait tartalmazó
állományhoz:</para>
<programlisting># Adjunk a memóriazabálóknak (SAP és Oracle):
options MAXDSIZ="(1024*1024*1024)"
options DFLDSIZ="(1024*1024*1024)"
# Kell néhány System V beállítás is:
options SYSVSHM # SYSV típusú osztott memória be
options SHMMAXPGS=262144 # a megosztható memória maximális mérete lapokban
#options SHMMAXPGS=393216 # a 46C telepítésekor ezt használjuk
options SHMMNI=256 # az osztott memóriákhoz tartozó azonosítók maximális száma
options SHMSEG=100 # a futó programonként megosztható szegmensek maximuma
options SYSVMSG # SYSV típusú üzenetsorok
options MSGSEG=32767 # a rendszerben keringő üzenetszegmensek maximális száma
options MSGSSZ=32 # az üzenetszegmensek mérete. 2 hatványa LEGYEN
options MSGMNB=65535 # maximális karakter üzenetsoronként
options MSGTQL=2046 # a rendszerben levő üzenetek maximuma
options SYSVSEM # SYSV típusú szemaforok
options SEMMNU=256 # a szemaforok UNDO struktúráinak száma
options SEMMNS=1024 # a rendszerben levő szemaforok száma
options SEMMNI=520 # a szemaforok azonosítóinak mennyisége
options SEMUME=100 # az UNDO kulcsok száma</programlisting>
<para>Az itt megadott minimum értékek az &sap;
által kiadott dokumentációkból
származnak. Mivel a Linux változathoz
erről nincs külön leírás,
ezért a (32 bites) HP-UX változat
dokumentációi között érdemes
ennek utánanézni. Mivel a 4.6C SR2
telepítéséhez használt rendszeren
valamivel több fizikai memória állt
rendelkezésünkre, ezért az osztott
szegmensek méretét nagyobbra tudtuk
megválasztani mind az <application>&sap;</application>,
mind az <application>&oracle;</application> esetében,
ami magyarázza a megosztható lapok nagyobb
számát.</para>
<note>
<para>A &os; &i386; változatának
telepítése során hagyjuk meg a
<literal>MAXDSIZ</literal> és
<literal>DFLDSIZ</literal> értékek
alapértelmezett 1&nbsp;GB-os maximumát.
Ellenkező esetben ezekhez hasonló furcsa
hibaüzeneteket láthatunk: <errorname>ORA-27102:
out of memory</errorname> vagy <errorname>Linux Error: 12:
Cannot allocate memory</errorname>.</para>
</note>
</sect3>
</sect2>
<sect2 id="installingsapr3">
<title>Az &sap.r3; telepítése</title>
<sect3 id="preparingsapcdroms">
<title>Az &sap; CD-k
előkészítése</title>
<para>Sok CD-t kell a telepítés során
mozgatni, tehát csatlakoztatni és
leválasztani. Ha viszont elegendő
meghajtóval rendelkezünk, akkor akár
csatlakoztathatjuk egyszerre is az összeset. Vagy
felmásolhatjuk a CD-k tartalmát a nekik
megfelelő könyvtárakba:</para>
<programlisting>/oracle/<replaceable>SID</replaceable>/sapreorg/<replaceable>cd-neve</replaceable></programlisting>
<para>ahol a <replaceable>cd-neve</replaceable> a
következők valamelyike: <filename>KERNEL</filename>,
<filename>RDBMS</filename>, <filename>EXPORT1</filename>,
<filename>EXPORT2</filename>, <filename>EXPORT3</filename>,
<filename>EXPORT4</filename>, <filename>EXPORT5</filename>
és <filename>EXPORT6</filename> (4.6B/IDES), valamint
<filename>KERNEL</filename>, <filename>RDBMS</filename>,
<filename>DISK1</filename>, <filename>DISK2</filename>,
<filename>DISK3</filename>, <filename>DISK4</filename>
és <filename>LANG</filename> (4.6C SR2). A
csatlakoztatott CD-ken található
állományok neveinek nagybetűseknek kell
lenniük. Ha nem így lenne, akkor a
csatlakoztatásnál adjuk meg a
<option>-g</option> opciót. Így tehát a
következő parancsokat kell kiadnunk:</para>
<screen>&prompt.root; <userinput>mount_cd9660 -g /dev/cd0a /mnt</userinput>
&prompt.root; <userinput>cp -R /mnt/* /oracle/<replaceable>SID</replaceable>/sapreorg/<replaceable>cd-neve</replaceable></userinput>
&prompt.root; <userinput>umount /mnt</userinput></screen>
</sect3>
<sect3 id="runningtheinstall-script">
<title>A telepítőszkript futtatása</title>
<para>Elsőként egy <filename
class="directory">install</filename> nevű
könyvtárat kell
előkészítenünk:</para>
<screen>&prompt.root; <userinput>cd /oracle/<replaceable>SID</replaceable>/sapreorg</userinput>
&prompt.root; <userinput>mkdir install</userinput>
&prompt.root; <userinput>cd install</userinput></screen>
<para>Ezután futtassuk le a
telepítőszkriptet, ami pedig bemásolja az
<filename class="directory">install</filename>
könyvtárba szinte az összes fontos
állományt:</para>
<screen>&prompt.root; <userinput>/oracle/<replaceable>SID</replaceable>/sapreorg/KERNEL/UNIX/INSTTOOL.SH</userinput></screen>
<para>Az IDES (4.6B) változathoz egy teljes &sap.r3;
bemutató rendszer is tartozik, ezért a
megszokott három CD helyett hat EXPORT
típusú CD-ből áll. Itt a
<filename>CENTRDB.R3S</filename> telepítősablon
csak a szabvány központi példányt
hozza létre (<application>&r3;</application> és
az adatbázis), az IDES központi
példányát már nem. Ezért
az <filename class="directory">EXPORT1</filename>
könyvtárból ki kell másolnunk a
<filename>CENTRDB.R3S</filename> állományt,
különben az <command>R3SETUP</command> csak
három EXPORT CD-t fog kérni.</para>
<para>Az újabb <application>&sap; 4.6 SR2</application>
kiadáshoz négy EXPORT CD tartozik. A
telepítés folyamatát a
<filename>CENTRAL.R3S</filename> állományban
levő paraméterek vezérlik. A
korábbi kiadásokkal ellentétben nincsenek
külön sablonok az adatbázissal és a
nélküle telepítendő központi
példányok számára. Az
<application>&sap;</application> az adatbázisok
telepítésére külön sablont
használ. Újrakezdéskor a
telepítést ettől függetlenül
elegendő az eredeti állománnyal
újraindítani.</para>
<para>A telepítés közben és
után az <application>&sap;</application>-nek a
<command>hostname</command> paranccsal csak a gép
saját nevét, nem pedig a teljes
hálózati nevét kell megadnunk. Ilyenkor
ezt vagy egyenként begépeljük, vagy
létrehozunk rá egy álnevet az
<username>ora<replaceable>sid</replaceable></username>
és
<username><replaceable>sid</replaceable>adm</username>
(valamint a megfelelő lépésekben a
<username>root</username>) felhasználóknak:
<command>alias hostname='hostname -s'</command>.
Ezenkívül még az
<application>&sap;</application> telepítésekor
létrehozott mindkét felhasználó
<filename>.profile</filename> és
<filename>.login</filename> állományait is
beállíthatjuk ennek megfelelően.</para>
</sect3>
<sect3 id="startr3setup-46B">
<title>Az <command>R3SETUP</command> 4.6B
verziójának indítása</title>
<para>Ne felejtsük el jól beállítani
az <envar>LD_LIBRARY_PATH</envar> környezeti
változót:</para>
<screen>&prompt.root; <userinput>export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/lib</userinput></screen>
<para>A telepítés könyvtárában
<username>root</username> felhasználóként
indítsuk el az <command>R3SETUP</command>
programot:</para>
<screen>&prompt.root; <userinput>cd /oracle/IDS/sapreorg/install</userinput>
&prompt.root; <userinput>./R3SETUP -f CENTRDB.R3S</userinput></screen>
<para>A szkript ezek után feltesz néhány
kérdést (az alapértelmezett
válaszok zárójelben,
közvetlenül a megadottak után):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>Kérdés</entry>
<entry>Alapértelmezés</entry>
<entry>Válasz</entry>
</row>
</thead>
<tbody>
<row>
<entry>Enter SAP System ID</entry>
<entry>[C11]</entry>
<entry>IDS<keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter SAP Instance Number</entry>
<entry>[00]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter SAPMOUNT Directory</entry>
<entry>[/sapmnt]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter name of SAP central host</entry>
<entry>[troubadix.domain.de]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter name of SAP db host</entry>
<entry>[troubadix]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Select character set</entry>
<entry>[1] (WE8DEC)</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter Oracle server version (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.6</entry>
<entry> </entry>
<entry>1<keycap>Enter</keycap></entry>
</row>
<row>
<entry>Extract Oracle Client archive</entry>
<entry>[1] (Yes, extract)</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter path to KERNEL CD</entry>
<entry>[/sapcd]</entry>
<entry>/oracle/IDS/sapreorg/KERNEL</entry>
</row>
<row>
<entry>Enter path to RDBMS CD</entry>
<entry>[/sapcd]</entry>
<entry>/oracle/IDS/sapreorg/RDBMS</entry>
</row>
<row>
<entry>Enter path to EXPORT1 CD</entry>
<entry>[/sapcd]</entry>
<entry>/oracle/IDS/sapreorg/EXPORT1</entry>
</row>
<row>
<entry>Directory to copy EXPORT1 CD</entry>
<entry>[/oracle/IDS/sapreorg/CD4_DIR]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter path to EXPORT2 CD</entry>
<entry>[/sapcd]</entry>
<entry>/oracle/IDS/sapreorg/EXPORT2</entry>
</row>
<row>
<entry>Directory to copy EXPORT2 CD</entry>
<entry>[/oracle/IDS/sapreorg/CD5_DIR]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter path to EXPORT3 CD</entry>
<entry>[/sapcd]</entry>
<entry>/oracle/IDS/sapreorg/EXPORT3</entry>
</row>
<row>
<entry>Directory to copy EXPORT3 CD</entry>
<entry>[/oracle/IDS/sapreorg/CD6_DIR]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter path to EXPORT4 CD</entry>
<entry>[/sapcd]</entry>
<entry>/oracle/IDS/sapreorg/EXPORT4</entry>
</row>
<row>
<entry>Directory to copy EXPORT4 CD</entry>
<entry>[/oracle/IDS/sapreorg/CD7_DIR]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter path to EXPORT5 CD</entry>
<entry>[/sapcd]</entry>
<entry>/oracle/IDS/sapreorg/EXPORT5</entry>
</row>
<row>
<entry>Directory to copy EXPORT5 CD</entry>
<entry>[/oracle/IDS/sapreorg/CD8_DIR]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter path to EXPORT6 CD</entry>
<entry>[/sapcd]</entry>
<entry>/oracle/IDS/sapreorg/EXPORT6</entry>
</row>
<row>
<entry>Directory to copy EXPORT6 CD</entry>
<entry>[/oracle/IDS/sapreorg/CD9_DIR]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter amount of RAM for SAP + DB</entry>
<entry> </entry>
<entry>850<keycap>Enter</keycap> (megabyte)</entry>
</row>
<row>
<entry>Service Entry Message Server</entry>
<entry>[3600]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter Group-ID of sapsys</entry>
<entry>[101]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter Group-ID of oper</entry>
<entry>[102]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter Group-ID of dba</entry>
<entry>[100]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter User-ID of <replaceable>sid</replaceable>adm</entry>
<entry>[1000]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter User-ID of ora<replaceable>sid</replaceable></entry>
<entry>[1002]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Number of parallel procs</entry>
<entry>[2]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Ha a CD-ket nem különböző helyekre
másoltuk, akkor az <application>&sap;</application>
telepítője nem fogja megtalálni ezeket (a
rajtuk levő <filename>LABEL.ASC</filename> segít
neki az azonosításban) és kérni
fogja a CD csatlakoztatását, illetve a
csatlakozási pontjának
megadását.</para>
<para>A <filename>CENTRDB.R3S</filename> sem minden esetben
mentes a hibáktól. A tapasztalataink szerint az
EXPORT4 címkéjű CD-t kérte
újra, miközben a helyes kulcsokat jelezte ki
(6_LOCATION, majd 7_LOCATION stb.), így egyszerűen
csak lépjünk tovább az
értékek meghagyásával.</para>
<para>Függetlenül az imént említett
problémáktól, egészen az &oracle;
adatbáziskezelő telepítéséig
mindennek működnie kellene.</para>
</sect3>
<sect3 id="startr3setup-46C">
<title>Az <command>R3SETUP</command> 4.6C SR2
elindítása</title>
<para>Állítsuk be jól az
<envar>LD_LIBRARY_PATH</envar> környezeti
változó értékét. Ez
némileg eltér a 4.6B és az
<application>&oracle; 8.0.5</application>
párosának
beállításától:</para>
<screen>&prompt.root; <userinput>export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/lib</userinput></screen>
<para>A telepítés
könyvtárából
<username>root</username> felhasználóként
indítsuk el az <command>R3SETUP</command>
programot:</para>
<screen>&prompt.root; <userinput>cd /oracle/PRD/sapreorg/install</userinput>
&prompt.root; <userinput>./R3SETUP -f CENTRAL.R3S</userinput></screen>
<para>A szkript ezek után feltesz néhány
kérdést (az alapértelmezett
válaszok zárójelben,
közvetlenül a megadottak után):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>Kérdés</entry>
<entry>Alapértelmezés</entry>
<entry>Válasz</entry>
</row>
</thead>
<tbody>
<row>
<entry>Enter SAP System ID</entry>
<entry>[C11]</entry>
<entry>PRD<keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter SAP Instance Number</entry>
<entry>[00]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter SAPMOUNT Directory</entry>
<entry>[/sapmnt]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter name of SAP central host</entry>
<entry>[majestix]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter Database System ID</entry>
<entry>[PRD]</entry>
<entry>PRD<keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter name of SAP db host</entry>
<entry>[majestix]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Select character set</entry>
<entry>[1] (WE8DEC)</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter Oracle server version (2) Oracle 8.1.7</entry>
<entry> </entry>
<entry>2<keycap>Enter</keycap></entry>
</row>
<row>
<entry>Extract Oracle Client archive</entry>
<entry>[1] (Yes, extract)</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter path to KERNEL CD</entry>
<entry>[/sapcd]</entry>
<entry>/oracle/PRD/sapreorg/KERNEL</entry>
</row>
<row>
<entry>Enter amount of RAM for SAP + DB</entry>
<entry>2044</entry>
<entry>1800<keycap>Enter</keycap> (megabyte)</entry>
</row>
<row>
<entry>Service Entry Message Server</entry>
<entry>[3600]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter Group-ID of sapsys</entry>
<entry>[100]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter Group-ID of oper</entry>
<entry>[101]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter Group-ID of dba</entry>
<entry>[102]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter User-ID of <username>oraprd</username></entry>
<entry>[1002]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter User-ID of <username>prdadm</username></entry>
<entry>[1000]</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>LDAP support</entry>
<entry> </entry>
<entry>3<keycap>Enter</keycap> (nincs
támogatás)</entry>
</row>
<row>
<entry>Installation step completed</entry>
<entry>[1] (continue)</entry>
<entry><keycap>Enter</keycap></entry>
</row>
<row>
<entry>Choose installation service</entry>
<entry>[1] (DB inst,file)</entry>
<entry><keycap>Enter</keycap></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Az OSUSERDBSID_IND_ORA és OSUSERIDADM_IND_ORA
lépésekben az
<username>ora<replaceable>sid</replaceable></username>
és
<username><replaceable>sid</replaceable>adm</username>
felhasználók létrehozása
hibákra futhat.</para>
<para>Függetlenül az említett
problémáktól, az &oracle;
adatbáziskezelő telepítéséig
mindennek remekül kell működnie.</para>
</sect3>
</sect2>
<sect2 id="installingoracle805">
<title>Az &oracle; 8.0.5 telepítése</title>
<para>Az <application>&oracle;</application> Linux
változatának telepítése során
felmerülő problémák tekintetében
keressük fel az &sap; füzeteket és az &oracle;
<filename>Readme</filename> állományait. A
legtöbb, ha nem is az összes gondot az
egymással nem kompatibilis
függvénykönyvtárak
okozzák.</para>
<para>Az <application>&oracle;</application>
telepítésének részleteit a <link
linkend="linuxemu-oracle">Az &oracle;
telepítése</link> című szakaszban
találjuk.</para>
<sect3 id="installingtheoracle805withorainst">
<title>Az &oracle; 8.0.5 telepítése az
<command>orainst</command>
segítségével</title>
<para>Az <application>&oracle;</application> 8.0.5
verziójának használata esetén
néhány további
függvénykönyvtár
újralinkelésére is szükség
lesz, mivel az <application>&oracle; 8.0.5</application>
még a régi glibc könyvtárral lett
fordítva (RedHat&nbsp;6.0), viszont a RedHat&nbsp;6.1
már a glibc újabb verzióját
használja. A linkelés
működéséhez az alábbi
csomagokat kell még telepítenünk:</para>
<itemizedlist>
<listitem><para><filename>compat-libs-5.2-2.i386.rpm</filename></para></listitem>
<listitem><para><filename>compat-glibc-5.2-2.0.7.2.i386.rpm</filename></para></listitem>
<listitem><para><filename>compat-egcs-5.2-1.0.3a.1.i386.rpm</filename></para></listitem>
<listitem><para><filename>compat-egcs-c++-5.2-1.0.3a.1.i386.rpm</filename></para></listitem>
<listitem><para><filename>compat-binutils-5.2-2.9.1.0.23.1.i386.rpm</filename></para></listitem>
</itemizedlist>
<para>A részleteket lásd az &sap; füzeteiben
vagy az &oracle; <filename>Readme</filename>
állományaiban. Amennyiben ez nem oldható
meg, akkor az eredeti binárisok, esetleg az eredeti
RedHat rendszerből származó
újralinkelt binárisok is
használhatóak (habár a
telepítés pillanatában személyesen
ezt nem tudtuk ellenőrizni).</para>
<para>Az intelligens ügynök
lefordításához fel kell raknunk a RedHat
saját Tcl csomagját. Ha ehhez nem tudjuk
beszerezni a <filename>tcl-8.0.3-20.i386.rpm</filename>
csomagot, akkor a RedHat&nbsp;6.1 változatához
készült <filename>tcl-8.0.5-30.i386.rpm</filename>
is megteszi.</para>
<para>Az újralinkeléstől eltekintve a
telepítés többi része szinte adja
magát:</para>
<screen>&prompt.root; <userinput>su - oraids</userinput>
&prompt.root; <userinput>export TERM=xterm</userinput>
&prompt.root; <userinput>export ORACLE_TERM=xterm</userinput>
&prompt.root; <userinput>export ORACLE_HOME=/oracle/IDS</userinput>
&prompt.root; <userinput>cd $ORACLE_HOME/orainst_sap</userinput>
&prompt.root; <userinput>./orainst</userinput></screen>
<para>Az <emphasis>&oracle; On-Line Text Viewer</emphasis>
kikapcsolásán (mivel az jelenleg Linux alatt sem
érhető el) kívül mindegyik
képernyőt hagyjuk jóvá az
<keycap>Enter</keycap> billentyű
lenyomásával. Az
<application>&oracle;</application> ezután a
rendelkezésre álló
<command>gcc</command>, <command>egcs</command> vagy
<command>i386-redhat-linux-gcc</command> helyett a
<command>i386-glibc20-linux-gcc</command>
használatával újra akarja linkelni
magát.</para>
<para>Idő hiányában az <application>&oracle;
8.0.5 PreProduction</application>
kiadásából emeltünk ki
binárisokat, de az adatbáziskezelő rendszer
felélesztésére tett első
kísérleteink kudarcba fulladtak, és
ezután a megfelelő RPM-ek összeszedése
valódi rémálomnak bizonyult.</para>
</sect3>
<sect3 id="installingtheoracle805preproduction">
<title>Az &oracle; 8.0.5 Pre-production Release for Linux
(Kernel 2.0.33) telepítése</title>
<para>A telepítés nagyon könnyű.
Csatlakoztassuk a CD-t, majd indítsuk el a
telepítőt. Ezután meg kell adnunk az
&oracle; felhasználói
könyvtárát és a telepítő
odamásolja az összes binárist.
Habár a telepítés megkezdése
előtt a korábbi kísérleteink
nyomát nem tüntettük el.</para>
<para>Ezt követően az
<application>&oracle;</application> adatbázisrendszer
minden további gond nélkül
elindítható.</para>
</sect3>
</sect2>
<sect2 id="installingoracle817">
<title>Az &oracle; 8.1.7 Linux változatának
telepítése</title>
<para>Szedjük le az <filename>oracle8172.tgz</filename>
állományt a Linux rendszeren létrehozott
könyvtárából, és bontsuk ki a
<filename>/oracle/<replaceable>SID</replaceable>/817_32/</filename>
könyvtárba.</para>
</sect2>
<sect2 id="continuewithsapr4installation">
<title>Az &sap.r3; telepítésének
folytatása</title>
<para>Először is ellenőrizzük az
<username>isamd</username> (<replaceable>sid</replaceable>adm)
és <username>oraids</username>
(ora<replaceable>sid</replaceable>) felhasználók
környezeti beállításait. A
<filename>.profile</filename>, <filename>.login</filename>
és <filename>.cshrc</filename>
állományaikban a korábbi
beállítások szerint kell szerepelnie a
<command>hostname</command> parancsnak. Ha még mindig a
teljes hálózati név lenne meg bennük,
akkor a <command>hostname</command> parancsot át kell
írni mind a három állományban a
<command>hostname -s</command> parancsra.</para>
<sect3 id="databaseload">
<title>Az adatbázis feltöltése</title>
<para>Ezután az <command>R3SETUP</command>
folytatható vagy újraindítható
(attól függően, hogy a kilépést
választottuk-e vagy sem). Az
<command>R3SETUP</command> ekkor létrehozza az
adatbázisban a táblákat és az
<command>R3load</command> meghívásával
feltölti ezeket adatokkal (a 46B IDES változat
esetében az EXPORT1 - EXPORT6, a 46C esetében
pedig a DISK1 - DISK4 lemezekről).</para>
<para>Amikor a feltöltés befejeződött (ami
akár órákig is eltarthat),
szükség lesz még néhány
jelszó megadására is. A
próbatelepítéseknél nyugodtan
használhatjuk a jól ismert
alapértelmezett jelszavakat (azonban
mindenképpen változtassuk meg ezeket, ha egy
kicsit is számít a biztonság!):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Kérdés</entry>
<entry>Válasz</entry>
</row>
</thead>
<tbody>
<row>
<entry>Enter Password for sapr3</entry>
<entry>sap<keycap>Enter</keycap></entry>
</row>
<row>
<entry>Confirum Password for sapr3</entry>
<entry>sap<keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter Password for sys</entry>
<entry>change_on_install<keycap>Enter</keycap></entry>
</row>
<row>
<entry>Confirm Password for sys</entry>
<entry>change_on_install<keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter Password for system</entry>
<entry>manager<keycap>Enter</keycap></entry>
</row>
<row>
<entry>Confirm Password for system</entry>
<entry>manager<keycap>Enter</keycap></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>A 4.6B telepítése során még
gondjaink akadtak a <command>dipgntab</command>
használatával.</para>
</sect3>
<sect3 id="listener">
<title>Az &oracle; Listener elindítása</title>
<para>Így kell elindítani az
<username>ora<replaceable>sid</replaceable></username>
felhasználóval az
<application>&oracle;</application> Listenert:</para>
<screen>&prompt.user; <userinput>umask 0; lsnrctl start</userinput></screen>
<para>Ha máshogy próbálkozunk, akkor az
<errorcode>ORA-12546</errorcode> kódú
hibát fogjuk kapni, mert a hálózati
portok socketei nem rendelkeznek a szükséges
engedélyekkel. Lásd a 072984-es &sap;
füzet.</para>
</sect3>
<sect3 id="mnlstables">
<title>Az MNLS táblák
frissítése</title>
<para>Ha nem Latin 1 kódolású nyelveket
akarunk importálni az <application>&sap;</application>
rendszerbe, akkor frissítenünk kell a
többnyelvű nyelvi támogatáshoz (Multi
National Language Support, MNLS) tartozó
táblázatokat. Ezek bemutatását a
15023 és 45619 számú &sap; OSS
füzetekben olvashatjuk. Minden más esetben az
<application>&sap;</application> telepítésekor
nyugodtan kihagyhatjuk.</para>
<note>
<para>Ha még nincs is konkrétan
szükségünk az MNLS-re, akkor is
ellenőriznünk és inicializálnunk
kell a TCPDB táblát. A 0015023 és
0045619 számú &sap; füzetekben tudhatunk
meg erről többet.</para>
</note>
</sect3>
</sect2>
<sect2 id="postinstallationsteps">
<title>Telepítés utáni teendők</title>
<sect3 id="requestsapr3licensekey">
<title>Az &sap.r3; licenckulcsának
megszerzése</title>
<para>Az <application>&sap.r3;</application>
licenckulcsát külön kell kérni.
Fontos, mert a telepítéshez használatos
ideiglenes licenc csak négy hétig
érvényes. Először szerezzük meg
a hardverkulcsot. Jelentkezzünk be az
<username>idsadm</username> felhasználóval
és adjuk ki a <command>saplicense</command>
parancsot:</para>
<screen>&prompt.root; <userinput>/sapmnt/IDS/exe/saplicense -get</userinput></screen>
<para>A <command>saplicense</command> paraméter
nélkül meghívására
válaszul opciókat listáz ki. A
licenckulcsot megérkezése után így
tudjuk élesíteni:</para>
<screen>&prompt.root; <userinput>/sapmnt/IDS/exe/saplicense -install</userinput></screen>
<para>Ezután a következő
értékeket kell megadni:</para>
<programlisting>SAP SYSTEM ID = <replaceable>SID, 3 karakter</replaceable>
CUSTOMER KEY = <replaceable>hardverkulcs, 11 karakter</replaceable>
INSTALLATION NO = <replaceable>telepítés száma, 10 számjegy</replaceable>
EXPIRATION DATE = <replaceable>ééééhhnn, tehát "99991231"</replaceable>
LICENSE KEY = <replaceable>licenckulcs, 24 karakter</replaceable></programlisting>
</sect3>
<sect3 id="creatingusers">
<title>A felhasználók
létrehozása</title>
<para>Hozzunk létre egy felhasználót a 000
kliensen belül (a csak rajta belül
elvégezhető feladatokhoz, aki
különbözik a <username>sap*</username>
és <username>ddic</username>
felhasználóktól).
Felhasználónévként
általában a <username>wartung</username> nevet
választottuk (ami angolul a
<username>service</username> névnek, avagy
szolgáltatásnak felel meg). A
<literal>sap_new</literal> és
<literal>sap_all</literal> nevű profilok is kellenek. A
biztonságosság kedvéért a kliens
összes alapértelmezett
felhasználójának (beleértve a
<username>sap*</username> és <username>ddic</username>
felhasználókat is) változtassuk meg a
jelszavát.</para>
</sect3>
<sect3 id="configtranssysprofileopermodesetc">
<title>A szállítási rendszer, a profilok,
működési módok stb.
beállítása</title>
<para>A <username>ddic</username> és
<username>sap*</username> felhasználóktól
eltérő nevű felhasználóval a
000 kliensen belül legalább a
következőket végezzük el:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Feladat</entry>
<entry>Tranzakció</entry>
</row>
</thead>
<tbody>
<row>
<entry>A szállítási rendszer (Transport
System) beállítása,
például a <emphasis>Stand-Alone Transport
Domain Entity</emphasis> értékre</entry>
<entry>STMS</entry>
</row>
<row>
<entry>A rendszer profiljának
létrehozása és
szerkesztése</entry>
<entry>RZ10</entry>
</row>
<row>
<entry>A működési módok és
példányok karbantartása</entry>
<entry>RZ04</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Az iménti és az összes többi
telepítés utáni lépések
leírása teljes egészében
megtalálható az <application>&sap;</application>
telepítési útmutatóiban.</para>
</sect3>
<sect3 id="editintsidsap">
<title>Az
<filename>init<replaceable>sid</replaceable>.sap</filename>
(<filename>initIDS.sap</filename>) szerkesztése</title>
<para>Az <filename>/oracle/IDS/dbs/initIDS.sap</filename>
állomány tartalmazza a
<application>&sap;</application> tartalék
profilját. Itt többek közt a
használni kívánt szalag
méretét, a tömörítés
típusát és hasonló
paramétereket kell definiálni. A
<command>sapdba</command> / <command>brbackup</command>
futtatásához a következő
értékeket változtattuk meg:</para>
<programlisting>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</programlisting>
<para>Magyarázat:</para>
<para><varname>compress</varname>
(tömörítés): HP DLT1
típusú szalagot használtunk, ami tud
hardveres tömörítést.</para>
<para><varname>archive_function</varname>
(archiválási házirend): Ez adja meg, hogy
alapértelmezés szerint mi történjen
az &oracle; archivált naplóival: az új
naplóállományok először a
szalagra mentődnek, majd a már lementett
naplók ismét mentésre kerülnek
és végül törlődnek. Ezzel sok
fejfájástól menekülünk meg,
mivel ilyenkor az archiváló szalagok esetleges
sérülése esetén is
valószínűleg képesek leszünk
visszaállítani az adatbázist.</para>
<para><varname>cpio_flags</varname> (a cpio
beállítása): A <option>-B</option>
használata alapértelmezés, amivel a
blokkok mérete 5120&nbsp;byte-ra
állítódik. A DLT típusú
szalagokhoz a HP legalább 32&nbsp;KB-os
blokkméretet javasolt, ezért a
<option>--block-size=128</option>
beállítással ezt 64&nbsp;KB-ra
növeltük. Szükségünk volt a
<option>--format=newc</option>
beállításra is, mivel 65535-nél
több inode számunk van. Az utolsó
beállítás a <option>--quiet</option>,
amivel megakadályozzuk, hogy a <command>cpio</command>
lementett blokkokat összefoglaló
kijelzésére begerjedjen a
<command>brbackup</command>.</para>
<para><varname>cpio_in_flags</varname> (a cpio bemeneti
beállításai): A szalagok
visszatöltésénél használt
beállítások. A formátumot
automatikusan felismeri.</para>
<para><varname>tape_size</varname> (szalagméret): Ezzel
adjuk meg általában a szalag nyers
kapacitását. Biztonsági okokból
(hardveres tömörítést
használunk) ez az érték a
ténylegesnél valamivel kisebb.</para>
<para><varname>tape_address</varname> (szalagos eszköz): a
<command>cpio</command> által használható
nem visszatekerhető eszköz.</para>
<para><varname>tape_address_rew</varname> (visszatekerhető
szalagos eszköz): A <command>cpio</command> által
használható visszatekerhető
eszköz.</para>
</sect3>
<sect3>
<title>Telepítés utáni
beállítások</title>
<para>Az <application>&sap;</application> alábbi
paramétereit kell beállítani a
telepítés után (IDES 46B, 1&nbsp;GB
memóriával):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Név</entry>
<entry>Érték</entry>
</row>
</thead>
<tbody>
<row>
<entry>ztta/roll_extension</entry>
<entry>250000000</entry>
</row>
<row>
<entry>abap/heap_area_dia</entry>
<entry>300000000</entry>
</row>
<row>
<entry>abap/heap_area_nondia</entry>
<entry>400000000</entry>
</row>
<row>
<entry>em/initial_size_MB</entry>
<entry>256</entry>
</row>
<row>
<entry>em/blocksize_kB</entry>
<entry>1024</entry>
</row>
<row>
<entry>ipc/shm_psize_40</entry>
<entry>70000000</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>0013026 &sap; füzet:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Név</entry>
<entry>Érték</entry>
</row>
</thead>
<tbody>
<row>
<entry>ztta/dynpro_area</entry>
<entry>2500000</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>0157246 &sap; füzet:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Név</entry>
<entry>Érték</entry>
</row>
</thead>
<tbody>
<row>
<entry>rdisp/ROLL_MAXFS</entry>
<entry>16000</entry>
</row>
<row>
<entry>rdisp/PG_MAXFS</entry>
<entry>30000</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<note>
<para>A fenti paraméterek használatával
egy 1&nbsp;gigabyte fizikai memóriával
rendelkező rendszer esetén
nagyjából így alakul a
memóriahasználat:</para>
<programlisting>Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K Free</programlisting>
<para>(547&nbsp;MB aktív, 305&nbsp;MB inaktív,
109&nbsp;MB rögzített, 40&nbsp;MB
gyorsítótár, 112&nbsp;MB puffer,
3492&nbsp;KB szabad)</para>
</note>
</sect3>
</sect2>
<sect2 id="problemsduringinstallation">
<title>A telepítés során adódó
problémák</title>
<sect3 id="restartr3setup">
<title>Az <command>R3SETUP</command>
újraindítása egy probléma
kijavítása után</title>
<para>Az <command>R3SETUP</command> hiba esetén
leáll. Miután átnéztük a
hibára utaló naplókat és
elhárítottuk a hiba okát, újra el
kell indítanunk az <command>R3SETUP</command>
programot, majd a REPEAT opció
kiválasztásával próbáljuk
megismételni az <command>R3SETUP</command> által
kifogásolt legutóbbi műveletet.</para>
<para>Az <command>R3SETUP</command>
újraindításához egyszerűen
adjuk meg a megfelelő <filename>R3S</filename>
állományt:</para>
<screen>&prompt.root; <userinput>./R3SETUP -f CENTRDB.R3S</userinput></screen>
<para>a 4.6B verzió esetén, vagy a</para>
<screen>&prompt.root; <userinput>./R3SETUP -f CENTRAL.R3S</userinput></screen>
<para>a 4.6C verzió esetén, függetlenül
attól, hogy a hiba a <filename>CENTRAL.R3S</filename>
vagy <filename>DATABASE.R3S</filename>
állományoknál keletkezett.</para>
<note>
<para>Egyes lépéseknél az
<command>R3SETUP</command> úgy véli, hogy az
<application>&sap;</application> programjai
működnek (mivel a hozzájuk tartozó
lépéseket már megtettük),
így a hibák miatt az adatbázist esetleg
korábban nem tudta elindítani. Ezért a
hibák kijavításának
végeztével az <command>R3SETUP</command>
ismételt indítása előtt
nekünk kell beindítani mind az
adatbázist, mind pedig az
<application>&sap;</application> rendszert.</para>
<para>Ne felejtsük el újra elindítani az
<application>&oracle;</application> Listener
segédprogramját sem (az
<username>ora<replaceable>sid</replaceable></username>
felhasználóval adjuk ki a <command>umask 0;
lsnrctl start</command> parancsot), ha az
időközben leállt volna
(például a rendszer kényszerű
újraindítása miatt).</para>
</note>
</sect3>
<sect3 id="indoraduringduringr3setup">
<title>OSUSERSIDADM_IND_ORA az <command>R3SETUP</command>
közben</title>
<para>Ha az <command>R3SETUP</command> panaszkodik ebben a
lépésben, akkor írjuk át az
általa ekkor használt sablont (a 4.6B
esetén ez a <filename>CENTRDB.R3S</filename>, illetve a
4.6C esetén ez a <filename>CENTRAL.R3S</filename> vagy
a <filename>DATABASE.R3S</filename>). Keressük a
<literal>[OSUSERSIDADM_IND_ORA]</literal> szöveget, vagy
csak a <literal>STATUS=ERROR</literal> bejegyzést, majd
írjuk be a következő
értékeket:</para>
<programlisting>HOME=/home/<replaceable>sid</replaceable>adm (üres volt)
STATUS=OK (ERROR státusza volt)
</programlisting>
<para>Ezután indítsuk újra az
<command>R3SETUP</command> programot.</para>
</sect3>
<sect3 id="indoraduringr3setup">
<title>OSUSERDBSID_IND_ORA az <command>R3SETUP</command>
közben</title>
<para>Az <command>R3SETUP</command> ebben a
lépésben is hajlamos panaszkodni. Az itt
felbukkanó hiba hasonló az OSUSERSIDADM_IND_ORA
lépésben jelentkezőhöz.
Szerkesszük át az <command>R3SETUP</command>
által ilyenkor használt sablont (4.6B
verzió esetén ez a
<filename>CENTRDB.R3S</filename>, illetve 4.6C
verziónál a <filename>CENTRAL.R3S</filename>
vagy <filename>DATABASE.R3S</filename>). Keressük meg a
<literal>[OSUSERDBSID_IND_ORA]</literal> részt, vagy
csak a <literal>STATUS=ERROR</literal> bejegyzést, majd
írjuk át az ebben a szakaszban szereplő
értéket így:</para>
<programlisting>STATUS=OK</programlisting>
<para>Indítsuk újra az <command>R3SETUP</command>
programot.</para>
</sect3>
<sect3 id="oraviewvrffilenotfound">
<title><errorname>oraview.vrf FILE NOT FOUND</errorname> hiba az
&oracle; telepítése közben</title>
<para>A telepítés megkezdése előtt nem
tiltottuk le az <emphasis>&oracle; On-Line Text
Viewer</emphasis> felrakását. Habár
Linux esetén ez nem használható,
alapértelmezés szerint mégis ki van
választva. Az &oracle; telepítő
menüjében tiltsuk le ezt és
nélküle kezdjük újra a
telepítést.</para>
</sect3>
<sect3 id="textenvincalid">
<title><errorname>TEXTENV_INVALID</errorname> hiba az
<command>R3SETUP</command>, RFC vagy SAPgui Start
programokban</title>
<para>Ha ilyen hibával kerülünk szembe, akkor
hiányoznak a megfelelő nyelvi
állományok. A 0171356 &sap; füzet
tartalmazza a telepítendő RPM csomagok
felsorolását (például a
RedHat&nbsp;6.1 esetén a
<filename>saplocales-1.0-3</filename> és
<filename>saposcheck-1.0-1</filename>). Amennyiben figyelmen
kívül hagyjuk az ilyen hibákat, és
az <command>R3SETUP</command> minden
kiakadásánál átírjuk (a
<filename>CENTRDB.R3S</filename> állományban) az
<literal>STATUS</literal> értékét az
<literal>ERROR</literal> értékről az
<literal>OK</literal> értékre és
újraindítjuk, az
<application>&sap;</application> nem
állítódik be jól és nem
tudunk a <application>SAPgui</application>
alkalmazással rácsatlakozni a frissen
telepített rendszerre még akkor sem, ha el
tudtuk indítani. Amikor a régebbi linuxos
<application>SAPgui</application> alkalmazással
csatlakozunk, a következő üzeneteket
kapjuk:</para>
<programlisting>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</programlisting>
<para>Ez a viselkedés annak köszönhető,
hogy az <application>&sap.r3;</application> nem képes
jól összerendelni a nyelvi
beállításokat, sőt, magát sem
képes jól beállítani
(hiányoznak némely bejegyzések az
adatbázis egyes tábláiban). Az
<application>&sap;</application>-hez úgy tudunk
ilyenkor csatlakozni, ha a <filename>DEFAULT.PFL</filename>
állományba felvesszük a következő
bejegyzéseket (lásd 0043288 füzet):</para>
<programlisting>abap/set_etct_env_at_new_mode = 0
install/collate/active = 0
rscp/TCP0B = TCP0B</programlisting>
<para>Majd indítsuk újra az egész
<application>&sap;</application> rendszert. Ezután
már tudunk csatlakozni hozzá, még ha az
országra jellemző nyelvi
beállítások nem is működnek
tökéletesen. Miután korrigáltuk az
ország beállításait (és
felraktuk a megfelelő nyelvi állományokat),
távolítsuk el az iménti
bejegyzéseket a <filename>DEFAULT.PFL</filename>
állományból és indítsuk
újra az <application>&sap;</application>
rendszert.</para>
</sect3>
<sect3 id="ora-00001">
<title>Az <errorcode>ORA-00001</errorcode> hiba</title>
<para>Ez a hiba &os; alatt az <application>&oracle;
8.1.7</application> használata során
következhet be. Akkor történik, amikor az
<application>&oracle;</application> adatbázis nem volt
képes rendesen inicializálni magát
és összeomlott, aminek révén
szemaforokat és memóriát hagyott
megosztva a rendszerben. Így az adatbázis
következő indításakor kapunk egy
kövér <errorcode>ORA-00001</errorcode>
hibát.</para>
<para>Az <command>ipcs -a</command> paranccsal keressük meg
ezeket, majd az <command>ipcrm</command>
segítségével pedig számoljuk
fel.</para>
</sect3>
<sect3 id="ora-00445pmon">
<title>Az <errorcode>ORA-00445</errorcode> (a PMON
háttérprogram nem indult el) hiba</title>
<para>Ez a hiba az <application>&oracle; 8.1.7</application>
használatakor következhet be. Akkor kapjuk ezt a
hibát, amikor <username>prdadm</username>
felhasználóként a elindítjuk
<command>startsap</command> szkriptet (például
<command>startsap_majestix_00</command>).</para>
<para>Erre gyógyír lehet, ha ehelyette az
adatbázis elindításához az
<username>oraprd</username> felhasználóval adjuk
ki az <command>svrmgrl</command> parancsot:</para>
<screen>&prompt.user; <userinput>svrmgrl</userinput>
SVRMGR&gt; <userinput>connect internal;</userinput>
SVRMGR&gt; <userinput>startup</userinput>;
SVRMGR&gt; <userinput>exit</userinput></screen>
</sect3>
<sect3 id="ora-12546">
<title>Az <errorcode>ORA-12546</errorcode> (A Listener
indítása megfelelő engedélyekkel)
hiba</title>
<para>Az <application>&oracle;</application> Listener
alkalmazását <username>oraids</username>
felhasználóként az alábbi
paranccsal indítsuk el:</para>
<screen>&prompt.root; <userinput>umask 0; lsnrctl start</userinput></screen>
<para>Máskülönben
<errorcode>ORA-12546</errorcode> hibát kapunk, mivel a
hálózati portokhoz tartozó socketek nem
rendelkeznek a megfelelő engedélyekkel.
Lásd 0072984 &sap; füzet.</para>
</sect3>
<sect3 id="ora-27102">
<title>Az <errorcode>ORA-27102</errorcode> (Nincs elég
memória) hiba</title>
<para>Akkor fordul elő ilyen hiba, amikor a
<literal>MAXDSIZ</literal> és
<literal>DFLDSIZ</literal> értékeit
1&nbsp;GB-nál (1024 x 1024 x 1024-nél) nagyobbra
állítottuk. Mellé még kapunk egy
<errorname>Linux Error 12: Cannot allocate memory</errorname>
hibát is.</para>
</sect3>
<sect3 id="dipgntabindind">
<title>[DIPGNTAB_IND_IND] az <command>R3SETUP</command>
közben</title>
<para>Erről alapvetően a 0130581 számú
&sap; füzet ad tájékoztatást (az
<command>R3SETUP</command> <literal>DIPGNTAB</literal>
lépése hibára fut). Az IDES
telepítése során az
<application>&sap;</application> rendszer valamiért az
<quote>IDS</quote> név helyett egy üres
karakterláncot használ. Ez a
könyvtárak elérésében kisebb
gondokat okoz, mivel az elérési útvonaluk
a <replaceable>SID</replaceable>-ből
generálódik (ami ebben az esetben az IDS).
Tehát a</para>
<programlisting>/usr/sap/IDS/SYS/...
/usr/sap/IDS/DVMGS00</programlisting>
<para>helyett a következőt próbálja meg
elérni:</para>
<programlisting>/usr/sap//SYS/...
/usr/sap/D00</programlisting>
<para>A telepítés folytatásához
létrehoztunk egy linket és egy másik
könyvtárat:</para>
<screen>&prompt.root; <userinput>pwd</userinput>
/compat/linux/usr/sap
&prompt.root; <userinput>ls -l</userinput>
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 -&gt; IDS/SYS
drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp
drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 trans</screen>
<para>Észrevettük, hogy a &sap; füzetekben
(0029227 és 0008401) ugyanezt a viselkedést
írják le. Az <application>&sap;
4.6C</application> telepítésénél
azonban ilyen hibával nem találkoztunk.</para>
</sect3>
<sect3 id="rfcrswboiniindind">
<title>[RFCRSWBOINI_IND_IND] az <command>R3SETUP</command>
közben</title>
<para>Az <application>&sap; 4.6C</application>
telepítése folyamán ez a hiba
csupán egy korábban bekövetkezett
másik hiba utóhatása volt. Itt át
kell néznünk az összes érintett
naplót és ki kell javítanunk a
tényleges problémát.</para>
<para>Amennyiben a naplók
átvizsgálása után csak ezt
találjuk egyedüli hibának (lásd
&sap; füzetek), állítsuk át (a
<filename>CENTRDB.R3S</filename> állományban) a
<literal>STATUS</literal> értékét az
<literal>OK</literal> értékre, majd
indítsuk újra az <command>R3SETUP</command>
programot. A telepítés befejezése
után hajtsuk végre az SE38
tranzakcióból az <literal>RSWBOINS</literal>
riportot. A további <literal>RFCRSWBOINI</literal>
és <literal>RFCRADDBDIF</literal>
lépésekkel kapcsolatban lásd a 0162266
&sap; füzetet.</para>
</sect3>
<sect3 id="rfcraddbdifindind">
<title>[RFCRADDBDIF_IND_IND] az <command>R3SETUP</command>
közben</title>
<para>Itt az előbbihez hasonló feltételek
élnek: mindenképpen ellenőrizzük a
naplókban, hogy a hibát nem egy korábban
keletkezett hiba okozta.</para>
<para>Ha tényleg csak az 0162266 &sap; füzetben
leírtak érvényesek, akkor (a
<filename>CENTRDB.R3S</filename> állományban)
állítsuk a gondot okozó
lépés <literal>STATUS</literal>
értékét az <literal>ERROR</literal>
értékről az <literal>OK</literal>
értékre, és indítsuk újra
az <command>R3SETUP</command> programot. A
telepítés után pedig hajtsuk végre
az SE38 tranzakciból az <literal>RADDBDIF</literal>
riportot.</para>
</sect3>
<sect3 id="sigactionsig31">
<title>A <errorcode>sigaction sig31: File size limit
exceeded</errorcode> hiba</title>
<para>Ez a <emphasis>disp és work</emphasis>
<application>&sap;</application> programok
indítása során történhet meg.
Az <application>&sap;</application> rendszert
indító <command>startsap</command>
szkriptről leválva indulnak el a többi
<application>&sap;</application> program
elindításáért felelős
alfolyamatok. Ennek eredményeképpen a szkript
maga nem fogja észrevenni a hibát.</para>
<para>Az <application>&sap;</application> programok
elindulását az <command>ps ax | grep
<replaceable>SID</replaceable></command> paranccsal tudjuk
ellenőrizni. Az eredményül kapott
listában az összes aktív
<application>&oracle;</application> és
<application>&sap;</application> programnak szerepelnie kell.
Ha ebből az tűnik ki, hogy bizonyos programok
hiányoznak, vagy nem képesek kapcsolódni
az <application>&sap;</application> rendszerhez, akkor az
<filename>/usr/sap/<replaceable>SID</replaceable>/DVEBMGS<replaceable>nr</replaceable>/work/</filename>
könyvtárban nézzük át a
hozzájuk tartozó
naplóállományokat. Elsősorban a
<filename>dev_ms</filename> és a
<filename>dev_disp</filename> állományok
fontosak számunkra.</para>
<para>A 31-es jelzés akkor keletkezik, ha az
<application>&oracle;</application> és az
<application>&sap;</application> által használt
osztott memória mértéke meghaladja a
rendszermag beállításai közt
megadott értéket. Ezt tehát ennek
növelésével lehet orvosolni:</para>
<programlisting># az éles 46C rendszereknek több kell:
options SHMMAXPGS=393216
# a 46B beéri kevesebbel is:
#options SHMMAXPGS=262144</programlisting>
</sect3>
<sect3 id="saposcolfails">
<title>A <command>saposcol</command> nem indul</title>
<para>A <command>saposcol</command> (4.6D verzió)
programmal akad néhány probléma. Az
<application>&sap;</application> rendszer az
<command>saposcol</command> segítségével
próbál adatokat gyűjteni a rendszer
teljesítményéről. Mivel ez a
program nem feltétlenül szükséges az
<application>&sap;</application> rendszer
működéséhez, ez a probléma nem
tekinthető komolynak. A korábbi (4.6B)
verziókban ugyan működik, de semmilyen adatot
nem képes begyűjteni (mivel a legtöbb
hívás, például a
processzorhasználat függvénye,
egyszerűen csak nullát ad vissza).</para>
</sect3>
</sect2>
</sect1>
<sect1 id="linuxemu-advanced">
<title>Témák haladóknak</title>
<para>Ha kíváncsiak vagyunk a Linux
emuláció működésére,
olvassuk el ezt a szakaszt. Az itt leírtak
leginkább Terry Lambert
(<email>tlambert@primenet.com</email>) &a.chat;
címére írt levele nyomán kerülnek
bemutatásra (Az üzenet azonosítója:
<literal>&lt;199906020108.SAA07001@usr09.primenet.com&gt;</literal>).</para>
<sect2>
<title>Hogyan működik?</title>
<indexterm><primary>végrehajtási osztály
betöltő</primary></indexterm>
<para>A &os; rendelkezik egy ún.
<quote>végrehajtási osztály
betöltővel</quote> (execution class loader). Ez
lényegében a &man.execve.2;
rendszerhívás alatt meghúzódó
absztrakciós réteg.</para>
<para>A &os;-nek a <literal>#!</literal> karaktersorozat
hatására parancsértelmezők vagy a
hozzájuk tartozó szkriptek
betöltésére utasító
biztonsági betöltő helyett van egy
listája az alkalmas betöltőkről.</para>
<para>A &unix; rendszerek a hagyományok szerint egyetlen
betöltővel rendelkeznek, ami először
megvizsgálja a betölteni kívánt
állomány bűvös számát (ami
általában az első 4 vagy 8 byte) és ez
alapján eldönti, hogy az adott formátum
támogatott-e. Amennyiben ez így van,
meghívja a betöltőt.</para>
<para>Ha a bináris típusa nem ismert a rendszer
számára, akkor az &man.execve.2;
hívás hibával tér vissza, és
a parancsértelmező próbálja meg a
saját parancsaiként értelmezni.</para>
<para>Eddig ez volt az alapértelmezés,
<quote>akármilyen parancsértelmezőnk is
volt</quote>.</para>
<para>Később az &man.sh.1; kódjába
bekerült egy aprócska okosítás, amivel
megnézte az állomány első két
karakterét, és ha az <literal>:\n</literal> volt,
akkor a futtatáshoz maga helyett a &man.csh.1;
parancsértelmezőt hívta meg (ezt
állítólag először a SCO
csinálta).</para>
<para>A &os; viszont végignézi a betöltők
teljes listáját, amiben a sor végén
szerepel egy általános <literal>#!</literal>
formátumú betöltő. Ez az
állomány futtatásához
használatos értelmezők kódját
keresi, és ha egyet sem sikerül azonosítania,
akkor a <filename>/bin/sh</filename> programot indítja
el.</para>
<indexterm><primary>ELF</primary></indexterm>
<para>A Linux ABI támogatását a &os;
úgy oldja meg, hogy először észleli az
ELF bináris bűvös számát (ekkor
még nem tesz különbséget a &os;,
&solaris;, Linux vagy más ELF típusú
binárisokat használó
operációs rendszerek közt).</para>
<indexterm><primary>Solaris</primary></indexterm>
<para>Ezután az ELF formátum betöltője az
ELF állomány megjegyzéseket
tároló szakaszában
<emphasis>bélyegek</emphasis> (brand) után kutat,
ami SVR4 és &solaris; ELF binárisok esetén
nem létezik.</para>
<para>A Linux binárisokat
működésükhöz a &man.brandelf.1;
segítségével <literal>Linux</literal>
típusúnak kell
<emphasis>megbélyegezni</emphasis>:</para>
<screen>&prompt.root; <userinput>brandelf -t Linux <replaceable>állomány</replaceable></userinput></screen>
<para>Miután ezt megcsináltuk, az ELF
betöltő észre fogja venni az
állomány <literal>Linux</literal>
típusát.</para>
<indexterm>
<primary>ELF</primary>
<secondary>megbélyegzés</secondary>
</indexterm>
<para>Mikor az ELF betöltő észleli, hogy az
állomány <literal>Linux</literal>
típusú, kicseréli egy mutató
értékét a <literal>proc</literal>
struktúrában. Minden rendszerhívás
ezen a mutatón keresztül érhető el (a
hagyományos &unix; rendszerekben ez a
rendszerhívásokat tartalmazó
<literal>sysent[]</literal> struktúratömb).
Emellett a frissen elindított program szoftveres
megszakításait tartalmazó
tömbjéhez beállítja a speciális
jelzések kezelését, valamint a Linux modul
által végzett néhány további
(kisebb) javítást.</para>
<para>A Linux rendszerhívásokat tartalmazó
tömb többek közt tartalmazza a
<literal>sysent[]</literal> bejegyzések egy
listáját, amelyek címei a rendszermag Linux
moduljára mutatnak.</para>
<para>Amikor a Linux bináris hív egy
rendszerhívást, a hozzá tartozó
szoftveres megszakítás kódja a
<literal>proc</literal> struktúrából a neki
megfelelő rendszerhívás kódját
hivatkozza, így &os; rendszerhívás
belépési pontja helyett a Linuxét kapja
meg.</para>
<para>Ráadásul Linux módban a
különböző állományok
hivatkozásai is
<emphasis>átirányítódnak</emphasis>.
Ez lényegében olyan, mint amit az
állományrendszerek
csatlakoztatásánál a <option>union</option>
beállítás csinál (ami
<emphasis>nem</emphasis> egyezik meg az
<literal>unionfs</literal> állományrendszerrel!).
Ilyenkor az állományokat először a
<filename>/compat/linux/<replaceable>eredeti-hely</replaceable></filename>
könyvtárában keresi, és
<emphasis>majd</emphasis> ha ott nem találja, csak akkor
kezdi el keresni az
<filename>/<replaceable>eredeti-hely</replaceable></filename>
ponton. Ezzel oldhatjuk meg, hogy más binárisok
futtatását igénylő binárisok is
képesek legyenek rendesen működni
(például így az egész linuxos
eszköztár tud futni a Linux ABI-n keresztül).
Egyúttal arra is utal, hogy ha a Linux binárisok
számára nem áll rendelkezésre a
megfelelő bináris, akkor &os; binárisokat is
el tudnak indítani. Ha a &man.uname.1; programot pedig
bemásoljuk a <filename>/compat/linux</filename>
könyvtáron belülre, akkor a Linux
binárisok képtelenek lesznek megmondani, hogy nem
Linux alatt futnak.</para>
<para>Így lényegében egy Linux magot
találunk a &os; rendszermagjában. A benne
megtalálható különböző
szolgáltatásokat megvalósító
függvények: az állományműveletek,
a virtuális memória kezelése, a
jelzések küldése és System V
típusú folyamatok közti
kommunikáció stb. megegyeznek a &os; és a
Linux hívásai esetén egyaránt.
Egyetlen eltérés, hogy a &os; binárisok a
&os; <emphasis>segédfüggvényein</emphasis>
(glue function), a Linux binárisok pedig a Linux
segédfüggvényein keresztül férnek
hozzájuk (a legelső operációs
rendszerek tulajdonképpen csak a saját
segédfüggvényeiket tartalmazták: a
hívást kezdeményező program
<literal>proc</literal> struktúrájában a
függvények dinamikusan beállított
címe helyett egy globális
<literal>sysent[]</literal> struktúratömbben
tárolták a meghívható
függvényeket).</para>
<para>Melyik közülük a &os; natív ABI-ja?
Ez teljesen lényegtelen. Alapvetően az egyetlen
különbség csupán annyi (pillanatnyilag,
de ez a jövőben még változhat,
valószínűleg hamarosan), hogy a &os;
<emphasis>segédfüggvényei</emphasis>
statikusan megtalálhatóak a rendszermagban,
míg a Linux
<emphasis>segédfüggvényei</emphasis>
egyaránt elérhetőek modulból vagy
statikus linkeléssel.</para>
<para>Na igen, de akkor ez most emuláció? Nem. Ez
egy ABI, nem emuláció. Itt szó sincs
emulátorról (ahogy szimulátorról
sincs).</para>
<para>De akkor mégis miért hívják ezt
sokszor <quote>Linux emulációnak</quote>?
Hát hogy nehezebb legyen eladni a &os;-t! Komolyra
fordítva a szót: ennek a kezdeti változata
akkoriban született meg, amikor erre még nem volt
rendes szó. Nem mondhattuk, hogy a &os;
befordítás vagy egy modul betöltése
nélkül képes lett volna Linux
binárisokat futtatni, ezért valamilyen
módon meg kellett neveznünk az ilyenkor
betöltött kódot &mdash; ebből lett
<quote>a Linux emulátor</quote>.</para>
</sect2>
</sect1>
</chapter>