<!--
     The FreeBSD Documentation Project
     The FreeBSD German Documentation Project

     $FreeBSD$
     $FreeBSDde: de-docproj/books/handbook/linuxemu/chapter.sgml,v 1.74 2005/01/18 01:31:42 mheinen Exp $
     basiert auf: 1.122
-->

<chapter id="linuxemu">
  <chapterinfo>
    <authorgroup>
      <author>
        <firstname>Jim</firstname>
	<surname>Mock</surname>
	<contrib>Restrukturiert und teilweise aktualisiert von </contrib>
     </author>
     <!-- 22 Mar 2000 -->
    </authorgroup>
    <authorgroup>
      <author>
	<firstname>Brian N.</firstname>
	<surname>Handy</surname>
	<contrib>Beigetragen von </contrib>
      </author>
      <author>
	<firstname>Rich</firstname>
	<surname>Murphey</surname>
      </author>
    </authorgroup>
    <authorgroup>
      <author>
	<firstname>Johann</firstname>
	<surname>Kois</surname>
	<contrib>&Uuml;bersetzt von </contrib>
	</author>
      </authorgroup>
  </chapterinfo>

  <title>Linux-Bin&auml;rkompatibilit&auml;t</title>

  <sect1 id="linuxemu-synopsis">
    <title>&Uuml;bersicht</title>
    <indexterm>
      <primary>Linux-Bin&auml;rkompatibilit&auml;t</primary>
    </indexterm>
    <indexterm>
      <primary>Bin&auml;rkompatibilit&auml;t</primary>
      <secondary>Linux</secondary>
    </indexterm>

    <para>FreeBSD bietet Bin&auml;rkompatibilit&auml;t zu verschiedenen
      anderen &unix; Betriebssystemen, darunter auch Linux.  Nun
      k&ouml;nnten Sie sich fragen, warum FreeBSD in der Lage sein
      muss, Linux-Bin&auml;rprogramme auszuf&uuml;hren?  Die Antwort
      auf diese Frage ist sehr einfach.  Viele Unternehmen und Entwickler
      programmieren bzw. entwickeln nur f&uuml;r Linux, da es
      <quote>das Neueste und Beste</quote> in der Computerwelt ist.
      F&uuml;r uns FreeBSD-Anwender hei&szlig;t dies, genau diese Unternehmen
      und Entwickler zu bitten, FreeBSD-Versionen ihrer Programme
      herauszubringen.  Das Problem dabei ist nur, dass die meisten dieser
      Firmen trotzdem nicht erkennen, wie viele zus&auml;tzliche
      Anwender ihre Produkte benutzen w&uuml;rden, wenn es auch
      FreeBSD-Versionen g&auml;be, und daher weiterhin
      ausschlie&szlig;lich f&uuml;r Linux entwickeln.  Was also kann ein
      FreeBSD-Anwender tun?  Genau an diesem Punkt kommt die Linux-
      Bin&auml;rkompatibilit&auml;t ins Spiel.</para>

    <para>Um es auf den Punkt zu bringen, genau diese Kompatibilit&auml;t
      erlaubt es FreeBSD-Anwendern, etwa 90 % aller Linux-Anwendungen
      ohne Code-&Auml;nderungen zu verwenden.  Dies schlie&szlig;t
      solche Anwendungen wie <application>&staroffice;</application>,
      <application>Open Office</application>, die Linux-Versionen von
      <application>&netscape;</application>,
      <application>&adobe;&nbsp;&acrobat;</application>,
      <application><trademark
      class="registered">RealPlayer</trademark></application>,
      <application>
        <trademark class="registered">VMWare</trademark>
      </application>, <application>&oracle;</application>,
      <application>
	<trademark class="registered">WordPerfect</trademark>
      </application>, <application>Doom</application>,
      <application>Quake</application> und viele andere ein.  Es wird
      sogar berichtet, dass diese Linux-Anwendungen in manchen
      F&auml;llen unter FreeBSD eine bessere Leistung als unter
      Linux aufweisen.</para>

    <para>Allerdings gibt es nach wie vor einige Linux-spezifische
      Betriebssystem-Eigenschaften, die unter FreeBSD nicht
      unterst&uuml;tzt werden.  Linux-Anwendungen, die
      &i386;-spezifische Aufrufe (wie die Aktivierung des
      virtuellen 8086-Modus) verwenden, funktionieren
      unter FreeBSD leider nicht.</para>

    <para>Nach dem Lesen dieses Kapitels werden Sie</para>
    <itemizedlist>
      <listitem>
	<para>wissen, wie Sie die Linux-Bin&auml;rkompatibilit&auml;t
	  installieren bzw. aktivieren.</para>
      </listitem>

      <listitem>
	<para>Wissen, wie man zus&auml;tzliche Linux-Systembibliotheken
	  unter FreeBSD installiert.</para>
      </listitem>

      <listitem>
	<para>Linux-Anwendungen unter FreeBSD installieren k&ouml;nnen.</para>
      </listitem>

      <listitem>
	<para>Wissen, wie die Linux-Bin&auml;rkompatibilit&auml;t
	  unter FreeBSD verwirklicht wurde.</para>
      </listitem>
    </itemizedlist>

    <para>Bevor Sie dieses Kapitel lesen, sollten Sie</para>

    <itemizedlist>
      <listitem>
	<para>wissen, wie man Software Dritter installiert
	  (<xref linkend="ports">).</para>
      </listitem>
    </itemizedlist>

  </sect1>

  <sect1 id="linuxemu-lbc-install">
    <title>Installation</title>

    <indexterm><primary>KLD (kernel loadable object)</primary></indexterm>

    <para>Die Linux-Bin&auml;rkompatibilit&auml;t ist per Voreinstellung
      nicht aktiviert.  Der einfachste Weg, dies zu tun, ist das
      <literal>Linux</literal> KLD (<quote>Kernel LoaDable object</quote>)
      zu laden.  Dies geschieht durch die Eingabe von
      <command>linux</command> an der Eingabeaufforderung.</para>

    <para>Wollen Sie die Linux-Bin&auml;rkompatibilit&auml;t dauerhaft
      aktivieren, sollten Sie die folgende Zeile in
      <filename>/etc/rc.conf</filename> einf&uuml;gen:</para>

    <programlisting>linux_enable="YES"</programlisting>

    <para>Der &man.kldstat.8;-Befehl kann benutzt werden, um
      festzustellen, ob KLD geladen wurde:</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>Kerneloptionen</primary>
      <secondary>LINUX</secondary>
    </indexterm>

    <para>Wenn Sie das KLD nicht laden k&ouml;nnen oder wollen, besteht
      auch die M&ouml;glichkeit, die Linux-Bin&auml;rkompatibilt&auml;t
      statisch in den Kernel einzubinden.  Dazu f&uuml;gen Sie Ihrer
      Kernelkonfigurationsdatei den Eintrag
      <literal>options COMPAT_LINUX</literal>
      hinzu.  Anschlie&szlig;end installieren Sie Ihren neuen Kernel
      wie in <xref linkend="kernelconfig"> beschrieben.</para>

    <sect2>
      <title>Linux-Laufzeitbibliotheken installieren</title>
      <indexterm>
	<primary>Linux</primary>
	<secondary>Linux-Laufzeitbibliotheken installieren</secondary>
      </indexterm>

      <para>Dies kann auf zwei Arten geschehen, entweder &uuml;ber den
	<link linkend="linuxemu-libs-port">linux_base</link>-Port,
	oder durch manuelle Installation der Bibliotheken
	<link linkend="linuxemu-libs-manually"></link>.</para>

      <sect3 id="linuxemu-libs-port">
	<title>Installation unter Verwendung des linux_base-Ports</title>
	<indexterm><primary>Ports Collection</primary></indexterm>

	<para>Dies ist die einfachste Methode, um die Laufzeitbibliotheken
	  zu installieren.  Sie funktioniert genauso wie die
	  Installation eines beliebigen anderen Ports aus der
          <ulink type="html"
	    url="file://localhost/usr/ports/">Ports-Sammlung</ulink>.
	  Dazu machen Sie einfach folgendes:</para>

	<screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_base</userinput>
&prompt.root; <userinput>make install distclean</userinput></screen>

	<para>Sie sollten nun &uuml;ber eine funktionierende
	  Linux-Bin&auml;rkompatibilit&auml;t verf&uuml;gen.  Einige
	  Programme k&ouml;nnten sich zwar &uuml;ber falsche
	  Unterversionsnummern der Systembibliotheken beschweren, dies ist
	  im Allgemeinen aber kein Problem.</para>

	<note>
	  <para>Unter Umst&auml;nden gibt es mehrere Versionen des
	    Ports <filename role="package">emulators/linux_base</filename>.
	    Die Ports entsprechen unterschiedlichen Versionen
	    verschiedener Linux-Distributionen Sie sollten den
	    Port installieren, der am besten die Anforderungen
	    der Linux-Anwendung erf&uuml;llt.</para>
	</note>
      </sect3>

      <sect3 id="linuxemu-libs-manually">
	<title>Manuelle Installation der Bibliotheken</title>

	<para>Wenn Sie die <quote>Ports</quote>-Sammlung nicht installiert
	  haben, k&ouml;nnen Sie die Bibliotheken auch manuell
	  installieren.  Dazu brauchen Sie die jeweiligen
	  Linux-Systembibliotheken, die das zu installierende Programm
	  verwendet sowie den Laufzeit-Linker.  Zus&auml;tzlich m&uuml;ssen
	  Sie auf Ihrem FreeBSD-System einen
	  <quote>virtuellen</quote> Verzeichnisbaum f&uuml;r die
	  Linux-Bibliotheken einrichten.  Alle unter FreeBSD gestarteten
	  Linux-Programme suchen zuerst in diesem Verzeichnisbaum
	  nach Systembibliotheken.  Wenn also ein Linuxprogramm beispielsweise
	  <filename>/lib/libc.so</filename> l&auml;dt, versucht FreeBSD
	  zuerst, <filename>/compat/linux/lib/libc.so</filename> laden.
	  Ist diese Datei nicht vorhanden, wird
	  <filename>/lib/libc.so</filename> geladen.  Systembibliotheken
	  sollten daher besser in den <quote>virtuellen</quote> Verzeichnisbaum
	  <filename>/compat/linux/lib</filename> als in den vom
	  Linux-<command>ld.so</command> vorgeschlagenen installiert
	  werden.</para>

	<para>Im Allgemeinen m&uuml;ssen Sie nur zu Beginn nach den
	  Systembibliotheken suchen, die von Linuxprogrammen
	  ben&ouml;tigt werden.  Nach den ersten Installationen von
	  Linuxprogrammen auf Ihrem FreeBSD-System verf&uuml;gen Sie
	  &uuml;ber eine Sammlung von Linux-Systembibliotheken,
	  die es Ihnen erm&ouml;glichen wird, neue Linuxprogramme
	  ohne Zusatzarbeit zu installieren.</para>
      </sect3>

      <sect3>
	<title>Installation zus&auml;tzlicher Systembibliotheken</title>
	<indexterm><primary>Shared-Libraries</primary></indexterm>

	<para>Was passiert, wenn Sie den <filename>linux_base</filename>-Port
	  installieren, und Ihr Programm beschwert sich trotzdem
	  &uuml;ber fehlende Systembibliotheken?  Woher wissen Sie,
	  welche Systembibliotheken von Linux-Bin&auml;rprogrammen
	  ben&ouml;tigt werden, und wo Sie diese finden? Grunds&auml;tzlich
	  gibt es daf&uuml;r zwei M&ouml;glichkeiten (um dieser
	  Anleitung zu folgen, m&uuml;ssen Sie unter
	  FreeBSD als Benutzer <username>root</username> angemeldet
	  sein):</para>

	<para>Wenn Sie Zugriff auf ein Linux-System haben, k&ouml;nnen
	  Sie dort nachsehen, welche Systembibliotheken eine Anwendung
	  ben&ouml;tigt, und diese auf Ihr FreeBSD-System kopieren.
	  Dazu folgendes Beispiel:</para>

	<informalexample>
	  <para>Nehmen wir an, Sie haben FTP verwendet, um die
	    Linux-Bin&auml;rversion von <application>Doom</application>
	    zu bekommen und haben sie auf Ihrem Linux-System installiert.
	    Nun k&ouml;nnen Sie &uuml;berpr&uuml;fen, welche
	    Systembibliotheken das Programm ben&ouml;tigt, indem Sie
	    <command>ldd linuxdoom</command> eingeben.  Das Resultat
	    sieht dann so aus:</para>

	  <screen>&prompt.user; <userinput>ldd linuxdoom</userinput>
libXt.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libXt.so.3.1.0
libX11.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libX11.so.3.1.0
libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>

	  <indexterm><primary>symbolische Links</primary></indexterm>
	  <para>Sie m&uuml;ssten nun alle Dateien aus der
	    letzten Spalte kopieren und sie unter
	    <filename>/compat/linux</filename> speichern, wobei
	    die Namen der ersten Spalte als symbolische Links auf
	    diese Dateien zeigen.  Damit haben Sie schlie&szlig;lich
	    folgende Dateien auf Ihrem FreeBSD-System:</para>

	  <screen>/compat/linux/usr/X11/lib/libXt.so.3.1.0
/compat/linux/usr/X11/lib/libXt.so.3 -&gt; libXt.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3 -&gt; libX11.so.3.1.0
/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.29</screen>

	  <blockquote>
	    <note>
	      <para>Beachten Sie, dass wenn Sie bereits eine
		Linux-Systembibliothek einer zur ersten Spalte
		passenden Hauptversionsnummer (laut
		<command>ldd</command>-Ausgabe) besitzen, Sie die Datei
		aus der zweiten Spalte nicht mehr kopieren m&uuml;ssen,
		da die	bereits vorhandene Version funktionieren sollte.
		Hat die Systembibliothek jedoch eine neuere
		Versionsnummer, sollten Sie sie dennoch kopieren.
		Sie k&ouml;nnen die alte Version l&ouml;schen, solange
		Sie einen symbolischen Link auf die neue
		Version anlegen.  Wenn Sie also folgende Bibliotheken
		auf Ihrem System installiert haben:</para>

	      <screen>/compat/linux/lib/libc.so.4.6.27
/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.27</screen>

	      <para>und Sie haben eine neue Bin&auml;rdatei, die
		laut <command>ldd</command>
		eine neuere Bibliothek ben&ouml;tigt:</para>

	      <screen>libc.so.4 (DLL Jump 4.5pl26) -&gt; libc.so.4.6.29</screen>

	      <para>Wenn diese sich nur  um ein oder zwei Stellen
		in der Unterversionsnummer unterscheiden, m&uuml;ssen
		Sie <filename>/lib/libc.so.4.6.29</filename>
		nicht auf Ihr System kopieren, da das Programm auch
		mit der etwas &auml;lteren Version ohne Probleme
		funktionieren sollte.  Wenn Sie wollen,
		k&ouml;nnen Sie <filename>libc.so</filename> aber
		dennoch ersetzen (das hei&szlig;t aktualisieren), was dann zu
		folgender Ausgabe f&uuml;hrt:</para>

	      <screen>/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.29</screen>
	    </note>
	  </blockquote>

	  <blockquote>
	    <note>
	      <para>Der Mechanismus der symbolischen Links wird
		<emphasis>nur</emphasis> f&uuml;r Linux-Bin&auml;rdateien
		ben&ouml;tigt.  Der FreeBSD-Laufzeitlinker sucht
		sich die passenden Hauptversionsnummern selbst,
		das hei&szlig;t Sie m&uuml;ssen sich nicht darum
		k&uuml;mmern.</para>
	    </note>
	  </blockquote>
	</informalexample>
      </sect3>
    </sect2>

    <sect2>
      <title>Linux ELF-Bin&auml;rdateien installieren</title>
      <indexterm>
	<primary>Linux</primary>
	<secondary>ELF-Bin&auml;rdatei</secondary>
      </indexterm>

      <para>ELF-Bin&auml;rdateien ben&ouml;tigen manchmal eine zus&auml;tzliche
	<quote>Kennzeichnung</quote>.  Wenn Sie versuchen, eine nicht
	gekennzeichnete ELF-Bin&auml;rdatei auszuf&uuml;hren,
	werden Sie eine Fehlermeldung &auml;hnlich der folgenden
	erhalten:</para>

      <screen>&prompt.user; <userinput>./my-linux-elf-binary</userinput>
ELF binary type not known
Abort</screen>

      <para>Damit der FreeBSD-Kernel eine Linux-ELF-Datei von einer
	FreeBSD-ELF-Datei unterscheiden kann, gibt es das Werkzeug
	&man.brandelf.1;:</para>

      <screen>&prompt.user; <userinput>brandelf -t Linux my-linux-elf-binary</userinput></screen>

      <indexterm><primary>GNU Werkzeuge</primary></indexterm>
      <para>Die GNU Werkzeuge schreiben nun automatisch die
	passende Kennzeichnungsinformation in die ELF-Bin&auml;rdateien,
	so dass Sie diesen Schritt in Zukunft nur noch selten ben&ouml;tigen
	werden.</para>
    </sect2>

    <sect2>
      <title>Namensaufl&ouml;sung konfigurieren</title>

      <para>Wenn DNS nicht funktioniert, oder Sie folgende Fehlermeldung
	erhalten:</para>

      <screen>resolv+: "bind" is an invalid keyword resolv+:
"hosts" is an invalid keyword</screen>

      <para>m&uuml;ssen sie <filename>/compat/linux/etc/host.conf</filename>
        wie folgt anlegen:</para>

      <programlisting>order hosts, bind
