<?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; &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) => /usr/X11/lib/libXt.so.3.1.0 libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0 libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29</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 -> libXt.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3.1.0 /compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0 /compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29</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 -> 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) -> 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 -> 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 < <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 > $i.tmp sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp > $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>> ${LOG} 1>&2 echo -n " lmgrd" ;; stop) lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2 ;; *) echo "Usage: `basename $0` {start|stop}" 1>&2 exit 64 ;; esac exit 0 ----- 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> && echo 'MATLAB_lmgrd' fi ;; stop) if [ -f /usr/local/etc/lmdown_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1 fi ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac exit 0</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" : '.*->.*'` -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) & 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 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 — 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 --> 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 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; III processzor és a hozzájuk tartozó alaplap, egy &adaptec; 29160 Ultra160 SCSI-vezérlõ (a 40/80 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 MB memória), amihez két 17 GB-os (tükrözött) merevlemez és négy 36 GB-os merevlemez (RAID 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 MHz-es &pentium; III processzorral (fejenként 256 KB gyorsítótárral), 2 GB PC133-as ECC SDRAM memóriával, PERC/3 DC PCI RAID-vezérlõvel (128 MB memória), valamint egy EIDE DVD-meghajtóval. A RAID-vezérlõre két, egyenként 18 GB méretû merevlemezt (tükrözve) és négy 36 GB méretû merevlemezt csatlakoztattunk (RAID 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 GB</entry> <entry><filename>/</filename></entry> </row> <row> <entry><filename>/dev/da0s1b</filename></entry> <entry>6 GB</entry> <entry>lapozóállomány</entry> </row> <row> <entry><filename>/dev/da0s1e</filename></entry> <entry>2 GB</entry> <entry><filename>/var</filename></entry> </row> <row> <entry><filename>/dev/da0s1f</filename></entry> <entry>8 GB</entry> <entry><filename>/usr</filename></entry> </row> <row> <entry><filename>/dev/da1s1e</filename></entry> <entry>45 GB</entry> <entry><filename>/compat/linux/oracle</filename></entry> </row> <row> <entry><filename>/dev/da1s1f</filename></entry> <entry>2 GB</entry> <entry><filename>/compat/linux/sapmnt</filename></entry> </row> <row> <entry><filename>/dev/da1s1g</filename></entry> <entry>2 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 — 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 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 — 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 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 6.0), viszont a RedHat 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 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 byte-ra állítódik. A DLT típusú szalagokhoz a HP legalább 32 KB-os blokkméretet javasolt, ezért a <option>--block-size=128</option> beállítással ezt 64 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 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 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 MB aktív, 305 MB inaktív, 109 MB rögzített, 40 MB gyorsítótár, 112 MB puffer, 3492 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 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> <userinput>connect internal;</userinput> SVRMGR> <userinput>startup</userinput>; SVRMGR> <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 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 -> 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><199906020108.SAA07001@usr09.primenet.com></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 — ebbõl lett <quote>a Linux emulátor</quote>.</para> </sect2> </sect1> </chapter>