multi on</programlisting>

      <para>Diese Reihenfolge legt fest, dass zuerst
	<filename>/etc/hosts</filename> und anschlie&szlig;end DNS
	durchsucht werden.  Wenn
	<filename>/compat/linux/etc/host.conf</filename> nicht vorhanden
	ist, finden Linux-Anwendungen FreeBSD's
	<filename>/etc/host.conf</filename> und
	beschweren sich &uuml;ber die inkompatible FreeBSD-Syntax.  Wenn Sie
	keinen Nameserver (in <filename>/etc/resolv.conf</filename>)
	konfiguriert haben, sollten Sie den Eintrag
	<literal>bind</literal> entfernen.</para>
    </sect2>
  </sect1>

  <sect1 id="linuxemu-mathematica">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Murray</firstname>
	  <surname>Stokely</surname>
	  <contrib>F&uuml;r Mathematica 4.x aktualisiert von </contrib>
	</author>
      </authorgroup>
      <authorgroup>
	<author>
	  <firstname>Bojan</firstname>
	  <surname>Bistrovic</surname>
	  <contrib>Mit der Unterst&uuml;tzung von </contrib>
	</author>
      </authorgroup>
    </sect1info>
    <title>&mathematica; installieren</title>

    <indexterm>
      <primary>Linux-Anwendungen</primary>
      <secondary><application>Mathematica</application></secondary>
    </indexterm>

    <para>Dieses Dokument beschreibt die Installation der Linux-Version von
      <application>&mathematica; 4.x</application> auf einem
      FreeBSD-System.</para>

    <para>Die Linux-Version von <application>&mathematica;</application>
      l&auml;uft perfekt unter FreeBSD, allerdings m&uuml;ssen die
      von Wolfram verschickten Bin&auml;rdateien gekennzeichnet werden,
      damit FreeBSD wei&szlig;, dass es die Linux-ABI verwenden muss,
      um sie auszuf&uuml;hren.</para>

    <para>Die Linux-Version von <application>&mathematica;</application>
      oder <application>&mathematica; f&uuml;r Studenten</application> kann
      direkt von Wolfram unter <ulink url="http://www.wolfram.com/"></ulink>
      bestellt werden.</para>

    <sect2>
      <title>Linux-Bin&auml;rdateien kennzeichnen</title>

      <para>Die Linuxbin&auml;rdateien befinden sich im
	<filename>Unix</filename>-Verzeichnis der von Wolfram
	vertriebenen <application>&mathematica;</application>-CD-ROM.
	Sie m&uuml;ssen diesen Verzeichnisbaum auf Ihre Festplatte kopieren,
	damit Sie die Linux-Bin&auml;rdateien kennzeichnen k&ouml;nnen,
	bevor Sie das Installationsprogramm aufrufen:</para>

      <screen>&prompt.root; <userinput>mount /cdrom</userinput>
&prompt.root; <userinput>cp -rp /cdrom/Unix/ /localdir/</userinput>
&prompt.root; <userinput>brandelf -t Linux /localdir/Files/SystemFiles/Kernel/Binaries/Linux/*</userinput>
&prompt.root; <userinput>brandelf -t Linux /localdir/Files/SystemFiles/FrontEnd/Binaries/Linux/*</userinput>
&prompt.root; <userinput>brandelf -t Linux /localdir/Files/SystemFiles/Installation/Binaries/Linux/*</userinput>
&prompt.root; <userinput>brandelf -t Linux /localdir/Files/SystemFiles/Graphics/Binaries/Linux/*</userinput>
&prompt.root; <userinput>brandelf -t Linux /localdir/Files/SystemFiles/Converters/Binaries/Linux/*</userinput>
&prompt.root; <userinput>brandelf -t Linux /localdir/Files/SystemFiles/LicenseManager/Binaries/Linux/mathlm</userinput>
&prompt.root; <userinput>cd /localdir/Installers/Linux/</userinput>
&prompt.root; <userinput>./MathInstaller</userinput></screen>

      <para>Alternativ k&ouml;nnen Sie mit folgendem Befehl auch die
	Standard-ELF-Kennzeichnung f&uuml;r alle ungekennzeichneten
	Bin&auml;rdateien festlegen:</para>

      <screen>&prompt.root; <userinput>sysctl kern.fallback_elf_brand=3</userinput></screen>

      <para>Danach wird FreeBSD annehmen, dass alle ungekennzeichneten
	ELF-Bin&auml;rdateien die Linux-ABI verwenden.  Dadurch sollte es Ihnen
	nun m&ouml;glich sein, das Installationsprogramm direkt von der CD-ROM
	zu starten.</para>
    </sect2>

    <sect2>
      <title>Ihr &mathematica;-Passwort anfordern</title>

      <para>Bevor Sie <application>&mathematica;</application>
	ausf&uuml;hren k&ouml;nnen, m&uuml;ssen Sie von Wolfram
	ein zu Ihrer <quote>Rechner-ID</quote> passendes
	Passwort anfordern.</para>
      <indexterm>
	<primary>Ethernet</primary>
	<secondary>MAC-Adresse</secondary>
      </indexterm>

      <para>Nachdem Sie die Linux-Kompatibilit&auml;tsbibliotheken
	installiert und <application>&mathematica;</application> entpackt
	haben, k&ouml;nnen Sie Ihre
	<quote>Rechner-ID</quote> durch das Ausf&uuml;hren von
	<command>mathinfo</command> (im Installationsverzeichnis) ermitteln.
	Diese Rechner-ID basiert ausschlie&szlig;lich auf der MAC-Adresse
	Ihrer ersten Ethernet-Karte.</para>

      <screen>&prompt.root; <userinput>cd /localdir/Files/SystemFiles/Installation/Binaries/Linux</userinput>
&prompt.root; <userinput>mathinfo</userinput>
disco.example.com 7115-70839-20412</screen>

      <para>Wenn Sie sich bei Wolfram registrieren (durch E-Mail,
	Telefon oder Fax), teilen Sie
	Ihre <quote>Rechner-ID</quote> mit und erhalten daf&uuml;r
	ein aus Zahlengruppen
	bestehendes Passwort.  Diese Information geben Sie ein, wenn Sie
	<application>&mathematica;</application> das erste Mal starten,
	genauso wie Sie es auch auf jeder anderen
	<application>&mathematica;</application>-Plattform machen
	w&uuml;rden.</para>
    </sect2>

    <sect2>
      <title>Das &mathematica;-Frontend &uuml;ber ein Netzwerk
	ausf&uuml;hren</title>

      <para><application>&mathematica;</application> verwendet einige
	spezielle Schriftarten, um Zeichen anzuzeigen, die in den
	Standardzeichens&auml;tzen nicht vorhanden
	sind (z.B. Integrale, Summen, griechische Buchstaben).  Das
	X-Protokoll verlangt allerdings, dass diese Schriftarten
	<emphasis>lokal</emphasis> installiert sind.
	Das bedeutet, dass Sie diese Schriftarten von der CD-ROM oder
	von einem Rechner, auf dem <application>&mathematica;</application>
	installiert ist, auf Ihren Rechner kopieren m&uuml;ssen.
	Diese Schriftarten befinden sich  normalerweise in
	<filename>/cdrom/Unix/Files/SystemFiles/Fonts</filename>
	(&mathematica;-CD) oder in
	<filename>/usr/local/mathematica/SystemFiles/Fonts</filename>
	(Festplatte).  Die aktuellen Schriftarten befinden sich dabei
	in den Unterverzeichnissen <filename>Type1</filename> und
	<filename>X</filename>.  Um diese Schriftarten zu verwenden,
	gibt es mehrere M&ouml;glichkeiten, die nun beschrieben werden:</para>

      <para>Die erste M&ouml;glichkeit besteht darin, die Schriftarten
	in eins der bereits existierenden Schriftartenverzeichnisse unter
	<filename>/usr/X11R6/lib/X11/fonts</filename> zu kopieren.
	Dies bedeutet, dass Sie <filename>fonts.dir</filename> editieren
	m&uuml;ssen, indem Sie die Schriftnamen hinzuf&uuml;gen und
	die Anzahl der Schriftarten in der ersten Zeile &auml;ndern.
	Alternativ ist es auch m&ouml;glich, im Verzeichnis, in das
	Sie die Schriftarten kopiert haben, das Kommando
	&man.mkfontdir.1; auszuf&uuml;hren.</para>

      <para>Die zweite M&ouml;glichkeit, besteht darin,
	die Verzeichnisse nach
	<filename>/usr/X11R6/lib/X11/fonts</filename> zu kopieren:</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>Nun f&uuml;gen Sie die neuen Schriftartenverzeichnisse in
	Ihren Pfad ein:</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>Wenn Sie den &xorg;-Server verwenden, k&ouml;nnen Sie die
	Schriftarten-Verzeichnisse automatisch laden lassen, wenn Sie sie
	in Ihrer <filename>xorg.conf</filename> angeben.</para>

      <note>
	<para>F&uuml;r den <application>&xfree86;</application>-Server
	  verwenden Sie die Datei <filename>XF86Config</filename>.</para>
      </note>

      <indexterm><primary>Schriftarten</primary></indexterm>

      <para>Wenn Sie <emphasis>noch kein</emphasis>
	<filename>/usr/X11R6/lib/X11/fonts/Type1</filename>-Verzeichnis
	haben, k&ouml;nnen Sie das
	<filename>MathType1</filename>-Verzeichnis im vorherigen
	Beispiel in <filename>Type1</filename> umbenennen.</para>
    </sect2>
  </sect1>

  <sect1 id="linuxemu-maple">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Aaron</firstname>
	  <surname>Kaplan</surname>
<!--	  <address><email>aaron@lo-res.org</email></address>-->
	  <contrib>Beigetragen von </contrib>
	</author>
      </authorgroup>
      <authorgroup>
	<author>
	  <firstname>Robert</firstname>
	  <surname>Getschmann</surname>
<!--	  <address><email>rob@getschmann.org</email></address>-->
	  <contrib>Mit Unterst&uuml;tzung durch </contrib>
	</author>
      </authorgroup>
    </sect1info>
    <title>&maple; installieren</title>

    <indexterm>
      <primary>Linux-Anwendungen</primary>
      <secondary><application>Maple</application></secondary>
    </indexterm>

    <para><application>&maple;</application> ist ein mit
      <application>&mathematica;</application> vergleichbares kommerzielles
      Mathematikprogramm.  Sie k&ouml;nnen dieses Programm unter
      <ulink url="http://www.maplesoft.com/"></ulink> kaufen und sich
      anschlie&szlig;end registrieren, um eine Lizenz zu erhalten.  Um
      dieses Programm unter FreeBSD zu installieren, gehen Sie wie
      folgt vor:</para>

    <procedure>
      <step><para>F&uuml;hren Sie das
	<filename>INSTALL</filename>-Shell-Skript
	der Softwaredistribution aus.  W&auml;hlen Sie die
	<quote>RedHat</quote>-Option aus, wenn Sie das
	Installationsprogramm danach fragt.  Ein typisches
	Installationsverzeichnis w&auml;re z.B.
	<filename class="directory">/usr/local/maple</filename>.</para></step>

      <step><para>Wenn Sie dies noch nicht gemacht haben, besorgen Sie
	sich nun eine <application>&maple;</application>-Lizenz von
	Maple Waterloo Software
	(<ulink url="http://register.maplesoft.com"></ulink>)
	und kopieren Sie diese nach
	<filename>/usr/local/maple/license/license.dat</filename>.</para></step>

      <step><para>Installieren Sie den
	<application>FLEXlm</application>-Lizenz-Manager, indem Sie
	das <filename>INSTALL_LIC</filename>-Installations-Shellskript
	ausf&uuml;hren, das mit <application>&maple;</application>
	ausgeliefert wird.  Geben Sie Ihren prim&auml;ren
	Rechnernamen f&uuml;r den Lizenz-Server an.</para></step>

      <step><para>Ver&auml;ndern Sie
	<filename>/usr/local/maple/bin/maple.system.type</filename>
	wie folgt:</para>

<programlisting>   ----- snip ------------------
*** maple.system.type.orig      Sun Jul  8 16:35:33 2001
--- maple.system.type   Sun Jul  8 16:35:51 2001
***************
*** 72,77 ****
--- 72,78 ----
          # the IBM RS/6000 AIX case
          MAPLE_BIN="bin.IBM_RISC_UNIX"
          ;;
+     "FreeBSD"|\
      "Linux")
          # the Linux/x86 case
        # We have two Linux implementations, one for Red Hat and
   ----- snip end of patch -----</programlisting>

	<para>Bitte beachten Sie, dass nach
	  <literal>"FreeBSD"|\</literal> kein anderes
	  Zeichen eingef&uuml;gt werden darf.</para>

	<para>Dieser Patch weist <application>&maple;</application> an,
	  FreeBSD als <quote>eine Art von Linux-System</quote> zu erkennen.
	  Das Shell-Skript <filename>bin/maple</filename> ruft das
	  Shell-Skript <filename>bin/maple.system.type</filename> auf,
	  welches wiederum <command>uname -a</command> verwendet,
	  um den Namen des Betriebssystems herauszufinden.
	  Abh&auml;ngig vom Betriebssystem wei&szlig; das System nun,
	  welche Bin&auml;rdateien verwendet werden sollen.</para></step>

      <step><para>Starten Sie den Lizenz-Server.</para>

	<para>Das folgende, als
	  <filename>/usr/local/etc/rc.d/lmgrd.sh</filename>
	  installierte Shell-Skript ist ein komfortabler Weg,
	  um <command>lmgrd</command> zu starten:</para>

	<programlisting>   ----- snip ------------

#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX
export PATH

LICENSE_FILE=/usr/local/maple/license/license.dat
LOG=/var/log/lmgrd.log

case "$1" in
start)
	lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
	echo -n " lmgrd"
	;;
stop)
	lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2
	;;
*)
	echo "Usage: `basename $0` {start|stop}" 1>&2
	exit 64
	;;
esac

exit 0
   ----- snip ------------</programlisting></step>


      <step><para>Versuchen Sie, <application>&maple;</application>
	zu starten:</para>

        <screen>&prompt.user; <userinput>cd /usr/local/maple/bin</userinput>
&prompt.user; <userinput>./xmaple</userinput></screen>

	<para>Nun sollte das Programm laufen und alles funktionieren.
	    Falls ja, vergessen Sie nicht, an Maplesoft zu schreiben
	    und sie wissen zu lassen, dass Sie gerne eine native
	    FreeBSD-Version h&auml;tten.</para></step>
    </procedure>

    <sect2>
    <title>H&auml;ufige Fehlerquellen</title>

      <itemizedlist>
        <listitem><para>Der
	  <application>FLEXlm</application>-Lizenzmanager kann schwierig
	  zu bedienen sein.  Zus&auml;tzliche Dokumentation
	  zu diesem Thema finden Sie unter <ulink
	  url="http://www.globetrotter.com/"></ulink>.</para></listitem>

        <listitem><para>Es ist bekannt, dass <command>lmgrd</command>
	  sehr pingelig ist, wenn es um die Lizenzdatei geht.  Gibt
	  es Probleme, f&uuml;hrt dies zu einem Speicherauszug
	  (<foreignphrase>core dump</foreignphrase>).  Ein
	  korrekte Lizenzdatei sollte &auml;hnlich der
	  folgenden aussehen:</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>Seriennummer und Schl&uuml;ssel wurden durch mehrere
	    <literal>X</literal> unkenntlich gemacht.  <hostid>chillig</hostid> ist ein
	    Rechnername.</para></note>

	  <para>Ver&auml;nderungen an der Lizenzdatei sind m&ouml;glich,
	    solange Sie die <literal>FEATURE</literal>-Zeile nicht
	    ver&auml;ndern (diese ist durch den Lizenzschl&uuml;ssel
	    gesch&uuml;tzt).</para></listitem>
      </itemizedlist>
    </sect2>
  </sect1>

  <sect1 id="linuxemu-matlab">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Dan</firstname>
	  <surname>Pelleg</surname>
	  <contrib>Beigesteuert von </contrib>
	</author>
	<!-- daniel+handbook@pelleg.org -->
      </authorgroup>
    </sect1info>
    <title>&matlab; installieren</title>

    <indexterm>
      <primary>Linux-Anwendungen</primary>
      <secondary><application>MATLAB</application></secondary>
    </indexterm>

    <para>Im Folgenden wird die Installation der Linux-Anwendung
      <application>&matlab;</application> Version&nbsp;6.5 auf
      &os; beschrieben.  Mit Ausnahme der
      <application>&java.virtual.machine;</application> (siehe
      <xref linkend="matlab-jre">) l&auml;uft die Anwendung
      auch ganz gut.</para>

    <para>Die Linux-Version von <application>&matlab;</application>
      k&ouml;nnen Sie direkt bei <ulink
        url="http://www.mathworks.com">The MathWorks</ulink> bestellen.
      Vergewissern Sie sich, dass Sie die Lizenz-Datei
      oder eine Anleitung zum Erstellen der Lizenz-Datei erhalten
      haben.  Wenn Sie mit MathWorks in Kontakt stehen, weisen
      Sie bitte auf die fehlende &os;-Version der Software hin.</para>

    <sect2>
      <title>Das &matlab;-Installationsskript</title>

      <para>Um <application>&matlab;</application> zu installieren,
	gehen Sie wie folgt vor:</para>

      <procedure>
	<step>
	  <para>H&auml;ngen Sie die Installations-CD ein und
	    wechseln Sie zu <username>root</username>, wie im
	    Installations-Skript gefordert.  Starten Sie die
	    Installation mit dem folgenden Kommando:</para>

	  <screen>&prompt.root; <userinput>/compat/linux/bin/sh /cdrom/install</userinput></screen>

	  <tip>
	    <para>Die Installation erfordert eine graphische
	      Benutzeroberfl&auml;che.  Wenn Sie die Fehlermeldung
	      erhalten, dass das Display nicht ge&ouml;ffnet werden
	      konnte, f&uuml;hren Sie das folgende Kommando aus:</para>

	    <screen>&prompt.root; <userinput>setenv HOME ~<replaceable>USER</replaceable></userinput></screen>

	    <para>F&uuml;r <replaceable>USER</replaceable> setzen Sie
	      den Benutzer ein, von dem aus Sie <username>root</username>
	      geworden sind.</para>
	  </tip>
	</step>

	<step>
	  <para>Beantworten Sie die Frage nach dem
	    <application>&matlab;</application>-Root-Verzeichnis mit:
	    <userinput>/compat/linux/usr/local/matlab</userinput>.</para>

	  <tip>
	    <para>Den langen Pfad werden Sie noch &ouml;fter brauchen.
	      Die Tipparbeit k&ouml;nnen Sie sich mit dem folgenden
	      Befehl erleichtern:</para>

	    <screen>&prompt.root; <userinput>set MATLAB=/compat/linux/usr/local/matlab</userinput></screen>
	  </tip>
	</step>

	<step>
	  <para>Editieren Sie die Lizenz-Datei entsprechend der
	    Anweisung, die Sie beim Erwerb der Lizenz
	    erhalten haben.</para>

	  <tip>
	    <para>Sie k&ouml;nnen die Datei schon vorher mit Ihrem
	      Lieblingseditor bearbeiten.  Kopieren Sie die Lizenz-Datei
	      nach <filename>$MATLAB/license.dat</filename>
	      bevor das Installationsprogramm Sie auffordert, die
	      Datei zu editieren.</para>
	  </tip>
	</step>

	<step>
	  <para>Schlie&szlig;en Sie die Installation ab.</para>
	</step>
      </procedure>

      <para>Die <application>&matlab;</application>-Installation
	ist jetzt abgeschlossen.  Die folgenden Schritte passen
	<application>&matlab;</application> an &os; an.</para>
    </sect2>

    <sect2>
      <title>Den Lizenzmanager starten</title>
      <procedure>
	<step>
	  <para>Erstellen Sie symbolische Links zu den Startskripten
	    des Lizenzmanagers:</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>Erstellen Sie das Startskript
	    <filename>/usr/local/etc/rc.d/flexlm.sh</filename>.  Das
	    folgende Beispiel ist eine ge&auml;nderte Version des
	    mitgelieferten Skripts
	    <filename>$MATLAB/etc/rc.lm.glnx86</filename>.
	    Angepasst wurden die Pfade zu den Dateien und der
	    Start des Lizenzmanagers unter der Linux-Emulation.</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>username</replaceable> &amp;&amp; echo 'MATLAB_lmgrd'
        fi
        ;;
  stop)
	if [ -f /usr/local/etc/lmdown_TMW ]; then
            /compat/linux/bin/sh /usr/local/etc/lmdown_TMW  &gt; /dev/null 2&gt;&amp;1
	fi
        ;;
  *)
	echo "Usage: $0 {start|stop}"
	exit 1
	;;
esac

exit 0</programlisting>

	  <important>
	    <para>Machen Sie Datei ausf&uuml;hrbar:</para>

	    <screen>&prompt.root; <userinput>chmod +x /usr/local/etc/rc.d/flexlm.sh</userinput></screen>

	    <para>Ersetzen Sie im Skript <replaceable>username</replaceable>
	      durch einen existierenden Benutzer Ihres Systems
	      (bitte keinesfalls <username>root</username>).</para>
	  </important>
	</step>

	<step>
	  <para>Starten Sie den Lizenzmanager:</para>

	  <screen>&prompt.root; <userinput>/usr/local/etc/rc.d/flexlm.sh start</userinput></screen>
	</step>
      </procedure>
    </sect2>

    <sect2 id="matlab-jre">
      <title>Einrichten der &java;-Laufzeitumgebung</title>

      <para>Erstellen Sie einen symbolischen Link auf eine
	unter &os; laufende &java;-Laufzeitumgebung (JRE):</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>Ein &matlab;-Startskript erstellen</title>

      <procedure>
	<step>
	  <para>Kopieren Sie das folgende Skript nach
	    <filename>/usr/local/bin/matlab</filename>:</para>

	  <programlisting>#!/bin/sh
/compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"</programlisting>
	</step>

	<step>
	  <para>Machen Sie das Skript ausf&uuml;hrbar:</para>

	  <screen>&prompt.root; <userinput>chmod +x /usr/local/bin/matlab</userinput></screen>
	</step>
      </procedure>

      <tip>
	<para>Abh&auml;ngig von der Version des Ports
	  <filename role="package">emulators/linux_base</filename>
	  kann das Skript auf Fehler laufen.  Die Fehler k&ouml;nnen
	  Sie vermeiden, indem Sie die Datei
	  <filename>/compat/linux/usr/local/matlab/bin/matlab</filename>
	  editieren.  &Auml;ndern Sie die nachstehende Zeile</para>

	<programlisting>if [ `expr "$lscmd" : '.*-&gt;.*'` -ne 0 ]; then</programlisting>
	<para>(mit Version&nbsp;13.0.1 in der Zeile&nbsp;410) in
	  die folgende um:</para>

	<programlisting>if test -L $newbase; then</programlisting>
      </tip>
    </sect2>

    <sect2>
      <title>Stopp-Skript f&uuml;r &matlab; erstellen</title>

      <para>Das nachstehende Skript beendet &matlab;
        ordnungsgem&auml;&szlig;.</para>

      <procedure>
	<step>
	  <para>Erstellen Sie die Datei
	    <filename>$MATLAB/toolbox/local/finish.m</filename> mit
	    dem nachstehenden Inhalt:</para>

	  <programlisting>! $MATLAB/bin/finish.sh</programlisting>

	  <note>
	    <para>&Uuml;bernehmen Sie die Zeichenkette
	      <literal>$MATLAB</literal> unver&auml;ndert.</para>
	  </note>

	  <tip>
	    <para>Im selben Verzeichnis befinden sich die
	      Dateien <filename>finishsav.m</filename> und
	      <filename>finishdlg.m</filename>.  Die Dateien
	      sichern die Einstellungen der Arbeitsfl&auml;che
	      bevor &matlab; beendet wird.  Wenn Sie eine
	      der beiden Dateien benutzen, f&uuml;gen Sie
	      die obige Zeile unmittelbar nach dem
	      <literal>save</literal>-Kommando ein.</para>
	  </tip>
	</step>

	<step>
	  <para>Erstellen Sie die Datei
	    <filename>$MATLAB/bin/finish.sh</filename> mit
	    nachstehendem Inhalt:</para>

	  <programlisting>#!/usr/compat/linux/bin/sh
(sleep 5; killall -1 matlab_helper) &
exit 0</programlisting>
	</step>

	<step>
	  <para>Machen Sie die Datei ausf&uuml;hrbar:</para>

	  <screen>&prompt.root; <userinput>chmod +x $MATLAB/bin/finish.sh</userinput></screen>
	</step>
      </procedure>
    </sect2>

    <sect2 id="matlab-using">
      <title>&matlab; benutzen</title>

      <para>Jetzt k&ouml;nnen Sie <application>&matlab;</application>
	mit dem <command>matlab</command> starten.</para>
    </sect2>
  </sect1>

  <sect1 id="linuxemu-oracle">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Marcel</firstname>
	  <surname>Moolenaar</surname>
	  <contrib>Beigetragen von </contrib>
	</author>
	<!-- marcel@cup.hp.com -->
      </authorgroup>
    </sect1info>
    <title>&oracle; installieren</title>

    <indexterm>
      <primary>Linux-Anwendungen</primary>
      <secondary><application>Oracle</application></secondary>
    </indexterm>

    <sect2>
      <title>&Uuml;bersicht</title>
      <para>Dieses Dokument beschreibt die Installation von
	<application>&oracle; 8.0.5</application>
	und <application>&oracle; 8.0.5.1 Enterprise Edition</application>
	f&uuml;r Linux auf einem FreeBSD-Rechner.</para>
    </sect2>

    <sect2>
      <title>Installation der Linux-Umgebung</title>

      <para>Stellen Sie sicher, dass Sie sowohl
	<filename role="package">emulators/linux_base</filename> und
	<filename role="package">devel/linux_devtools</filename>
	aus der Ports-Collection installiert haben.  Wenn Sie mit
	diesen Ports Schwierigkeiten haben, m&uuml;ssen Sie
	vielleicht &auml;ltere Versionen der Linux-Umgebung aus
	der Ports-Collection installieren.</para>

      <para>Wenn Sie den Intelligent-Agent verwenden wollen,
	m&uuml;ssen Sie zus&auml;tzlich das RedHat Tcl-Paket
	installieren: <filename>tcl-8.0.3-20.i386.rpm</filename>.
	Zur Installation von RPM-Paketen wir der Port
	<filename role='package'>archivers/rpm</filename> ben&ouml;tigt.
	Ist der Port installiert, lassen sich RPM-Pakete
	anschlie&szlig;end mit dem nachstehenden Befehl
	installieren:</para>

      <screen>&prompt.root; <userinput>rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm <replaceable>package</replaceable></userinput></screen>

      <para>Die Installation der RPM-Pakete sollte ohne
	Fehlermeldung ablaufen.</para>
    </sect2>

    <sect2>
      <title>Die &oracle;-Umgebung erzeugen</title>

      <para>Bevor Sie <application>&oracle;</application> installieren
	k&ouml;nnen, m&uuml;ssen Sie eine entsprechende Umgebung erzeugen.
	Dieses Dokument beschreibt nur, was Sie
	<emphasis>im Speziellen</emphasis> tun m&uuml;ssen, um die
	Linux-Version von <application>&oracle;</application> unter FreeBSD
	zu installieren, nicht aber, was bereits in der Installationsanleitung
	von <application>&oracle;</application> beschrieben wird.</para>

      <sect3 id="linuxemu-kernel-tuning">
        <title>Kernel-Tuning</title>
	<indexterm><primary>Kernel Tuning</primary></indexterm>

	<para>Wie in der Installationsanleitung von
	  <application>&oracle;</application> beschrieben,
	  m&uuml;ssen Sie die maximale Shared-Memory Gr&ouml;&szlig;e
	  festlegen.  Verwenden Sie
	  <literal>SHMMAX</literal> nicht unter FreeBSD.
	  <literal>SHMMAX</literal> wird lediglich aus
	  <literal>SHMMAXPGS</literal> und <literal>PGSIZE</literal>
	  berechnet.  Definieren Sie stattdessen
	  <literal>SHMMAXPGS</literal>.  Alle anderen Optionen
	  k&ouml;nnen wie in der Anleitung beschrieben verwendet werden.
	  Zum Beispiel:</para>

	<programlisting>options SHMMAXPGS=10000
options SHMMNI=100
options SHMSEG=10
options SEMMNS=200
options SEMMNI=70
options SEMMSL=61</programlisting>

	<para>Passen Sie diese Optionen entsprechend dem von Ihnen
	  gew&uuml;nschten Einsatzzweck von
	  <application>&oracle;</application> an.</para>

	<para>Stellen Sie au&szlig;erdem sicher, dass Sie folgende
	  Optionen in Ihren Kernel kompilieren:</para>

<programlisting>options SYSVSHM #SysV shared memory
options SYSVSEM #SysV semaphores
options SYSVMSG #SysV interprocess communication</programlisting>
      </sect3>

      <sect3 id="linuxemu-oracle-account">

        <title>&oracle;-Benutzer anlegen</title>

	<para>Legen Sie den Account <username>oracle</username> an.
	  Der Account unterschiedet sich von normalen Accounts
	  dadurch, dass er eine Linux-Shell zugeordnet bekommen muss.
	  F&uuml;gen Sie <literal>/compat/linux/bin/bash</literal> in die
	  Datei <filename>/etc/shells</filename> ein und setzen Sie die
	  Shell f&uuml;r den <username>oracle</username>-Account auf
	  <filename>/compat/linux/bin/bash</filename>.</para>
      </sect3>

      <sect3 id="linuxemu-environment">
        <title>Umgebung</title>

	<para>Neben den normalen
	  <application>&oracle;</application>-Variablen, wie z.B.
	  <envar>ORACLE_HOME</envar> und <envar>ORACLE_SID</envar>
	  m&uuml;ssen Sie die folgenden Variablen setzen:</para>

	<informaltable frame="none" pgwide="1">
	  <tgroup cols="2">
	  <colspec colwidth="1*">
	  <colspec colwidth="2*">
	    <thead>
	      <row>
		<entry>Variable</entry>

		<entry>Wert</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>Es ist empfehlenswert, alle Variablen in der Datei
	  <filename>.profile</filename> zu setzen.  Ein komplettes
	  Beispiel sieht folgenderma&szlig;en aus:</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>&oracle; installieren</title>

      <para>Auf Grund einer kleinen Unregelm&auml;&szlig;igkeit
	im Linux-Emulator m&uuml;ssen Sie das Verzeichnis
	<filename>.oracle</filename> unter <filename>/var/tmp</filename>
	erzeugen, bevor Sie das Installationsprogramm starten.
	Das Verzeichnis muss dem Account <username>oracle</username>
	geh&ouml;ren.  Sie sollten <application>&oracle;</application> nun
	ohne Probleme installieren k&ouml;nnen.  Treten dennoch Probleme
	auf, &uuml;berpr&uuml;fen Sie zuerst Ihre
	<application>&oracle;</application>-Distribution und Ihre
	Konfiguration.  Nachdem Sie <application>&oracle;</application>
	erfolgreich installiert haben, installieren Sie die Patches
	wie in den zwei folgenden Abschnitten beschrieben:</para>

      <para>Ein h&auml;ufiges Problem ist, dass der
	TCP Protokoll-Adapter nicht korrekt installiert wird.
	Daraus folgt, dass Sie keine TCP-Listener starten k&ouml;nnen.
	Dieses Problem kann durch folgende Schritte behoben werden:</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>Vergessen Sie nicht, <filename>root.sh</filename>
	nochmals auszuf&uuml;hren!</para>

      <sect3 id="linuxemu-patch-root">
        <title>root.sh patchen</title>

	<para>W&auml;hrend der
	  <application>&oracle;</application>-Installation werden einige
	  Aktionen, die als <username>root</username>
	  ausgef&uuml;hrt werden m&uuml;ssen, in ein Shell-Skript
	  mit dem Namen <filename>root.sh</filename> gespeichert.
	  Dieses Skript befindet sich im Verzeichnis
	  <filename>orainst</filename>.  Verwenden Sie folgenden
	  Patch f&uuml;r <filename>root.sh</filename>, damit es
	  das richtige <command>chown</command> Kommando
	  verwendet, oder lassen Sie das
	  Skript alternativ unter einer Linux-Shell ablaufen:</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>Wenn Sie <application>&oracle;</application> nicht
	  von CD-ROM installieren, k&ouml;nnen
	  Sie Quelldatei f&uuml;r <filename>root.sh</filename>
	  ver&auml;ndern.  Sie hei&szlig;t <filename>rthd.sh</filename>
	  und befindet sich im <filename>orainst</filename>-Verzeichnis
	  des Quellcodebaums.</para>
      </sect3>

      <sect3 id="linuxemu-patch-tcl">
	<title>genclntsh patchen</title>

	<para>Das Skript <command>genclntsh</command> wird verwendet,
	  um eine Shared-Library f&uuml;r Clients zu erzeugen.
	  Diese wird bei der Erzeugung der Demos verwendet.  Verwenden
	  Sie folgenden Patch, um die Definition von <envar>PATH</envar>
	  auszukommentieren:</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>&oracle; starten</title>

      <para>Wenn Sie den Anweisungen gefolgt sind, sollten Sie nun
	in der Lage sein, <application>&oracle;</application> zu starten,
	genau so, wie Sie dies auch unter Linux tun w&uuml;rden.</para>
    </sect2>
  </sect1>

  <sect1 id="sapr3">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Holger</firstname>
	  <surname>Kipp</surname>
	  <contrib>Beigetragen von </contrib>
	</author>
      </authorgroup>
      <!-- holger.kipp@alogis.com -->
      <authorgroup>
	<author>
	  <firstname>Valentino</firstname>
	  <surname>Vaschetto</surname>
	  <contrib>Originalversion nach SGML konvertiert durch: </contrib>
	</author>
      </authorgroup>
    </sect1info>

    <title>&sap.r3; installieren</title>

    <indexterm>
      <primary>Linux-Anwendungen</primary>
      <secondary><application>SAP R/3</application></secondary>
    </indexterm>

    <para>Installationen von <application>&sap;</application>
      unter FreeBSD werden vom &sap; Support-Team
      nicht unterst&uuml;tzt &ndash; und &sap; bietet Support nur
      f&uuml;r zertifizierte Plattformen an! </para>

    <sect2 id="preface">
      <title>&Uuml;bersicht</title>

      <para>Dieses Dokument beschreibt einen m&ouml;glichen Weg, um ein
	<application>&sap.r3;-System</application> mit
	<application>&oracle;</application> Datenbank
	f&uuml;r Linux auf einem FreeBSD-Rechner zu installieren,
	einschlie&szlig;lich der Installation von FreeBSD und
	<application>&oracle;</application>.  Zwei verschiedene Konfigurationen
	werden beschrieben:</para>

      <itemizedlist>
	<listitem>
	  <para><application>&sap.r3; 4.6B (IDES)</application> mit
	    <application>&oracle; 8.0.5</application> unter
	    FreeBSD 4.3-STABLE</para>
	</listitem>

	<listitem>
	  <para><application>&sap.r3; 4.6C</application> mit
	    <application>&oracle; 8.1.7</application> unter
	    FreeBSD 4.5-STABLE</para>
	</listitem>
      </itemizedlist>

      <para>Obwohl dieses Dokument versucht, alle wichtigen Schritte
	ausf&uuml;hrlich zu beschreiben, besteht nicht die Absicht,
	die originalen Installationsanleitungen von
	<application>&oracle;</application> und
	<application>&sap.r3;</application> zu ersetzen.</para>

      <para>Benutzen Sie die mit
	<application>&sap.r3; Linux Edition</application>
	gelieferte Dokumentation f&uuml;r <application>&sap;</application>-
	und <application>&oracle;</application>-spezifische Fragen,
	sowie die Ressourcen von <application>&oracle;</application> und
	<application>&sap;-OSS</application>.</para>
    </sect2>

    <sect2 id="software">
      <title>Software/Programme</title>

      <para>Folgende CD-ROMs wurden f&uuml;r die Installation von
	<application>&sap;</application> verwendet:</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>Bezeichnung</entry>
	      <entry>Nummer</entry>
	      <entry>Beschreibung</entry>
	    </row>
	  </thead>
	  <tbody>
	    <row>
	      <entry>KERNEL</entry>
	      <entry>51009113</entry>
	      <entry>&sap; Kernel &oracle; / Installation / 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 / Disc 1 of 6</entry>
	    </row>

	    <row>
	      <entry>EXPORT2</entry>
	      <entry>51010209</entry>
	      <entry>IDES / DB-Export / Disc 2 of 6</entry>
	    </row>

	    <row>
	      <entry>EXPORT3</entry>
	      <entry>51010210</entry>
	      <entry>IDES / DB-Export / Disc 3 of 6</entry>
	    </row>

	    <row>
	      <entry>EXPORT4</entry>
	      <entry>51010211</entry>
	      <entry>IDES / DB-Export / Disc 4 of 6</entry>
	    </row>

	    <row>
	      <entry>EXPORT5</entry>
	      <entry>51010212</entry>
	      <entry>IDES / DB-Export / Disc 5 of 6</entry>
	    </row>

	    <row>
	      <entry>EXPORT6</entry>
	      <entry>51010213</entry>
	      <entry>IDES / DB-Export / Disc 6 of 6</entry>
	    </row>
	  </tbody>
	</tgroup>
      </informaltable>

      <para>Zus&auml;tzlich wurde die
	<application>&oracle; 8 Server</application> CD-ROM
	(Pre-production Version 8.0.5 f&uuml;r Linux, Kernel Version 2.0.33)
	verwendet, die allerdings nicht unbedingt n&ouml;tig ist
	und FreeBSD 4.3-STABLE (die Installation wurde kurz
	nach dem Erscheinen von 4.3-RELEASE durchgef&uuml;hrt).</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>Bezeichnung</entry>
		<entry>Nummer</entry>
		<entry>Beschreibung</entry>
	      </row>
	    </thead>

	    <tbody>
	      <row>
		<entry>KERNEL</entry>
		<entry>51014004</entry>
		<entry>&sap; Kernel &oracle; / &sap; Kernel Version 4.6D / 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>Release 4.6C SR2 / Export / Disc 1 of 4</entry>
	      </row>

	      <row>
		<entry>EXPORT1</entry>
		<entry>51013953</entry>
		<entry>Release 4.6C SR2 / Export / Disc 2 of 4</entry>
	      </row>

	      <row>
		<entry>EXPORT1</entry>
		<entry>51013953</entry>
		<entry>Release 4.6C SR2 / Export / Disc 3 of 4</entry>
	      </row>

	      <row>
		<entry>EXPORT1</entry>
		<entry>51013953</entry>
		<entry>Release 4.6C SR2 / Export / Disc 4 of 4</entry>
	      </row>

	      <row>
		<entry>LANG1</entry>
		<entry>51013954</entry>
		<entry>Release 4.6C SR2 / Language / DE, EN, FR /
		  Disc 1 of 3</entry>
	      </row>
	    </tbody>
	  </tgroup>
	</informaltable>

        <para>Abh&auml;ngig von den zu installierenden Sprachen kann
	  es sein, dass zus&auml;tzliche Sprach-CDs n&ouml;tig sind.
	  Da hier nur Deutsch und Englisch verwendet wurden, ist die
	  erste Sprachen-CD ausreichend.  Nebenbei bemerkt sind
	  die Nummern aller vier Export-CDs identisch.  Das hei&szlig;t alle
	  drei Sprachen-CDs haben diesselbe Nummer (das unterscheidet
	  sie von der Nummerierung der  4.6B IDES-Version).
	  Zum Zeitpunkt der Erstellung dieses Dokuments lief das
	  System unter FreeBSD 4.5-STABLE (20.03.2002).</para>
      </sect3>
    </sect2>

    <sect2 id="sap-notes">
      <title>&sap;-Notes</title>

      <para>Die folgenden Anmerkungen sollten vor der Installation
	von <application>&sap.r3;</application> gelesen werden, da sie
	sich w&auml;hrend der Installation als n&uuml;tzlich
	erwiesen haben.</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>Nummer</entry>
		<entry>Bezeichnung</entry>
	      </row>
	    </thead>
	    <tbody>

	      <row>
		<entry>0171356</entry>
		<entry>&sap; Software on Linux: Essential Comments</entry>
	      </row>

	      <row>
		<entry>0201147</entry>
		<entry>INST: 4.6C R/3 Inst. on UNIX - &oracle;</entry>
	      </row>

	      <row>
		<entry>0373203</entry>
		<entry>Update / Migration &oracle; 8.0.5 --&gt; 8.0.6/8.1.6
		  LINUX</entry>
	      </row>

	      <row>
		<entry>0072984</entry>
		<entry>Release of Digital UNIX 4.0B for &oracle;</entry>
	      </row>

	      <row>
		<entry>0130581</entry>
		<entry>R3SETUP step DIPGNTAB terminates</entry>
	      </row>

	      <row>
		<entry>0144978</entry>
		<entry>Your system has not been installed correctly</entry>
	      </row>

	      <row>
		<entry>0162266</entry>
		<entry>Questions and tips for R3SETUP on
		  Windows NT/W2K</entry>
	      </row>
	    </tbody>
	  </tgroup>
	</informaltable>
      </sect3>

      <sect3 id="sap-notes-46c">
	<title>&sap.r3; 4.6C, &oracle; 8.1.7</title>

	<informaltable frame="none" pgwide="1">
	  <tgroup cols="2">
	    <thead>
	      <row>
		<entry>Nummer</entry>
		<entry>Bezeichnung</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>Hardware-Anforderungen</title>

      <para>Die folgende Ausstattung reicht f&uuml;r die Installation eines
	<application>&sap.r3; Systems</application> aus.  F&uuml;r
	Produktionszwecke ben&ouml;tigt man nat&uuml;rlich eine
	exakte Bestimmung dieser Gr&ouml;&szlig;en:</para>

      <informaltable frame="none" pgwide="1">
	<tgroup cols="3">
	  <thead>
	    <row>
	      <entry>Komponente</entry>
	      <entry>4.6B</entry>
	      <entry>4.6C</entry>
	    </row>
	  </thead>
	  <tbody>
	    <row>
	      <entry>Prozessor</entry>
	      <entry>2 x 800MHz &pentium; III</entry>
	      <entry>2 x 800MHz &pentium; III</entry>
	    </row>

	    <row>
	      <entry>Hauptspeicher</entry>
	      <entry>1GB ECC</entry>
	      <entry>2GB ECC</entry>
	    </row>

	    <row>
	      <entry>Festplattenplatz</entry>
	      <entry>50-60GB (IDES)</entry>
	      <entry>50-60GB (IDES)</entry>
	    </row>
	  </tbody>
	</tgroup>
      </informaltable>

      <para>F&uuml;r Produktionszwecke sind &xeon; Prozessoren mit
	gro&szlig;em Cache, Hochgeschwindigkeitsspeicher (SCSI,
	RAID Hardware Controller), USV (unterbrechungsfreie
	Stromversorgung) und ECC-RAM empfehlenswert.  Der gro&szlig;e
	Bedarf an Festplattenplatz ergibt sich durch das vorkonfigurierte
	IDES System, welches w&auml;hrend der Installation
	27&nbsp;GB Datenbankdateien erzeugt.  Dieser Speicher ist
	auch f&uuml;r neue Produktionssysteme und Anwendungsdaten
	ausreichend.</para>

      <sect3 id="hardware-46b">
	<title>&sap.r3; 4.6B, &oracle; 8.0.5</title>

      <para>Folgende Standard-Hardware wurde verwendet: Ein
	Doppelprozessorboard mit zwei 800&nbsp;MHz &pentium;&nbsp;III
	Prozessoren, Adaptec 29160 Ultra160 SCSI Adaptern
	(zum Anschlu&szlig; eines 40/80&nbsp;GB DLT Bandlaufwerks und eines
	CD-ROM-Laufwerks), &mylex; &acceleraid; (2 Kan&auml;le,
	Firmware&nbsp;6.00-1-00 mit 32&nbsp;MB RAM).  An den
	&mylex; RAID-Controller wurden 2 (gespiegelte) 17&nbsp;GB
	Festplatten sowie vier 36&nbsp;GB Festplatten (RAID level 5)
	angeschlossen.</para>
      </sect3>

      <sect3 id="hardware-46c">
	<title>&sap.r3; 4.6C, &oracle; 8.1.7</title>

      <para>F&uuml;r diese Installation wurde ein DELL PowerEdge 2500
	verwendet: Ein Doppelprozessorboard mit zwei
	1000&nbsp;MHz &pentium;&nbsp;III Prozessoren
	(256&nbsp;kB Cache), 2&nbsp;GB PC133 ECC SDRAM, PERC/3 DC PCI
	RAID-Controller mit 128&nbsp;MB, und einem EIDE DVD-ROM Laufwerk.
	An den RAID-Controller sind zwei (gespiegelte) 18&nbsp;GB Festplatten
	sowie vier 36&nbsp;GB Festplatten (RAID level 5) angeschlossen.</para>
      </sect3>
    </sect2>

    <sect2 id="installation">
      <title>Installation von FreeBSD</title>

      <para>Als erstes m&uuml;ssen Sie FreeBSD installieren.
	Dazu gibt es mehrere M&ouml;glichkeiten:  In den Beispielen
	wurde FreeBSD&nbsp;4.3 via FTP, FreeBSD&nbsp;4.5 hingegen direkt
	von CD installiert.  Weitere Hinweise zur Installation
	von &os; finden Sie in
	<xref linkend="install-diff-media">.</para>

      <sect3 id="disk-layout">
	<title>Aufteilung der Festplatte</title>

	<para>Um das Ganze zu vereinfachen, wurde sowohl f&uuml;r die
	  <application>&sap.r3; 46B</application>- als auch die
	  <application>&sap.r3; 46C SR2</application>-Installation die
	  gleiche Platteneinteilung verwendet.  Nur die Ger&auml;tenamen
	  &auml;nderten sich, da die Installationen auf verschiedenen
	  Hardwareplattformen durchgef&uuml;hrt wurden (Insbesondere
	  <filename>/dev/da</filename> sowie
	  <filename>/dev/amr</filename>; wenn also jemand z.B.
	  ein AMI &megaraid; verwendet, so wird er
	  <filename>/dev/amr0s1a</filename> anstelle von
	  <filename>/dev/da0s1a</filename> vorfinden.):</para>

	<informaltable frame="none" pgwide="1">
	  <tgroup cols="4">
	    <thead>
	      <row>
		<entry>Dateisystem</entry>
		<entry>Gr&ouml;&szlig;e (1k-blocks)</entry>
		<entry>HDD-Gr&ouml;&szlig;e (GB)</entry>
		<entry>Gemountet nach</entry>
	      </row>
	    </thead>
	    <tbody>
	      <row>
		<entry><filename>/dev/da0s1a</filename></entry>
		<entry>1.016.303</entry>
		<entry>1</entry>
		<entry><filename>/</filename></entry>
	      </row>

	      <row>
		<entry><filename>/dev/da0s1b</filename></entry>
		<entry> </entry>
		<entry>6</entry>
		<entry>Swap</entry>
	      </row>

	      <row>
		<entry><filename>/dev/da0s1e</filename></entry>
		<entry>2.032.623</entry>
		<entry>2</entry>
		<entry><filename>/var</filename></entry>
	      </row>

	      <row>
		<entry><filename>/dev/da0s1f</filename></entry>
		<entry>8.205.339</entry>
		<entry>8</entry>
		<entry><filename>/usr</filename></entry>
	      </row>

	      <row>
		<entry><filename>/dev/da1s1e</filename></entry>
		<entry>45.734.361</entry>
		<entry>45</entry>
		<entry><filename>/compat/linux/oracle</filename></entry>
	      </row>

	      <row>
		<entry><filename>/dev/da1s1f</filename></entry>
		<entry>2.032.623</entry>
		<entry>2</entry>
		<entry><filename>/compat/linux/sapmnt</filename></entry>
	      </row>

	      <row>
		<entry><filename>/dev/da1s1g</filename></entry>
		<entry>2.032.623</entry>
		<entry>2</entry>
		<entry><filename>/compat/linux/usr/sap</filename></entry>
	      </row>
	    </tbody>
	  </tgroup>
	</informaltable>

	<para>Konfigurieren und initialisieren Sie die zwei
	  logischen Platten mit der &mylex;- oder PERC/3 RAID Software,
	  bevor Sie beginnen.  Diese kann w&auml;hrend der BIOS-Bootphase
	  gestartet werden.</para>

	<para>Beachten Sie bitte, dass sich diese Platteneinteilung
	  etwas von den &sap;-Empfehlungen unterscheidet, da &sap;
	  vorschl&auml;gt, die &oracle;-Unterverzeichnisse
	  (und einige andere) separat einzuh&auml;ngen &ndash; es
	  ist jedoch einfacher, diese als reale Unterverzeichnisse
	  zu erzeugen.</para>
      </sect3>

      <sect3 id="makeworldandnewkernel">
	<title><command>make world</command> und ein neuer Kernel</title>

	<para>Laden Sie die neuesten STABLE-Quellen herunter.
	  Aktualisieren Sie das System und erzeugen Sie einen
	  neuen Kernel, nachdem Sie die Kernelkonfigurationsdatei
	  angepasst haben.  Zus&auml;tzlich sollten Sie
	  die <link linkend="kerneltuning">Kernel Parameter</link>
	  einf&uuml;gen, die sowohl von <application>&sap.r3;</application>
	  als auch von <application>&oracle;</application>
	  ben&ouml;tigt werden.</para>
      </sect3>
    </sect2>

    <sect2 id="installingthelinuxenviornment">
      <title>Installation der Linux-Umgebung</title>

      <sect3 id="installinglinuxbase-system">
	<title>Das Linux-Basissystem installieren</title>

	<para>Zuerst muss der Port
	  <link linkend="linuxemu-libs-port">linux_base</link>
	  als <username>root</username> installiert werden:</para>

	<screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_base</userinput>
&prompt.root; <userinput>make package</userinput></screen>

      </sect3>


      <sect3 id="installinglinuxdevelopment">
	<title>Die Linux-Entwicklungsumgebung installieren</title>

	<para>Die Linux-Entwicklungsumgebung wird ben&ouml;tigt, wenn Sie
	  <application>&oracle;</application> auf Ihrem FreeBSD-System
	  installieren wollen (siehe <xref linkend="linuxemu-oracle">):</para>

	<screen>&prompt.root; <userinput>cd /usr/ports/devel/linux_devtools</userinput>
&prompt.root; <userinput>make install distclean</userinput></screen>

	<para>Die Linux-Entwicklungsumgebung wurde hier jedoch nur f&uuml;r
	  die <application>&sap.r3; 46B IDES</application>-Installation
	  verwendet.  Sie wird nicht ben&ouml;tigt, wenn die
	  <application>&oracle;</application>-Datenbank auf dem FreeBSD
	  System nicht neu gebunden wird.  Dies ist dann der Fall,
	  wenn Sie den <application>&oracle;</application>
	  Tarball eines Linux-Systems verwenden.</para>
      </sect3>


      <sect3 id="installingnecessaryrpms">
	<title>Notwendige RPMs installieren</title>
	<indexterm><primary>RPMs</primary></indexterm>

	<para>Um das <command>R3SETUP</command>-Programm
	  zu starten, wird PAM-Unterst&uuml;tzung ben&ouml;tigt.
	  W&auml;hrend der ersten Installation von
	  <application>&sap;</application> unter
	  FreeBSD 4.3-STABLE wurde versucht, zuerst alle von PAM
	  ben&ouml;tigten Pakete zu installieren.  Anschlie&szlig;end
	  wurde die Installation von PAM erzwungen, was auch ohne
	  Probleme funktionierte.  F&uuml;r die folgende Installation
	  von <application>&sap.r3; 4.6C SR2</application>
	  wurde die Installation von PAM ohne die abh&auml;ngigen
	  Pakete direkt erzwungen und es funktionierte ebenfalls.
	  Es sieht so aus, als w&uuml;rden die abh&auml;ngigen Pakete
	  nicht ben&ouml;tigt.</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>Um den Intelligent-Agent von
	  <application>&oracle; 8.0.5</application> auszuf&uuml;hren,
	  musste das RedHat Tcl-Paket
	  <filename>tcl-8.0.5-30.i386.rpm</filename> installiert werden,
	  da sonst das Binden (<foreignphrase>link</foreignphrase>)
	  w&auml;hrend der <application>&oracle;</application>-Installation
	  nicht funktionierte.  Es gibt noch weitere Punkte beim
	  Binden von &oracle;, die aber die Kombination
	  <application>&oracle;</application>-Linux
	  betreffen und nicht FreeBSD spezifisch sind.</para>
      </sect3>

      <sect3 id="linuxprocandfallbackelfbrand">
	<title>Zus&auml;tzliche Hinweise</title>

	<para>Eine gute Idee ist es, <literal>linprocfs</literal>
	  in <filename>/etc/fstab</filename> einzuf&uuml;gen;
	  weitere Informationen dazu erhalten Sie in der Hilfeseite
	  &man.linprocfs.5;.  Weiterhin sollten Sie in
	  der Datei <filename>/etc/sysctl.conf</filename>
	  die Zeile <literal>kern.fallback_elf_brand=3</literal>
	  einf&uuml;gen.</para>
      </sect3>
    </sect2>

    <sect2 id="creatingsapr3env">
      <title>Die &sap.r3;-Umgebung erzeugen</title>

      <sect3 id="filesystemsandmountpoints">
	<title>Die n&ouml;tigen Dateisysteme erzeugen</title>

	<para>F&uuml;r eine einfache Installation reicht es aus,
	  folgende Dateisysteme zu erzeugen:</para>

	<informaltable frame="none" pgwide="1">
	  <tgroup cols="2">
	    <thead>
	      <row>
		<entry>Dateisysteme</entry>
		<entry>Gr&ouml;&szlig;e in GB</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>Au&szlig;erdem m&uuml;ssen einige Links angelegt werden.
	  Ansonsten beschwert sich der
	  <application>&sap;</application>-Installer, wenn er die
	  erzeugten Links &uuml;berpr&uuml;ft:</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>Eine Fehlermeldung w&auml;hrend der Installation (hier unter dem
	  <emphasis>PRD</emphasis>-System und
	  <application>&sap.r3; 4.6C SR2</application> k&ouml;nnte
	  beispielsweise so aussehen:</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>Benutzer und Verzeichnisse anlegen</title>

	<para><application>&sap.r3;</application> ben&ouml;tigt zwei
	  Benutzer und drei Benutzergruppen.  Die Benutzernamen
	  h&auml;ngen von der (aus drei Buchstaben bestehenden)
	  <application>SAP</application>-System-ID (SID) ab.  Einige
	  dieser SIDs sind von <application>&sap;</application>
	  reserviert (z.B. <literal>SAP</literal> und
	  <literal>NIX</literal>.  F&uuml;r eine komplette
	  &Uuml;bersicht schlagen Sie bitte in der
	  <application>&sap;</application>-Dokumentation
	  nach.  F&uuml;r die IDES-Installation  wurde <literal>IDS</literal>
	  verwendet, f&uuml;r die 4.6C-SR2-Installation
	  <literal>PRD</literal>, da das System f&uuml;r
	  Produktionszwecke eingesetzt werden sollte.  Daraus ergaben
	  sich folgende Gruppen (die Gruppen-IDs k&ouml;nnen variieren,
	  es handelt sich nur um Werte, die f&uuml;r diese spezielle
	  Installation verwendet wurden):</para>

        <informaltable frame="none" pgwide="1">
          <tgroup cols="3">
          <thead>
          <row>
            <entry>Gruppen-ID</entry>
            <entry>Gruppen-Name</entry>
            <entry>Beschreibung</entry>
          </row>
          </thead>
          <tbody>
          <row>
            <entry>100</entry>
            <entry>dba</entry>
            <entry>Datenbank-Administrator</entry>
          </row>
          <row>
            <entry>101</entry>
            <entry>sapsys</entry>
            <entry>SAP System</entry>
          </row>
          <row>
            <entry>102</entry>
            <entry>oper</entry>
            <entry>Datenbank-Operator</entry>
          </row>
          </tbody>
          </tgroup>
        </informaltable>

        <para>Bei einer
	  Standard-<application>&oracle;</application>-Installation
	  wird nur die Gruppe <groupname>dba</groupname> verwendet.
	  F&uuml;r die Gruppe <groupname>oper</groupname> wird
	  ebenfalls die Gruppe <groupname>dba</groupname> verwendet
	  (weitere Informationen finden sich in der
	  <application>&oracle;</application>- und
	  <application>&sap;</application>-Dokumentation).</para>

        <para>Zus&auml;tzlich werden auch folgende Benutzer
	  ben&ouml;tigt:</para>

        <informaltable frame="none" pgwide="1">
          <tgroup cols="6">
          <thead>
          <row>
            <entry>Benutzer-ID</entry>
            <entry>Benutzername</entry>
            <entry>Generischer Name</entry>
            <entry>Gruppe</entry>
            <entry>Zus&auml;tzliche Gruppen</entry>
            <entry>Beschreibung</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 Administrator</entry>
          </row>
          <row>
            <entry>1002</entry>
            <entry>oraids/oraprd</entry>
            <entry>ora<replaceable>sid</replaceable></entry>
            <entry>dba</entry>
            <entry>oper</entry>
            <entry>&oracle; Administrator</entry>
          </row>
          </tbody>
          </tgroup>
        </informaltable>

        <para>F&uuml;r das Anlegen des &sap;-Administrators mittels
	  &man.adduser.8; werden folgende Eintr&auml;ge
	  (beachten Sie bitte die Shell und das Heimatverzeichnis)
	  ben&ouml;tigt:</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>und f&uuml;r den Datenbank-Administrator:</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>Wenn Sie beide Gruppen (<groupname>dba</groupname> und
	  <groupname>oper</groupname>) verwenden, sollte auch die Gruppe
	  <groupname>oper</groupname> hinzugef&uuml;gt werden.</para>

      </sect3>

      <sect3 id="creatingdirectories">
        <title>Verzeichnisse erzeugen</title>

        <para>Diese Verzeichnisse werden gew&ouml;hnlich als eigene
	  Dateisysteme erzeugt und gemountet.  Letztlich liegt dies
	  aber an Ihren Anforderungen an das System.  Hier wurden
	  sie als einfache Verzeichnisse angelegt, die sich alle im
	  gleichen RAID5 befinden:</para>

        <para>Zuerst werden die Eigent&uuml;mer und Rechte f&uuml;r
	  einige Verzeichnisse (als Benutzer <username>root</username>)
	  gesetzt:</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>Danach werden (als Benutzer
	  <username>ora<replaceable>sid</replaceable></username>) einige
	  Verzeichnisse erzeugt, die alle Unterverzeichnisse von
	  <filename>/oracle/<replaceable>SID</replaceable></filename> sind:</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>F&uuml;r die <application>&oracle; 8.1.7</application>-Installation
	  werden ebenfalls zus&auml;tzliche Verzeichnisse ben&ouml;tigt:</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>Das Verzeichnis <filename>client/80x_32</filename>
	  muss genau so genannt werden.  Versuchen Sie nicht,
	  das <emphasis>x</emphasis> durch eine Zahl oder
	  einen Buchstaben zu ersetzen.</para></note>

        <para>Im dritten Schritt werden wiederum Verzeichnisse (als Benutzer
	  <username><replaceable>sid</replaceable>adm</username>) erzeugt:</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>Eintr&auml;ge in <filename>/etc/services</filename></title>

        <para><application>&sap.r3;</application> ben&ouml;tigt
	  einige Eintr&auml;ge in <filename>/etc/services</filename>,
	  die w&auml;hrend der Installation unter FreeBSD nicht
	  richtig gesetzt werden.  Sie ben&ouml;tigen mindestens
	  die zur Instanzennummer, in diesem Fall <literal>00</literal>,
	  passenden Eintr&auml;ge.  Es ist auch m&ouml;glich,
	  direkt alle Eintr&auml;ge f&uuml;r
	  <literal>dp</literal>, <literal>gw</literal>,
	  <literal>sp</literal> und <literal>ms</literal>
	  von <literal>00</literal> bis <literal>99</literal>
	  einzuf&uuml;gen.  Wenn Sie einen
	  <application>SAP-Router</application> verwenden, oder
	  den Zugang zu &sap;-OSS ben&ouml;tigen,
	  m&uuml;ssen Sie auch <literal>99</literal> einf&uuml;gen,
	  da der Port 3299 normalerweise f&uuml;r den
	  <application>SAP-Router</application>-Prozess auf
	  dem Zielsystem ben&ouml;tigt wird:</para>

        <programlisting>sapdp00    3200/tcp # SAP Dispatcher.      3200 + Instance-Number
sapgw00  3300/tcp # SAP Gateway.         3300 + Instance-Number
sapsp00  3400/tcp #                      3400 + Instance-Number
sapms00  3500/tcp #                      3500 + Instance-Number
sapms<replaceable>SID</replaceable> 3600/tcp # SAP Message Server.  3600 + Instance-Number
sapgw00s   4800/tcp # SAP Secure Gateway   4800 + Instance-Number</programlisting>
      </sect3>

      <sect3 id="necessarylocales">
        <title>Notwendige Lokalisierungen</title>
	<indexterm><primary>Locale</primary></indexterm>

        <para><application>&sap;</application> ben&ouml;tigt
	  mindestens zwei Lokalisierungen, die nicht Teil der
	  RedHat-Standardinstallation sind.  &sap; bietet
	  diese als RPMs auf ihrem FTP-Server als Downloads
	  an (diese sind aber nur dann zug&auml;nglich, wenn Sie
	  ein Kunde mit OSS-Zugang sind).  F&uuml;r eine
	  &Uuml;bersicht der notwendigen RPMs lesen Sie bitte den
	  &sap;-Hinweis 0171356.</para>

        <para>Es ist auch m&ouml;glich, nur die passenden Links
	  (z.B. von <emphasis>de_DE</emphasis> und <emphasis>en_US</emphasis>)
	  zu erzeugen, diese Vorgehensweise wird aber nicht nicht
	  empfohlen (obwohl es bisher beim IDES-System ohne Probleme
	  funktioniert hat).  Folgende Lokalisationen werden
	  ben&ouml;tigt:</para>

        <programlisting>de_DE.ISO-8859-1
en_US.ISO-8859-1</programlisting>

	<para>Erzeugen Sie die Links wie folgt:</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>Sind diese nicht vorhanden, wird es w&auml;hrend
	  der Installation zu einigen Problemen kommen.  Wenn diese
	  konsequent ignoriert werden (indem der fehlgeschlagene
	  Schritt in <filename>CENTRDB.R3S</filename> auf
	  <literal>OK</literal> gesetzt wird), ist es ohne
	  gr&ouml;&szlig;eren Aufwand nicht mehr m&ouml;glich, sich am
	  <application>&sap;</application>-System anzumelden.</para>
      </sect3>

      <sect3 id="kerneltuning">
        <title>Kernel-Tuning</title>
	<indexterm><primary>Kernel Tuning</primary></indexterm>

        <para><application>&sap.r3;</application>-Systeme verbrauchen
	  sehr viele Ressourcen.  Deshalb wurden folgende Parameter
	  in die Kernelkonfigurationsdatei eingef&uuml;gt:</para>

        <programlisting># Set these for memory pigs (SAP and Oracle):
options MAXDSIZ="(1024*1024*1024)"
options DFLDSIZ="(1024*1024*1024)"
# System V options needed.
options SYSVSHM #SYSV-style shared memory
options SHMMAXPGS=262144 #max amount of shared mem. pages
#options SHMMAXPGS=393216 #use this for the 46C inst.parameters
options SHMMNI=256 #max number of shared memory ident if.
options SHMSEG=100 #max shared mem.segs per process
options SYSVMSG #SYSV-style message queues
options MSGSEG=32767 #max num. of mes.segments in system
options MSGSSZ=32 #size of msg-seg. MUST be power of 2
options MSGMNB=65535 #max char. per message queue
options MSGTQL=2046 #max amount of msgs in system
options SYSVSEM #SYSV-style semaphores
options SEMMNU=256 #number of semaphore UNDO structures
options SEMMNS=1024 #number of semaphores in system
options SEMMNI=520 #number of semaphore indentifiers
options SEMUME=100       #number of UNDO keys</programlisting>

        <para>Die minimalen Werte sind in der von &sap; kommenden
	  Dokumentation festgelegt.  Da es keine Beschreibung f&uuml;r
	  Linux (und daher auch nicht f&uuml;r FreeBSD) gibt,
	  entnehmen Sie weitere Informationen dem HP-UX-Abschnitt (32-Bit).
	  Da das System f&uuml;r die 4.6C SR2-Installation &uuml;ber
	  mehr Hauptspeicher verf&uuml;gte, k&ouml;nnen die
	  Shared-Segments f&uuml;r <application>&sap;</application> und
	  <application>&oracle;</application> gr&ouml;&szlig;er sein.
	  W&auml;hlen Sie daher eine gr&ouml;&szlig;ere Anzahl von
	  Shared-Memory-Pages.</para>

	<note><para>Bei einer Standard-Installation von
	  FreeBSD&nbsp;4.5 auf &i386;-Systemen belassen Sie
	  <literal>MAXDSIZ</literal> und <literal>DFLDSIZ</literal>
	  auf dem Maximum von 1&nbsp;GB.  Ansonsten k&ouml;nnten
	  seltsame Fehlermeldungen, wie
	  <errorname>ORA-27102: out of memory</errorname> oder
	  <errorname>Linux Error: 12: Cannot allocate memory</errorname>
	  auftreten.</para></note>
      </sect3>
    </sect2>

    <sect2 id="installingsapr3">
      <title>&sap.r3; installieren</title>

      <sect3 id="preparingsapcdroms">
        <title>Die &sap; CD-ROMs vorbereiten</title>

        <para>F&uuml;r eine Installation werden viele CD-ROMs ben&ouml;tigt,
	  die gemountet und ungemountet werden m&uuml;ssen.  Wenn
	  Sie gen&uuml;gend CD-ROM-Laufwerke haben, k&ouml;nnen Sie
	  alle gleichzeitig gemountet werden.  Ansonsten kopiert man die
	  CD-ROM-Inhalte einfach in die entsprechenden Verzeichnisse,</para>

	<programlisting>/oracle/<replaceable>SID</replaceable>/sapreorg/<replaceable>cd-name</replaceable></programlisting>

        <para>wobei <replaceable>cd-name</replaceable> <filename>KERNEL</filename>,
	  <filename>RDBMS</filename>, <filename>EXPORT1</filename>,
	  <filename>EXPORT2</filename>, <filename>EXPORT3</filename>,
	  <filename>EXPORT4</filename>, <filename>EXPORT5</filename> und
	  <filename>EXPORT6</filename> bei einer 4.6B/IDES-Installation und
	  <filename>KERNEL</filename>, <filename>RDBMS</filename>,
	  <filename>DISK1</filename>, <filename>DISK2</filename>,
	  <filename>DISK3</filename>, <filename>DISK4</filename> und
	  <filename>LANG</filename> bei einer 4.6C SR2-Installation
	  entspricht.  Die Dateinamen auf den gemounteten CDs sollten
	  aus Gro&szlig;buchstaben bestehen.  Ist dies nicht der Fall,
	  verwenden Sie zum Mounten die Option <option>-g</option>.  F&uuml;r das
	  Kopieren der CD-Inhalte verwenden Sie folgenden Befehle:</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-name</replaceable></userinput>
&prompt.root; <userinput>umount /mnt</userinput></screen>
      </sect3>

      <sect3 id="runningtheinstall-script">
        <title>Das Installations-Skript ausf&uuml;hren</title>

	<para>Als erstes m&uuml;ssen Sie ein Installationsverzeichnis
	  anlegen:</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>Anschlie&szlig;end wird das Installations-Skript gestartet,
	  das nahezu alle relevanten Daten in das Installationsverzeichnis
	  kopiert:</para>

	<screen>&prompt.root; <userinput>/oracle/<replaceable>SID</replaceable>/sapreorg/KERNEL/UNIX/INSTTOOL.SH</userinput></screen>

	<para>Die IDES-Installation (4.6B) wird mit einem vollst&auml;ndig
	  angepassten &sap.r3; Demo-System geliefert, das hei&szlig;t
	  es gibt sechs statt drei Export-CDs.  Da
	  <filename>CENTRDB.R3S</filename>
	  f&uuml;r eine Standard-Zentralinstanz
	  (<application>&r3;</application> plus Datenbank)
	  ausgelegt ist, aber nicht f&uuml;r eine IDES-Zentralinstanz,
	  muss die passende <filename>CENTRDB.R3S</filename>-Datei
	  manuell aus dem Verzeichnis
	  <filename class="directory">EXPORT1</filename> in das
	  Installationsverzeichnis kopiert werden, da
	  <command>R3SETUP</command> ansonsten nur nach drei
	  EXPORT-CDs verlangt.</para>

	<para>Die aktuellere Version <application>&sap; 4.6C SR2</application>
	  wird mit vier EXPORT-CDs geliefert.  Die die Installation
	  &uuml;berwachende Parameter-Datei hei&szlig;t hier
	  <filename>CENTRAL.R3S</filename>.  Im Gegensatz zu fr&uuml;heren
	  Versionen gibt es nun keine separaten Vorlagen f&uuml;r
	  die Installation von Zentralinstanzen mit und ohne Datenbank mehr.
	  <application>&sap;</application> verwendet eine
	  eigene Vorlage f&uuml;r die
	  Datenbankinstallation.  Um die Installation sp&auml;ter
	  erneut starten, ist es jedoch ausreichend,
	  die Installation mit der urspr&uuml;nglichen Datei zu starten.</para>

	<para>W&auml;hrend und nach der Installation ben&ouml;tigt
	  <application>&sap;</application> <command>hostname</command>,
	  um den Rechnernamen, aber nicht den vollst&auml;ndigen
	  Domain-Namen zu erhalten.  Setzen Sie also entweder den
	  Rechnernamen entsprechend, oder setzen Sie einen Alias mit
	  <command>alias hostname='hostname -s'</command>
	  f&uuml;r die Benutzer
	  <username>ora<replaceable>sid</replaceable></username> und
	  <username><replaceable>sid</replaceable>adm</username>
	  (Und zus&auml;tzlich f&uuml;r <username>root</username>.
	  Dies zumindest f&uuml;r die Installationsschritte, die als
	  <username>root</username> ausgef&uuml;hrt werden m&uuml;ssen.).
	  Au&szlig;erdem ist es m&ouml;glich, nur die w&auml;hrend
	  der <application>&sap;</application>-Installation erstellten
	  Dateien <filename>.profile</filename> und
	  <filename>.login</filename> beider Benutzer anzupassen.</para>
      </sect3>

      <sect3 id="startr3setup-46B">
        <title><command>R3SETUP</command> 4.6B starten</title>

        <para>Stellen Sie sicher, dass <envar>LD_LIBRARY_PATH</envar> korrekt
	  gesetzt wurde:</para>

        <screen>&prompt.root; <userinput>export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/lib</userinput></screen>

        <para>Gehen Sie in das Installationsverzeichnis und starten Sie
	  <command>R3SETUP</command> als <username>root</username>:</para>

        <screen>&prompt.root; <userinput>cd /oracle/IDS/sapreorg/install</userinput>
&prompt.root; <userinput>./R3SETUP -f CENTRDB.R3S</userinput></screen>

        <para>Das Skript stellt anschlie&szlig;end einige Fragen
	  (Vorgaben stehen dabei in Klammern, gefolgt von den
	  aktuellen Eingaben):</para>

        <informaltable frame="none" pgwide="1">
          <tgroup cols="3">
          <thead>
          <row>
            <entry>Frage</entry>
            <entry>Vorgabe</entry>
            <entry>Eingabe</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> (in Megabytes)</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>Wenn Sie die CD-Inhalte nicht in verschiedene
	  Verzeichnisse kopiert haben, findet das
	  <application>&sap;</application>-Installationsprogramm
	  die ben&ouml;tigten CDs nicht (diese sind durch die Datei
	  <filename>LABEL.ASC</filename> gekennzeichnet) und
	  w&uuml;rde von Ihnen verlangen, entweder die CD einzulegen
	  und zu mounten oder den entsprechenden mount-Pfad
	  einzugeben.</para>

        <para><filename>CENTRDB.R3S</filename> ist m&ouml;glicherweise
	  nicht fehlerfrei.  Im vorliegenden Fall wurde die CD EXPORT4
	  zwar erneut verlangt, dennoch wurde der richtige Schl&uuml;ssel
	  (6_LOCATION, danach 7_LOCATION) vorgeschlagen.
	  Daher ist es problemlos m&ouml;glich, durch Eingabe der
	  korrekten Werte fortzufahren.</para>

        <para>Abgesehen von einigen kleineren (unten angef&uuml;hrten)
	  Problemen, sollte nun bis zur Installation der
	  <application>&oracle;</application>-Datenbank alles ohne Probleme
	  ablaufen.</para>
      </sect3>

      <sect3 id="startr3setup-46C">
	<title><command>R3SETUP</command> 4.6C SR2 starten</title>

	<para>Stellen Sie sicher, dass <envar>LD_LIBRARY_PATH</envar>
	  korrekt gesetzt ist.  Dieser Wert unterscheidet sich von dem der
	  4.6B-<application>&oracle; 8.0.5</application>-Installation:</para>

	<screen>&prompt.root; <userinput>export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/lib</userinput></screen>

	<para>Gehen Sie in das Installationsverzeichnis und f&uuml;hren
	  Sie <command>R3SETUP</command> als
	  <username>root</username> aus:</para>

	<screen>&prompt.root; <userinput>cd /oracle/PRD/sapreorg/install</userinput>
&prompt.root; <userinput>./R3SETUP -f CENTRAL.R3S</userinput></screen>

	<para>Das Skript stellt anschlie&szlig;end einige Fragen
	  (Vorgaben in Klammern, gefolgt von den aktuellen Eingaben):</para>

	<informaltable frame="none" pgwide="1">
	  <tgroup cols="3">
	  <thead>
	  <row>
	    <entry>Frage</entry>
	    <entry>Vorgabe</entry>
	    <entry>Eingabe</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> (in Megabytes)</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> (no support)</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>Bisher verursacht das Anlegen von Benutzern eine
	  Fehlermeldung w&auml;hrend der Installation, und zwar
	  in den Stadien OSUSERDBSID_IND_ORA (beim Anlegen
	  des Benutzers <username>ora<replaceable>sid</replaceable></username>),
	  sowie in OSUSERSIDADM_IND_ORA (beim Anlegen des Benutzers
	  <username><replaceable>sid</replaceable>adm</username>).</para>

        <para>Abgesehen von einigen kleineren (unten angef&uuml;hrten)
	  Problemen, sollte nun bis zur Installation der
	  <application>&oracle;</application>-Datenbank alles ohne
	  Probleme ablaufen.</para>
      </sect3>
    </sect2>

    <sect2 id="installingoracle805">
      <title>&oracle; 8.0.5 installieren</title>

      <para>Lesen Sie bitte die entsprechenden
	<application>&sap;</application>-Hinweise und
	<application>&oracle;</application>-<filename>Readme</filename>s f&uuml;r Probleme,
	die <application>Linux</application>
	und die <application>&oracle;</application>-Datenbank betreffen.
	Die meisten (wenn nicht alle) Probleme
	werden durch inkompatible Bibliotheken verursacht.</para>

      <para>Weiteres zur
	<application>&oracle;</application>-Installation
	finden Sie im Kapitel <link linkend="linuxemu-oracle">Installation
	  von &oracle;.</link></para>

      <sect3 id="installingtheoracle805withorainst">
        <title>&oracle; 8.0.5 mit <command>orainst</command> installieren</title>

        <para>Wenn <application>&oracle; 8.0.5</application> verwendet
	  wird, werden einige zus&auml;tzliche Bibliotheken ben&ouml;tigt,
	  da <application>&oracle; 8.0.5</application> mit einer
	  alten Version von glibc verlinkt wurde, RedHat&nbsp;6.1 aber
	  bereits eine aktuellere Version verwendet.  Daher m&uuml;ssen
	  Sie folgende zus&auml;tzliche Pakte installieren, um sicherzustellen,
	  dass die Verlinkung ordnungsgem&auml;&szlig; erfolgt:</para>

        <para><filename>compat-libs-5.2-2.i386.rpm</filename></para>
        <para><filename>compat-glibc-5.2-2.0.7.2.i386.rpm</filename></para>
        <para><filename>compat-egcs-5.2-1.0.3a.1.i386.rpm</filename></para>
        <para><filename>compat-egcs-c++-5.2-1.0.3a.1.i386.rpm</filename></para>
        <para><filename>compat-binutils-5.2-2.9.1.0.23.1.i386.rpm</filename></para>

	<para>Lesen Sie bitte die entsprechenden &sap;-Hinweise
	  und die &oracle;-<filename>Readme</filename>s.
	  Ist dies nicht m&ouml;glich (z.B. aus Zeitmangel, oder bei
	  Nichtvorhandensein dieser Unterlagen), besteht auch die
	  M&ouml;glichkeit, die originalen Bin&auml;rdateien oder die
	  verlinkten Bin&auml;rdateien eines RedHat-Systems zu
	  verwenden.</para>

        <para>Um den Intelligent-Agent zu kompilieren, muss
	  das RedHat Tcl-Paket installiert sein.  Wenn Sie
	  <filename>tcl-8.0.3-20.i386.rpm</filename> nicht bekommen
	  k&ouml;nnen, sollte es auch problemlos m&ouml;glich sein,
	  eine neuere Version, z.B.
	  <filename>tcl-8.0.5-30.i386.rpm</filename> f&uuml;r
	  RedHat&nbsp;6.1, zu verwenden.</para>

        <para>Vom Binden abgesehen, l&auml;uft die Installation
	  wie folgt ab:</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>Best&auml;tigen Sie alle Meldungen mit <keycap>Enter</keycap>,
	  bis die Software installiert ist.  Einzige Ausnahme ist die
	  Frage nach der Installation des <emphasis>&oracle; On-Line
	    Text Viewers</emphasis>.  Dieser ist unter Linux (noch)
	  nicht verf&uuml;gbar.  Daher muss diese Option deaktiviert werden.
	  Anschlie&szlig;end will sich <application>&oracle;</application>
	  unter Verwendung von <command>i386-glibc20-linux-gcc</command>
	  anstelle der verf&uuml;gbaren <command>gcc</command>,
	  <command>egcs</command> oder
	  <command>i386-redhat-linux-gcc</command> verlinken.</para>

        <para>Auf Grund zeitlicher Einschr&auml;nkungen wurden
	  f&uuml;r die Installation die Bin&auml;rdateien der
	  <application>&oracle; 8.0.5 PreProduction</application>-Version
	  verwendet, nachdem sich der erste Versuch, die Version
	  von der RDBMS-CD zum Laufen zu bringen, sowie die
	  richtigen RPMs zu finden und zu installieren,
	  zum Alptraum entwickelt hatte.</para>
      </sect3>

      <sect3 id="installingtheoracle805preproduction">
        <title>&oracle; 8.0.5 Pre-Production f&uuml;r
	  Linux (Kernel 2.0.33) installieren</title>

        <para>Diese Installation ist relativ einfach.  Mounten Sie die
	  CD und starten Sie den Installer.  Danach w&auml;hlen Sie
	  das &oracle;-Heimatverzeichnis und kopieren Sie die
	  Bin&auml;rdateien dorthin.  Die &Uuml;berreste der
	  vorherigen RDBMS-Installationsversuche werden dabei nicht
	  entfernt.</para>

        <para>Danach konnte die
	  <application>&oracle;</application>-Datenbank
	  ohne Probleme gestartet werden.</para>
      </sect3>
    </sect2>

    <sect2 id="installingoracle817">
      <title>Das &oracle; 8.1.7-Linux-Archiv entpacken</title>
      <para>Nehmen Sie das aus dem Installationsverzeichnis eines
	Linux-Systems erstellte Archiv <filename>oracle81732.tgz</filename>
	und entpacken Sie es nach
	<filename>/oracle/<replaceable>SID</replaceable>/817_32/</filename>.</para>
    </sect2>

    <sect2 id="continuewithsapr4installation">
      <title>Mit der &sap.r3;-Installation fortfahren</title>

      <para>&Uuml;berpr&uuml;fen Sie als Erstes die
	Umgebungseinstellungen der Benutzer
	<username>idsamd</username>(<replaceable>sid</replaceable>adm) und
	<username>oraids</username> (ora<replaceable>sid</replaceable>).
	Beide sollten nun die Dateien <filename>.profile</filename>,
	<filename>.login</filename> und <filename>.cshrc</filename>
	enthalten, die alle <command>hostname</command> benutzen.
	Falls der Rechnername Ihres Systems der vollst&auml;ndige Rechnername
	ist, m&uuml;ssen Sie in allen drei Dateien
	<command>hostname</command> in <command>hostname -s</command>
	&auml;ndern.</para>

      <sect3 id="databaseload">
        <title>Datenbanken laden</title>

        <para>Danach kann <command>R3SETUP</command> entweder erneut
	  gestartet oder fortgesetzt werden (je nachdem, ob Sie das
	  Programm zuvor beendet hatten oder nicht).
	  <command>R3SETUP</command> erzeugt nun die Tablespaces und
	  l&auml;dt die Daten (f&uuml;r 46B IDES von EXPORT1 bis
	  EXPORT6, f&uuml;r 46C von DISK1 bis DISK4) mittels
	  <command>R3load</command> in die Datenbank.</para>

        <para>Wenn das Laden der Datenbank abgeschlossen ist
	  (dieser Vorgang kann einige Stunden dauern!), werden
	  einige Passw&ouml;rter angefordert.  F&uuml;r
	  Testinstallationen k&ouml;nnen auch
	  Standard-Passw&ouml;rter verwendet werden.  Liegt
	  Ihnen allerdings etwas an der Sicherheit Ihres Systems,
	  so verwenden Sie andere Passw&ouml;rter.</para>

        <informaltable frame="none" pgwide="1">
          <tgroup cols="2">
          <thead>
          <row>
            <entry>Frage</entry>
            <entry>Eingabe</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>An diesem Punkt gab es w&auml;hrend der 4.6B-Installation
	  einige Probleme mit <command>dipgntab</command>.</para>
      </sect3>

      <sect3 id="listener">
        <title>Listener</title>

        <para>Starten Sie den <application>&oracle;</application>-Listener als Benutzer
	  <username>ora<replaceable>sid</replaceable></username>
	  wie folgt:</para>

        <screen>&prompt.user; <userinput>umask 0; lsnrctl start</userinput></screen>

        <para>Ansonsten k&ouml;nnten Sie die Meldung
	  <errorcode>ORA-12546</errorcode> erhalten,
	  da die Sockets nicht &uuml;ber die korrekten Berechtigungen
	  verf&uuml;gen werden.  Lesen Sie dazu auch den
	  &sap;-Hinweis 072984.</para>
      </sect3>

      <sect3 id="mnlstables">
	<title>MNLS-Tabellen aktualisieren</title>
	<para>Wenn Sie Nicht-Latin-1-Sprachen in das
	  <application>&sap;</application>-System
	  einbauen wollen, m&uuml;ssen Sie die MNLS
	  (Multi National Language Support)-Tabellen aktualisieren.
	  Dies wird in den SAP-OSS-Hinweisen 15023 und 45619 beschrieben.
	  Ansonsten k&ouml;nnen Sie diese Frage w&auml;hrend der
	  <application>&sap;</application>-Installation
	  &uuml;berspringen.</para>

	<note><para>Wenn Sie MNLS nicht ben&ouml;tigen, ist es
	  trotzdem n&ouml;tig, die Tabelle TCPDB zu &uuml;berpr&uuml;fen
	  und zu initialisieren, falls dies nicht bereits geschehen ist.
	  Lesen Sie die &sap;-Hinweise 0015023 und 0045619, falls Sie
	  weitere Informationen ben&ouml;tigen.</para></note>
      </sect3>
    </sect2>

    <sect2 id="postinstallationsteps">
      <title>Abschlie&szlig;ende Aufgaben</title>

      <sect3 id="requestsapr3licensekey">
        <title>&sap.r3;-Lizenzschl&uuml;ssel anfordern</title>

        <para>Sie m&uuml;ssen Ihren
	  <application>&sap.r3;</application>-Lizenzschl&uuml;ssel anfordern,
	  da die zur Installation verwendete Lizenz nur f&uuml;r
	  vier Wochen g&uuml;ltig ist.  Dazu ermitteln Sie zuerst Ihren
	  Hardwareschl&uuml;ssel.  Melden Sie sich als
	  <username>idsadm</username> an und rufen
	  Sie <command>saplicense</command> auf:</para>

        <screen>&prompt.root; <userinput>/sapmnt/IDS/exe/saplicense -get</userinput></screen>

	<para>Wird <command>saplicense</command> ohne Optionen aufgerufen,
	  so erhalten Sie eine &Uuml;bersicht der m&ouml;glichen Optionen.
	  Nach Erhalt des Lizenzschl&uuml;ssels kann dieser
	  installiert werden:</para>

        <screen>&prompt.root; <userinput>/sapmnt/IDS/exe/saplicense -install</userinput></screen>

        <para>Nun m&uuml;ssen Sie folgende Daten eingeben:</para>

        <programlisting>SAP SYSTEM ID   = <replaceable>SID, 3 Zeichen</replaceable>
CUSTOMER KEY    = <replaceable>Hardware-Schl&uuml;ssel, 11 Zeichen</replaceable>
INSTALLATION NO = <replaceable>Installation, 10 Ziffern</replaceable>
EXPIRATION DATE = <replaceable>JJJJMMTT, normalerweise "99991231"</replaceable>
LICENSE KEY     = <replaceable>Lizenzschl&uuml;ssel, 24 Zeichen</replaceable></programlisting>
      </sect3>

      <sect3 id="creatingusers">
        <title>Benutzer anlegen</title>

        <para>Erzeugen Sie einen Benutzer innerhalb von client 000
	  (f&uuml;r einige Aufgaben muss dies innerhalb von
	  client 000 erfolgen, aber nicht als Benutzer
	  <username>sap*</username> und <username>ddic</username>).
	  Als Benutzername empfiehlt sich beispielsweise
	  <username>wartung</username> (oder auf Englisch
	  <username>service</username>).  Ben&ouml;tigte
	  Profile sind <literal>sap_new</literal> und
	  <literal>sap_all</literal>.  Aus Sicherheitsgr&uuml;nden
	  sollten die Passw&ouml;rter der Standardbenutzer in allen
	  Clients ge&auml;ndert werden (dies gilt auch f&uuml;r die Benutzer
	  <username>sap*</username> und <username>ddic</username>).</para>
      </sect3>

      <sect3 id="configtranssysprofileopermodesetc">
        <title>Transportsystem, Profile, Betriebsarten usw.
	  konfigurieren</title>

	<para>Innerhalb von client 000 f&uuml;hren andere Benutzer als
	  <username>ddic</username> und <username>sap*</username>
	  normalerweise folgende Aufgaben durch:</para>

        <informaltable frame="none" pgwide="1">
          <tgroup cols="2">
          <thead>
          <row>
            <entry>Aufgabe</entry>
            <entry>Transaktion</entry>
          </row>
          </thead>
          <tbody>
          <row>
	    <entry>Konfiguration des Transportsystems, beispielsweise als
	      <emphasis>Stand-Alone Transport Domain Entity</emphasis></entry>
	    <entry>STMS</entry>
          </row>
          <row>
	    <entry>Erstellen und Editieren von Profilen</entry>
            <entry>RZ10</entry>
          </row>
          <row>
            <entry>Pflege von Betriebsarten und Instanzen</entry>
            <entry>RZ04</entry>
          </row>
          </tbody>
          </tgroup>
        </informaltable>

        <para>Diese sowie alle anderen Post-Installationsschritte
	  sind ausf&uuml;hrlich in den <application>&sap;</application>-Installationsanleitungen
	  beschrieben.</para>
      </sect3>

      <sect3 id="editintsidsap">
        <title><filename>init<replaceable>sid</replaceable>.sap</filename> (<filename>initIDS.sap</filename>) anpassen</title>

	<para>Die Datei <filename>/oracle/IDS/dbs/initIDS.sap</filename>
	  enth&auml;lt das <application>&sap;</application>-Sicherungsprofil.  Hier sind die
	  Gr&ouml;&szlig;e des verwendeten Band(laufwerks),
	  die Kompressionsart und so weiter festgelegt.  Um dieses
	  Profil mit <command>sapdba</command> oder <command>brbackup</command>
	  auszuf&uuml;hren, wurden folgende Werte ge&auml;ndert:</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>Erkl&auml;rungen:</para>

        <para><varname>compress</varname>: Das verwendete Bandlaufwerk
	  war ein HP DLT1.  Dieses unterst&uuml;tzt Hardware-Kompression.</para>

        <para><varname>archive_function</varname>: Hier wird das
	  Standardverhalten beim Sichern von &oracle;-Archivprotokollen
	  festgelegt.  Neue Protokolldateien werden auf Band
	  gespeichert, bereits gespeicherte erneut gespeichert und
	  anschlie&szlig;end gel&ouml;scht.  Dies verhindert eine Vielzahl
	  von Problemen, falls Sie Ihre Datenbank wiederherstellen
	  m&uuml;ssen und dabei feststellen, dass eins Ihrer
	  Archivb&auml;nder defekt ist.</para>

        <para><varname>cpio_flags</varname>: Standardm&auml;&szlig;ig
	  wird <option>-B</option> verwendet.  Dies setzt die Blockgr&ouml;&szlig;e
	  auf 5120&nbsp;Bytes.  F&uuml;r DLT-B&auml;nder
	  werden von HP mindestens 32&nbsp;K Blockgr&ouml;&szlig;e
	  empfohlen, daher wurde hier <option>--block-size=128</option>
	  verwendet, um 64&nbsp;KB-bl&ouml;cke zu erzeugen.
	  <option>--format=newc</option> wurde ben&ouml;tigt, da das
	  Installationssystem &uuml;ber mehr als 65535&nbsp;Inodes
	  verf&uuml;gt.  Die letzte Option <option>--quiet</option> ist notwendig, weil
	  <command>brbackup</command> sich sonst beschwert, wenn
	  die <command>cpio</command> die Anzahl der gespeicherten
	  Bl&ouml;cke ausgibt.</para>

        <para><varname>cpio_in_flags</varname>: Flags, die zum Laden
	  der Daten vom Band ben&ouml;tigt werden.  Das Format wird
	  dabei automatisch erkannt.</para>

        <para><varname>tape_size</varname>: Damit wird die maximale
	  Speicherkapazit&auml;t des Bandes angegeben.  Aus
	  Sicherheitsgr&uuml;nden (das Bandlaufwerk unterst&uuml;tzt
	  Hardware-Kompression) ist dieser Wert geringf&uuml;gig kleiner
	  als der aktuelle Wert.</para>

        <para><varname>tape_address</varname>: Nicht zur&uuml;ckspulendes
	  Ger&auml;t f&uuml;r <command>cpio</command>.</para>

        <para><varname>tape_address_rew</varname>: Zur&uuml;ckspulendes
	  Ger&auml;t f&uuml;r <command>cpio</command>.</para>
      </sect3>

      <sect3>
	<title>Konfiguration nach Installationsende</title>

	<para>Die folgenden <application>&sap;</application>-Parameter sollten nach der
	  Installation optimiert werden (die Beispiele gelten
	  f&uuml;r IDES 46B, 1&nbsp;GB Hauptspeicher):</para>

	<informaltable frame="none" pgwide="1">
	  <tgroup cols="2">
	    <thead>
	      <row>
		<entry>Name</entry>
		<entry>Wert</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>&sap;-Hinweis 0013026:</para>

	<informaltable frame="none" pgwide="1">
	  <tgroup cols="2">
	    <thead>
	      <row>
		<entry>Name</entry>
		<entry>Wert</entry>
	      </row>
	    </thead>
	    <tbody>
	      <row>
		<entry>ztta/dynpro_area</entry>
		<entry>2500000</entry>
	      </row>
	    </tbody>
	  </tgroup>
	</informaltable>

	<para>&sap;-Hinweis 0157246:</para>

	<informaltable frame="none" pgwide="1">
	  <tgroup cols="2">
	    <thead>
	      <row>
		<entry>Name</entry>
		<entry>Wert</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>Mit obigen Parametern und einem System mit 1&nbsp;Gigabyte
	    Hauptspeicher, k&ouml;nnte der Speicherverbrauch in etwa
	    so aussehen:</para>

	  <programlisting>Mem: 547M Active, 305M Inactive, 109M Wired, 40M Cache, 112M Buf, 3492K Free</programlisting>
	</note>
      </sect3>
    </sect2>

    <sect2 id="problemsduringinstallation">
      <title>W&auml;hrend der Installation auftretende Probleme</title>

      <sect3 id="restartr3setup">
	<title>Neustarten von <command>R3SETUP</command> nach Behebung eines Problems</title>

	<para><command>R3SETUP</command> bricht ab, wenn ein Fehler auftritt.  Wenn Sie
	  (nach Durchsicht der jeweiligen Protokolldateien) den Fehler
	  behoben haben, m&uuml;ssen Sie <command>R3SETUP</command> erneut aufrufen,
	  indem Sie f&uuml;r den fehlerhaften Schritt als Option
	  REPEAT eingeben.</para>

	<para>Um <command>R3SETUP</command> erneut zu starten, rufen Sie die Datei
	  einfach mit der entsprechenden <filename>R3S</filename>-Datei
	  auf:</para>

	<screen>&prompt.root; <userinput>./R3SETUP -f CENTRDB.R3S</userinput></screen>

	<para>f&uuml;r 4.6B, oder mit</para>

	<screen>&prompt.root; <userinput>./R3SETUP -f CENTRAL.R3S</userinput></screen>
	<para>f&uuml;r 4.6C, unabh&auml;ngig davon, ob der Fehler mit
	<filename>CENTRAL.R3S</filename> oder mit
	<filename>DATABASE.R3S</filename> auftrat.</para>

	<note><para>Zu bestimmten Zeitpunkten nimmt <command>R3SETUP</command> an, dass
	  sowohl der Datenbank- als auch die <application>&sap;</application>-Prozesse vorhanden
	  sind und laufen (da dies Schritte sind, die es bereits
	  ausgef&uuml;hrt hat).  Sollten Fehler auftreten (z.B.
	  wenn sich die Datenbank nicht starten l&auml;sst),
	  m&uuml;ssen Sie sowohl die Datenbank als auch <application>&sap;</application> manuell
	  neu starten, nachdem Sie die Fehler behoben haben.  Erst danach
	  darf <command>R3SETUP</command> erneut gestartet werden.</para>

	  <para>Achten Sie auch darauf, den <application>&oracle;</application>-Listener erneut
	    zu starten (als Benutzer <username>ora<replaceable>sid</replaceable></username>
	    mittels <command>umask 0; lsnrctl start</command>), wenn
	    dieser beendet wurde (z.B. durch einen notwendigen
	    Neustart des Systems).</para>
	</note>
      </sect3>

      <sect3 id="indoraduringduringr3setup">
        <title>Fehler im Stadium OSUSERSIDADM_IND_ORA bei der Ausf&uuml;hrung von <command>R3SETUP</command></title>

        <para>Wenn sich <command>R3SETUP</command> in diesem Stadium beschwert, editieren
	  Sie die bei der Installation verwendete Version der
	  Vorlage (<filename>CENTRDB.R3S</filename> (4.6B) oder
	  entweder <filename>CENTRAL.R3S</filename> oder
	  <filename>DATABASE.R3S</filename> (4.6C)).  Finden Sie
	  <literal>[OSUSERSIDADM_IND_ORA]</literal> oder suchen Sie nach dem einzigen
	  <literal>STATUS=ERROR</literal>-Eintrag und &auml;ndern
	  Sie die folgenden Werte:</para>

        <programlisting>HOME=/home/<replaceable>sid</replaceable>adm (war voher leer)
STATUS=OK (hatte den Status ERROR)
        </programlisting>

        <para>Danach k&ouml;nnen Sie <command>R3SETUP</command> erneut aufrufen.</para>
      </sect3>

      <sect3 id="indoraduringr3setup">
        <title>Fehler im Stadium OSUSERDBSID_IND_ORA bei der
	  Ausf&uuml;hrung von <command>R3SETUP</command></title>

        <para>Wahrscheinlich beschwert sich <command>R3SETUP</command> auch in diesem Stadium.
	  Der hier auftretende Fehler &auml;hnelt dem im Abschnitt
	  OSUSERSIDADM_IND_ORA.  Editieren Sie einfach die bei
	  der Installation verwendete Version der Vorlage
	  (das hei&szlig;t <filename>CENTRDB.R3S</filename> (4.6B) oder
	  entweder <filename>CENTRAL.R3S</filename> oder
	  <filename>DATABASE.R3S</filename> (4.6C)).  Finden Sie
	  <literal>[OSUSERDBSID_IND_ORA]</literal> oder suchen Sie nach dem einzigen
	  <literal>STATUS=ERROR</literal>-Eintrag und &auml;ndern
	  Sie folgenden Eintrag:</para>

        <programlisting>STATUS=OK</programlisting>

        <para>Danach k&ouml;nnen Sie <command>R3SETUP</command> erneut aufrufen.</para>
      </sect3>

      <sect3 id="oraviewvrffilenotfound">
        <title>Fehler <errorname>oraview.vrf FILE NOT FOUND</errorname> bei der
	  &oracle;-Installation</title>

        <para>Sie haben die Option
	  <emphasis>&oracle; On-Line Text Viewer</emphasis> nicht deaktiviert,
	  bevor Sie die Installation gestartet haben.  Per Voreinstellung
	  ist diese Option aktiviert, obwohl sie unter Linux gar nicht
	  verf&uuml;gbar ist.  Deaktivieren Sie daher diese Option im
	  <application>&oracle;</application>-Installationsmen&uuml; und starten Sie die Installation
	  erneut.</para>
      </sect3>

      <sect3 id="textenvincalid">
        <title>Fehler <errorname>TEXTENV_INVALID</errorname> bei der Ausf&uuml;hrung von <command>R3SETUP</command>,
	  RFC oder beim Start von SAPGUI</title>

        <para>Tritt dieser Fehler auf, so fehlt die korrekte Lokalisierung.
	  &sap;-Hinweis 0171356 f&uuml;hrt die notwendigen RPMs auf,
	  die installiert sein m&uuml;ssen (zum Beispiel
	  <filename>saplocales-1.0-3</filename>,
	  <filename>saposcheck-1.0-1</filename> f&uuml;r
	  RedHat&nbsp;6.1).  Falls Sie alle damit verbundenen Fehler
	  ignoriert haben, und bei der Ausf&uuml;hrung von <command>R3SETUP</command>
	  den <literal>STATUS</literal> jeweils von <literal>ERROR</literal> auf <literal>OK</literal> (in <filename>CENTRDB.R3S</filename>)
	  gesetzt haben, um <command>R3SETUP</command> anschlie&szlig;end neu zu starten,
	  wurde das <application>&sap;</application>-System nicht ordnungsgem&auml;&szlig;
	  konfiguriert.  Das bedeutet, dass Sie nicht via
	  <application>SAPgui</application> am System anmelden k&ouml;nnen,
	  obwohl das System trotzdem gestartet werden kann.  Ein Versuch,
	  sich &uuml;ber die alte Linux-<application>SAPgui</application>
	  anzumelden, f&uuml;hrte zu folgenden Fehlermeldungen:</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>Dieses Verhalten kommt daher, weil <application>&sap.r3;</application> nun nicht
	  in der Lage ist, eine korrekte Lokalisierung zuzuweisen, und
	  sich daher nicht ordnungsgem&auml;&szlig; konfigurieren kann
	  (durch fehlende Eintr&auml;ge in einigen Datenbank-Tabellen).
	  Um sich in <application>&sap;</application> anmelden zu k&ouml;nnen, m&uuml;ssen Sie
	  folgende Eintr&auml;ge zur Datei <filename>DEFAULT.PFL</filename>
	  (lesen Sie dazu auch Hinweis 0043288) hinzuf&uuml;gen:</para>

	<programlisting>abap/set_etct_env_at_new_mode = 0
install/collate/active = 0
rscp/TCP0B = TCP0B</programlisting>

        <para>Starten Sie nun das <application>&sap;</application>-System neu.  Sie sind nun in der Lage,
	  sich anzumelden, obwohl einige l&auml;nderspezifische
	  Spracheinstellungen fehlerhaft sein k&ouml;nnten.  Nachdem Sie diese
	  L&auml;ndereinstellungen korrigiert (und die korrekten
	  Lokalisierungen installiert) haben, k&ouml;nnen
	  Sie diese Eintr&auml;ge wieder aus
	  <filename>DEFAULT.PFL</filename> l&ouml;schen und das
	  <application>&sap;</application>-System anschlie&szlig;end neu starten.</para>
      </sect3>

      <sect3 id="ora-00001">
	<title><errorcode>ORA-00001</errorcode></title>
	<para>Dieser Fehler trat nur bei einer Installation von
	  <application>&oracle; 8.1.7</application> unter FreeBSD&nbsp;4.5
	  auf.  Dies geschah deshalb, weil sich die <application>&oracle;</application>-Datenbank nicht
	  initialisieren konnte und daher abst&uuml;rzte.  Dadurch
	  verblieben Semaphore und Shared-Memory
	  im System.  Der n&auml;chste Startversuch f&uuml;hrte dann
	  zur Meldung <errorcode>ORA-00001</errorcode>.</para>

	<para>Suchen Sie diese Semaphore mittels <command>ipcs -a</command>
	  und entfernen Sie sie mit <command>ipcrm</command>.</para>
      </sect3>

      <sect3 id="ora-00445pmon">
	<title><errorcode>ORA-00445</errorcode> (Hintergrundprozess PMON wurde nicht gestartet)</title>
	<para>Dieser Fehler trat bei <application>&oracle; 8.1.7</application>
	  auf.  Die Meldung erscheint, wenn die Datenbank mit dem
	  normalen <command>startsap</command>-Skript (zum Beispiel
	  <command>startsap_majestix_00</command>) aber als Benutzer
	  <username>prdadm</username> gestartet wird.</para>

	<para>Dies kann vermieden werden, indem die Datenbank als Benutzer
	  <username>oraprd</username> &uuml;ber <command>svrmgrl</command>
	  gestartet wird:</para>

	<screen>&prompt.user; <userinput>svrmgrl</userinput>
SVRMGR&gt; <userinput>connect internal;</userinput>
SVRMGR&gt; <userinput>startup</userinput>;
SVRMGR&gt; <userinput>exit</userinput></screen>
      </sect3>

      <sect3 id="ora-12546">
        <title><errorcode>ORA-12546</errorcode> (den Listener mit den richtigen
	  Berechtigungen starten)</title>

        <para>Starten Sie den <application>&oracle;</application>-Listener als Benutzer
	  <username>oraids</username> mit folgendem Befehl:</para>

        <screen>&prompt.root; <userinput>umask 0; lsnrctl start</userinput></screen>

        <para>Ansonsten k&ouml;nnten Sie die Meldung <errorcode>ORA-12546</errorcode> erhalten,
	  da die Sockets nun nicht die richtigen Berechtigungen aufweisen.
	  Lesen Sie dazu auch den &sap;-Hinweis 0072984.</para>
      </sect3>

      <sect3 id="ora-27102">
	<title><errorcode>ORA-27102</errorcode> (kein freier Speicher mehr)</title>

	<para>Dieser Fehler trat auf, wenn versucht wurde, f&uuml;r
	  <literal>MAXDSIZ</literal> und <literal>DFLDSIZ</literal>
	  Werte &uuml;ber 1&nbsp;GB (1024x1024x1024) festzulegen.
	  Zus&auml;tzlich f&uuml;hrte dies zur Fehlermeldung
	  <errorname>Linux Error 12: Cannot allocate memory</errorname>.</para>
      </sect3>

      <sect3 id="dipgntabindind">
        <title>Fehler im Stadium [DIPGNTAB_IND_IND] bei der
	  Ausf&uuml;hrung von <command>R3SETUP</command></title>

        <para>F&uuml;r allgemeine Informationen lesen Sie bitte den
	  &sap;-Hinweis 0130581 # (R3SETUP - Abbruch im Stadium
	  <literal>DIPGNTAB</literal>).  Bei der IDES-spezifischen
	  Installation verwendete der Installationsprozess aus
	  irgendwelchen Gr&uuml;nden nicht den
	  korrekten &sap;-Systemnamen <quote>IDS</quote>, sondern den leeren
	  String <literal>""</literal>.  Dies f&uuml;hrte zu einigen kleineren Problemen
	  beim Zugriff auf bestimmte Verzeichnisse, da die Pfade durch
	  <replaceable>SID</replaceable> (in diesem Fall IDS) dynamisch
	  generiert werden.  Das hei&szlig;t anstatt auf</para>

        <programlisting>/usr/sap/IDS/SYS/...
/usr/sap/IDS/DVMGS00</programlisting>

        <para>zuzugreifen, wurden folgende Pfade verwendet:</para>

        <programlisting>/usr/sap//SYS/...
/usr/sap/D00</programlisting>

        <para>Um dennoch mit der Installation fortfahren zu k&ouml;nnen,
	  wurden ein Link sowie ein zus&auml;tzliches Verzeichnis
	  erzeugt:</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>Dieses Verhalten wird auch in den &sap;-Hinweisen 0029227
	  und 0008401 beschrieben.  Bei der Installtion von
	  <application>&sap; 4.6C</application> trat allerdings keines dieser
	  Probleme auf.</para>
      </sect3>

      <sect3 id="rfcrswboiniindind">
        <title>Fehler im Stadium [RFCRSWBOINI_IND_IND] bei der
	  Ausf&uuml;hrung von <command>R3SETUP</command></title>

	<para>Bei der Installation von <application>&sap; 4.6C</application>
	  trat dieser Fehler als Folge eines anderen, bereits vorher
	  aufgetretenen Fehlers auf.  Daher m&uuml;ssen Sie sich
	  die entsprechenden Protokolldateien durchsehen, und danach das
	  wirkliche (bereits vorher aufgetretene) Problem beheben.</para>

        <para>Wenn Sie nach dem Durchsehen der Protokolldateien feststellen,
	  dass dieser Fehler wirklich der eigentliche Fehler ist
	  (lesen Sie dazu wiederum die &sap;-Hinweise), k&ouml;nnen
	  Sie den <literal>STATUS</literal> des betreffenden Schritts von <literal>ERROR</literal> auf <literal>OK</literal>
	  setzen (und zwar in der Datei <filename>CENTRDB.R3S</filename>).
	  Anschlie&szlig;end starten Sie <command>R3SETUP</command> erneut.  Nach
	  der Installation m&uuml;ssen Sie den Report
	  <literal>RSWBOINS</literal> der Transaktion
	  SE38 ausf&uuml;hren.  Lesen Sie den &sap;-Hinweis 0162266,
	  um weitere Informationen zu den Stadien
	  <literal>RFCRSWBOINI</literal> und <literal>RFCRADDBDIF</literal>
	  zu erhalten.</para>
      </sect3>

      <sect3 id="rfcraddbdifindind">
        <title>Fehler im Stadium [RFCRADDBDIF_IND_IND] bei der
	  Ausf&uuml;hrung von <command>R3SETUP</command></title>
	<para>Hier gilt das Gleiche wie f&uuml;r den letzten Fehler.
	  Stellen Sie durch &Uuml;berpr&uuml;fen der Protokolldateien
	  sicher, dass dieser Fehler nicht durch ein fr&uuml;heres
	  Problem verursacht wird.</para>

        <para>Wenn Sie sicher sind, dass &sap;-Hinweis 0162266 auf
	  Ihr System zutrifft, setzen Sie den <literal>STATUS</literal> des betreffenden
	  Stadiums von <literal>ERROR</literal> auf <literal>OK</literal> (und zwar in der Datei
	  <filename>CENTRDB.R3S</filename>).  Anschlie&szlig;end starten
	  Sie <command>R3SETUP</command> erneut.  Nach der Installation m&uuml;ssen Sie den
	  Report <literal>RADDBDIF</literal> der Transaktion SE38
	  ausf&uuml;hren.</para>
      </sect3>

      <sect3 id="sigactionsig31">
        <title>sigaction sig31: File size limit exceeded</title>

	<para>Dieser Fehler trat beim Start des <application>&sap;</application>-Prozesses
	  <command>disp+work</command> auf.  Wird <application>&sap;</application> mit
	  <command>startsap</command>-Skript gestartet, werden Subprozesse gestartet,
	  deren Aufgabe es ist, alle anderen <application>&sap;</application>-Prozesse zu starten.
	  Als Folge davon erkennt <command>startsap</command> dabei auftretende
	  Fehler nicht.</para>

	<para>Um zu &uuml;berpr&uuml;fen, ob die <application>&sap;</application>-Prozesse korrekt
	  gestartet wurden, &uuml;berpr&uuml;fen Sie den Prozessstatus
	  mit <command>ps ax | grep <replaceable>SID</replaceable></command>.
	  Sie erhalten dadurch eine Liste aller <application>&oracle;</application>- und <application>&sap;</application>-Prozesse.
	  Wenn einige Prozesse fehlen, oder Sie sich nicht mit dem
	  <application>&sap;</application>-System verbinden k&ouml;nnen, &uuml;berpr&uuml;fen Sie
	  wiederum die entsprechenden Protokolldateien, die sich unter
	  <filename>/usr/sap/<replaceable>SID</replaceable>/DVEBMGS<replaceable>nr</replaceable>/work/</filename>
	  befinden.  Die zu durchsuchenden Dateien hei&szlig;en
	  <filename>dev_ms</filename> und <filename>dev_disp</filename>.</para>

	<para>Wenn <application>&oracle;</application> und <application>&sap;</application> mehr Speicher anfordern als in der
	  Kernelkonfigurationsdatei festgelegt wurde, wird das
	  Signal&nbsp;31 ausgeliefert.  Der Fehler
	  kann behoben werden, indem im Kernel
	  ein gr&ouml;&szlig;erer Wert verwendet wird.</para>

        <programlisting># larger value for 46C production systems:
options SHMMAXPGS=393216
# smaller value sufficient for 46B:
#options SHMMAXPGS=262144</programlisting>

      </sect3>

      <sect3 id="saposcolfails">
        <title>Der Start von <command>saposcol</command> schlug fehl</title>
	<para>Das Programm <command>saposcol</command> (Version 4.6D) kann
	  einige Probleme verursachen.  Das
	  <application>&sap;</application>-System verwendet
	  <command>saposcol</command>,
	  um Daten &uuml;ber die Systemleistung zu sammeln.
	  F&uuml;r die Benutzung des <application>&sap;</application>-Systems hingegen ist es es
	  nicht erforderlich.  Daher handelt es sich hier auch
	  nur um ein kleineres Problem.  &Auml;ltere Versionen
	  von saposcol (z.B. 4.6B) funktionieren, sammeln
	  allerdings nicht alle Daten (viele Aufrufe geben,
	  zum Beispiel die CPU-Nutzung, einfach
	  0 (Null) zur&uuml;ck.</para>
      </sect3>
    </sect2>
  </sect1>

  <sect1 id="linuxemu-advanced">
    <title>Weiterf&uuml;hrende Themen</title>

    <para>Wenn Sie sich fragen, wie die Linux-Bin&auml;rkompatibilit&auml;t
      unter FreeBSD realisiert wurde, sollten Sie diesen Abschnitt lesen.
      Der Gro&szlig;teil der folgenden Informationen stammt aus einer
      E-Mail, die von Terry Lambert (<email>tlambert@primenet.com</email>)
      an die FreeBSD-Chat-Mailingliste
      (<email>freebsd-chat@FreeBSD.org</email>) geschrieben wurde
      (Message ID: <literal>&lt;199906020108.SAA07001@usr09.primenet.com&gt;</literal>).</para>

    <sect2>
      <title>Wie funktioniert es?</title>
      <indexterm><primary>execution class loader</primary></indexterm>

      <para>FreeBSD verf&uuml;gt &uuml;ber eine <quote>execution class
	loader</quote> genannte Abstraktion.  Dabei handelt es sich um einen
	Eingriff in den &man.execve.2; Systemaufruf.</para>

      <para>FreeBSD verf&uuml;gt &uuml;ber eine Liste von Ladern, anstelle
	eines einzigen, auf <literal>#!</literal>
	zur&uuml;ckgreifenden Laders, um Shell-Interpreter oder Shell-Skripte
	auszuf&uuml;hren.</para>

      <para>Historisch gesehen untersuchte der einzige, auf
	UNIX-Plattformen vorhandene Lader die "magische Zahl"
	(in der Regel die ersten 4 oder 8&nbsp;Bytes der Datei), um
	festzustellen, ob der Bin&auml;rtyp dem System bekannt war.
	War dies der Fall, wurde der Bin&auml;rlader aufgerufen.</para>

      <para>Wenn es sich nicht um den zum System geh&ouml;rigen Bin&auml;rtyp
        handelte, gab &man.execve.2; einen Fehler zur&uuml;ck,
	und die Shell versuchte stattdessen, die Datei als Shell-Befehl
	auszuf&uuml;hren.</para>

      <para>Dabei wurde als Standardeinstellung <quote>was auch immer die
        aktuelle Shell ist</quote> festgelegt.</para>

      <para>Sp&auml;ter wurde ein Hack in &man.sh.1; eingef&uuml;gt,
	der die zwei ersten Zeichen untersuchte.  Wenn diese
	<literal>:\n</literal> entsprachen,
	wurde stattdessen die &man.csh.1;-Shell aufgerufen
	(wir glauben, dass dies zuerst von SCO umgesetzt wurde).</para>

      <para>FreeBSD versucht heute eine Liste von Ladern, unter denen
	sich ein allgemeiner Lader f&uuml;r Interpreter befindet.  Der
	auszuf&uuml;hrende Interpreter wird im ersten, durch
	Leerzeichen getrennten Feld, der <literal>#!</literal>-Zeile
	angegeben.  L&auml;&szlig;t sich der Interpreter nicht ermitteln,
	wird auf <filename>/bin/sh</filename> zur&uuml;ckgegriffen.</para>

      <indexterm><primary>ELF</primary></indexterm>

      <para>F&uuml;r die Linux ABI-Unterst&uuml;tzung erkennt FreeBSD
        die magische Zahl als ELF-Bin&auml;rdatei (Zu diesem Zeitpunkt wird
	nicht zwischen FreeBSD, &solaris;, Linux oder anderen Systemen
	unterschieden, die &uuml;ber ELF-Bin&auml;rdateien
	verf&uuml;gen.).</para>

      <indexterm><primary>Solaris</primary></indexterm>

      <para>Der ELF-Lader sucht nach einer speziellen
	<emphasis>Kennzeichnung</emphasis>, die aus einem Kommentarabschnitt
	in der ELF-Datei besteht, und die in SVR4/&solaris; ELF
	Bin&auml;rdateien nicht vorhanden ist.</para>

      <para>Damit Linux-Bin&auml;rdateien (unter FreeBSD) funktionieren,
	m&uuml;ssen sie als <literal> Linux</literal>
	<emphasis>gekennzeichnet</emphasis> werden, und zwar durch
	&man.brandelf.1;:</para>

      <screen>&prompt.root; <userinput>brandelf -t Linux file</userinput></screen>

      <para>Nachdem dies geschehen ist, erkennt der ELF-Lader die
	<literal>Linux</literal>-Kennzeichnung der Datei.</para>
      <indexterm>
        <primary>ELF</primary>
	<secondary><command>brandelf</command></secondary>
      </indexterm>

      <para>Wenn der ELF-Lader die <literal>Linux</literal>-Kennzeichnung
	sieht, wird ein Zeiger in der <literal>proc</literal>-Struktur
	ersetzt.  Alle Systemaufrufe werden durch diesen Zeiger indiziert
	(in einem traditionellen &unix; System w&auml;re das ein
	<literal>sysent[]</literal>-Strukturfeld, das die Systemaufrufe
	enth&auml;lt).  Der Prozess wird weiterhin speziell gekennzeichnet,
	so dass der Trap-vector im Signal-trampoline-code eine spezielle
	Behandlung erf&auml;hrt und das Linux-Kernelmodul verschiedene
	kleinere Korrekturen vornehmen kann.</para>

      <para>Der Linux-Systemaufrufvektor enth&auml;lt neben anderen
	Dingen eine Liste der <literal>sysent[]</literal>-Eintr&auml;ge,
	deren Adressen sich im Kernelmodul befinden.</para>

      <para>Wenn ein Linux-Programm einen Systemaufruf ausf&uuml;hrt,
        dereferenziert die Trap-Behandlungsroutine den Zeiger auf die
	Eintrittspunkte f&uuml;r die Systemaufrufe und erh&auml;lt damit die
	Linux-Eintrittspunkte und nicht die FreeBSD-Eintrittspunkte.</para>

      <para>Zus&auml;tzlich <emphasis>ver&auml;ndert</emphasis> der
	Linuxmodus die Systempfade dynamisch; genauso, wie dies die
	Option <option>union</option> beim Einbinden von Dateisystemen
	macht (Achtung: <emphasis>nicht</emphasis> das Dateisystem unionfs!).
	Zuerst wird die Datei im Verzeichnis <filename>/compat/linux/<replaceable>Originalpfad</replaceable></filename>
	gesucht, <emphasis>danach</emphasis>, wenn sie dort nicht gefunden
	wurde, wird sie im FreeBSD-Verzeichnis
	<filename>/<replaceable>Originalpfad</replaceable></filename>
	gesucht.  Dadurch wird sichergestellt, dass
	Bin&auml;rdateien, die zur Ausf&uuml;hrung andere
	Bin&auml;rdateien ben&ouml;tigen, ausgef&uuml;hrt
	werden k&ouml;nnen (so dass alle Linux-Werkzeuge unter der
	ABI laufen).  Dies bedeutet auch,
	dass Linux-Bin&auml;rdateien FreeBSD-Bin&auml;rdateien
	laden und ausf&uuml;hren k&ouml;nnen, wenn keine passenden
	Linux-Bin&auml;rdateien vorhanden sind.  Ein in
	<filename>/compat/linux</filename> plaziertes &man.uname.1; kann
	damit Linux-Programmen vorgaukeln, dass sie auf einem Linux-System
	laufen.</para>

      <para>Im Endeffekt gibt es einen Linux-Kernel innerhalb des
        FreeBSD-Kernels.  Die Sprungtabellen f&uuml;r Linux-
	beziehungsweise FreeBSD-Systemaufrufe verweisen allerdings auf
	dieselben Funktionen, die Kerneldienste wie Dateisystemoperationen,
	Operationen f&uuml;r den virtuellen Speicher,
	Signal&uuml;bermittlung und System&nbsp;V&nbsp;IPC bereitstellen,
	Der einzige Unterschied ist, dass Bin&auml;rdateien unter FreeBSD
	FreeBSD-<emphasis>glue</emphasis>-Funktionen verwenden.
	Linux-Bin&auml;rdateien hingegen verwenden die
	Linux-<emphasis>glue</emphasis>-Funktionen. Die meisten
	&auml;lteren Betriebssysteme hatten ihre eigenen
	<emphasis>glue</emphasis>-Funktionen: Funktionsadressen
	in einem globalen, statischen <literal>sysent[]</literal>
	Strukturfeld an Stelle von Funktionsadressen,  die durch
	einen dynamisch initialisierten Zeiger aus der
	<literal>proc</literal> Struktur, die den Aufruf gemacht hatte,
	dereferenziert wurden.</para>

      <para>Welche ist die echte FreeBSD-ABI?  Das spielt keine Rolle.
	Grunds&auml;tzlich ist der einzige Unterschied (zurzeit
	ist das so; dies k&ouml;nnte sich in zuk&uuml;nftigen
	Versionen leicht &auml;ndern und wird sich wahrscheinlich
	auch &auml;ndern), dass die
	FreeBSD-<emphasis>glue</emphasis>-Funktionen statisch in
	den Kernel gelinkt sind, und dass die
	Linux-<emphasis>glue</emphasis>-Funktionen statisch gelinkt
	oder &uuml;ber ein Modul eingebunden werden k&ouml;nnen.</para>

      <para>Ja, aber ist das wirkliche eine Emulation? Nein.  Es ist eine
	Implementierung eines ABIs, keine Emulation.  Es ist kein Emulator
	(oder Simulator, um der n&auml;chsten Frage zuvorzukommen)
	beteiligt.</para>

      <para>Warum wird es manchmal <quote>Linux-Emulation</quote> genannt?
	Um es schwerer zu machen, FreeBSD zu verkaufen.  Wirklich, das kommt
	daher, weil dies zu einer Zeit implemtiert wurde,
	in der es kein anderes Wort
	(als Emulation) gab, das beschrieb, was vor sich ging.
	Wenn der Kernel nicht entsprechend konfiguriert wurde oder das
	Modul geladen wurde, war es falsch zu behaupten, FreeBSD w&uuml;rde
	Linux-Bin&auml;rprogramme ausf&uuml;hren.  Man ben&ouml;tigte
	ein Wort, das beschrieb, was da geladen
	wurde &ndash; daher <quote>Der Linux-Emulator</quote>.</para>
    </sect2>
  </sect1>
</chapter>

<!--
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->
