<?xml version="1.0" encoding="ISO-8859-7" standalone="no"?>
<!--

  Ôï Åã÷åéñßäéï ôïõ FreeBSD: Óõìâáôüôçôá ìå ÅêôåëÝóéìá ôïõ Linux

  The FreeBSD Greek Documentation Project

  $FreeBSD$

  %SOURCE%	en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml
  %SRCID%	38826

-->

<chapter id="linuxemu">
  <chapterinfo>
    <authorgroup>
      <author>
	<firstname>Jim</firstname>
	<surname>Mock</surname>
	<contrib>ÁíáäïìÞèçêå êáé ìÝñç ôïõ áíáíåþèçêáí áðü ôïí </contrib>
      </author>
      <!-- 22 Mar 2000 -->
    </authorgroup>
    <authorgroup>
      <author>
	<firstname>Brian N.</firstname>
	<surname>Handy</surname>
	<contrib>Áñ÷éêÞ óõíåéóöïñÜ áðü ôïí </contrib>
      </author>
      <author>
	<firstname>Rich</firstname>
	<surname>Murphey</surname>
      </author>
    </authorgroup>
  </chapterinfo>

  <title>Óõìâáôüôçôá ìå ÅêôåëÝóéìá ôïõ Linux</title>

  <sect1 id="linuxemu-synopsis">
    <title>Óýíïøç</title>
    <indexterm>
      <primary>Óõìâáôüôçôá ìå åêôåëÝóéìá (binary) Linux</primary>
    </indexterm>
    <indexterm>
      <primary>binary óõìâáôüôçôá</primary>
      <secondary>Linux</secondary>
    </indexterm>
    <indexterm>
      <primary>óõìâáôüôçôá åêôåëÝóéìùí Linux</primary>
    </indexterm>
    <indexterm>
      <primary>óõìâáôüôçôá åêôåëÝóéìùí</primary>
      <secondary>Linux</secondary>
    </indexterm>

    <para>Ôï &os; ðáñÝ÷åé binary óõìâáôüôçôá (åêôåëÝóéìùí) ìå áñêåôÜ Üëëá
      ëåéôïõñãéêÜ ôýðïõ &unix;, óõìðåñéëáìâáíïìÝíïõ êáé ôïõ Linux.  Óå áõôü
      ôï óçìåßï, ìðïñåß íá áíáñùôéÝóôå ãéáôß áêñéâþò ÷ñåéÜæåôáé ôï &os; íá
      ìðïñåß íá ôñÝîåé åêôåëÝóéìá Linux; H áðÜíôçóç óå áõôÞ ôçí åñþôçóç åßíáé
      áñêåôÜ áðëÞ.  ÐïëëÝò åôáéñßåò êáé ðñïãñáììáôéóôÝò áíáðôýóóïõí åöáñìïãÝò
      ìüíï ãéá Linux, ìéá êáé åßíáé ðïëý <quote>ôçò ìüäáò</quote> óôï
      êüóìï ôùí õðïëïãéóôþí.  Áõôü áíáãêÜæåé åìÜò ôïõò õðüëïéðïõò, ðïõ
      ÷ñçóéìïðïéïýìå ôï &os;, íá ðéÝæïõìå ôéò ßäéåò áõôÝò åôáéñßåò êáé
      ðñïãñáììáôéóôÝò íá äçìéïõñãÞóïõí êáíïíéêÝò åêäüóåéò ôùí åöáñìïãþí
      ôïõò ãéá &os;.  Ôï ðñüâëçìá åßíáé, üôé ïé ðåñéóóüôåñåò áðü áõôÝò ôéò
      åôáéñßåò äåí áíôéëáìâÜíïíôáé ðñáãìáôéêÜ ðüóïé ðåñéóóüôåñïé Üíèñùðïé èá
      ÷ñçóéìïðïéïýóáí ôï ðñïúüí ôïõò áí åß÷áí åêäüóåéò êáé ãéá &os;, êáé ïé
      ðåñéóóüôåñåò óõíå÷ßæïõí íá áíáðôýóóïõí ìüíï ãéá Linux. ¶ñá ôé ìðïñåß íá
      êÜíåé Ýíáò ÷ñÞóôçò ôïõ &os;; Åäþ Ýñ÷åôáé íá âïçèÞóåé ç binary
      óõìâáôüôçôá ôïõ &os; ìå ôï Linux.</para>

    <para>Åí óõíôïìßá, ç óõìâáôüôçôá åðéôñÝðåé óôïõò ÷ñÞóôåò ôïõ &os; íá
      åêôåëÝóïõí ðåñßðïõ ôï 90% üëùí ôùí Linux åöáñìïãþí ÷ùñßò ìåôáôñïðÝò.
      Áõôü ðåñéëáìâÜíåé åöáñìïãÝò üðùò
      ôï <application>&staroffice;</application>, ôçí Linux Ýêäïóç
      ôïõ <application>&netscape;</application>,
      <application>&adobe;&nbsp;&acrobat;</application>,
      <application>&realplayer;</application>,
      <application>&oracle;</application>,
      <application>&wordperfect;</application>,
      <application>Doom</application>,
      <application>Quake</application>, êáé ðåñéóóüôåñá.  ¸÷åé åðßóçò
      áíáöåñèåß üôé óå êÜðïéåò ðåñéðôþóåéò, ôá åêôåëÝóéìá ôïõ Linux Ý÷ïõí
      êáëýôåñç áðüäïóç óôï &os; áðü üôé óôï Linux.</para>

      <para>ÕðÜñ÷ïõí ùóôüóï êÜðïéá óõãêåêñéìÝíá ãéá ôï Linux óôïé÷åßá ôïõ
	ëåéôïõñãéêïý ðïõ äåí õðïóôçñßæïíôáé óôï &os;.  Ôá åêôåëÝóéìá ôïõ Linux
	äåí èá äïõëÝøïõí óôï &os; áí ÷ñçóéìïðïéïýí ðïëëÝò åîåéäéêåõìÝíåò
	êëÞóåéò &i386;, üðùò ãéá ðáñÜäåéãìá ôçí åíåñãïðïßçóç ôçò åéêïíéêÞò
	êáôÜóôáóçò 8086.</para>

    <para>Áöïý äéáâÜóåôå áõôü ôï êåöÜëáéï, èá îÝñåôå:</para>

    <itemizedlist>
      <listitem>
	<para>Ðùò íá åíåñãïðïéÞóåôå ôçí óõìâáôüôçôá åêôåëÝóéìùí ìå ôï Linux
	  óôï óýóôçìá óáò.</para>
      </listitem>

      <listitem>
	<para>Ðùò íá åãêáôáóôÞóåôå ðñüóèåôåò êïéíü÷ñçóôåò âéâëéïèÞêåò ôïõ
	  Linux.</para>

	</listitem>

      <listitem>
	<para>Ðùò íá åãêáôáóôÞóåôå åöáñìïãÝò ôïõ Linux óôï &os;.</para>
      </listitem>

      <listitem>
	<para>Ôéò ëåðôïìÝñåéåò ôçò õëïðïßçóçò ôçò óõìâáôüôçôáò ìå ôï Linux óôï
	  &os;.</para>
      </listitem>
    </itemizedlist>

    <para>Ðñéí äéáâÜóåôå áõôü ôï êåöÜëáéï, èá ðñÝðåé:</para>

    <itemizedlist>
      <listitem>
	<para>Íá ãíùñßæåôå ðùò èá åãêáôáóôÞóåôå ðñüóèåôï ëïãéóìéêü
         ôñßôïõ êáôáóêåõáóôÞ (<xref linkend="ports"/>).</para>
      </listitem>
    </itemizedlist>

  </sect1>

  <sect1 id="linuxemu-lbc-install">
    <title>ÅãêáôÜóôáóç</title>

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

    <para>Ç óõìâáôüôçôá ìå åêôåëÝóéìá ôïõ Linux äåí åßíáé åíåñãÞ åî' áñ÷Þò. Ï
      åõêïëüôåñïò ôñüðïò ãéá íá åíåñãïðïéÞóåôå áõôÞ ôç ëåéôïõñãßá åßíáé íá
      öïñôþóåôå ôï KLD (Üñèñùìá) <literal>linux</literal> (<quote>Kernel
      LoaDable object</quote>).  Ìðïñåßôå íá öïñôþóåôå áõôü ôï Üñèñùìá óôïí
      ðõñÞíá äßíïíôáò ôç ðáñáêÜôù åíôïëÞ ùò <username>root</username>:</para>

    <screen>&prompt.root; <userinput>kldload linux</userinput></screen>

    <para>Áí èÝëåôå íá Ý÷åôå ðÜíôá åíåñãïðïéçìÝíç ôç óõìâáôüôçôá ìå Linux,
      ôüôå èá ÷ñåéáóôåß íá ðñïóèÝóåôå ôç ðáñáêÜôù ãñáììÞ óôï
      <filename>/etc/rc.conf</filename>:</para>

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

    <para>Ç åíôïëÞ &man.kldstat.8; ìðïñåß íá ÷ñçóéìïðïéçèåß ãéá íá åëåã÷èåß
      áí ôï KLD åßíáé öïñôùìÝíï:</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>kernel options</primary>
      <secondary>COMPAT_LINUX</secondary>
    </indexterm>

    <para>Áí ãéá êÜðïéï ëüãï äåí èÝëåôå Þ äå ìðïñåßôå íá öïñôþóåôå ôï KLD,
      ôüôå ìðïñåßôå íá óõíäÝóåôå óôáôéêÜ ôçí õðïóôÞñéîç åêôåëÝóéìùí ôïõ Linux
      óôïí ðõñÞíá ìå ôï íá ðñïóèÝóåôå ôçí åðéëïãÞ <literal>options
      COMPAT_LINUX</literal> óôï áñ÷åßùí ñõèìßóåùí ôïõ ðõñÞíá. Óôç óõíÝ÷åéá
      ìðïñåßôå íá åãêáôáóôÞóåôå ôïí íÝï ðõñÞíá üðùò ðåñéãñÜöåôáé óôï
      <xref linkend="kernelconfig"/>.</para>

    <sect2>
      <title>ÅãêáôÜóôáóç ôùí Linux Runtime Libraries</title>
      <indexterm>
	<primary>Linux</primary>
	<secondary>åãêáôÜóôáóç âéâëéïèçêþí Linux</secondary>
      </indexterm>

      <para>Áõôü ìðïñåß íá ãßíåé ìå äýï ôñüðïõò. Åßôå ìå ôç ÷ñÞóç ôïõ
	<link linkend="linuxemu-libs-port">linux_base-fc4</link> port, Þ
	 ìå <link linkend="linuxemu-libs-manually">÷åéñïêßíçôç</link>
         åãêáôÜóôáóç ôïõò.</para>

      <sect3 id="linuxemu-libs-port">
	<title>ÅãêáôÜóôáóç ìÝóù ôïõ linux_base Port</title>
	<indexterm><primary>Ports Collection</primary></indexterm>

	<para>Áõôüò åßíáé êáôÜ ãåíéêÞ ïìïëïãßá ï åõêïëüôåñïò ôñüðïò ãéá ôçí
	  åãêáôÜóôáóç ôùí runtime libraries.  Åßíáé ç ßäéá äéáäéêáóßá
	  åãêáôÜóôáóçò ðïõ áêïëïõèåßôáé êáé ãéá ïðïéïäÞðïôå Üëëï port áðü
	  ôç <link linkend="ports">ÓõëëïãÞ ôùí Ports</link>.  ÁðëÜ êÜíôå ôï
	  ðáñáêÜôù:</para>

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

	<note>
	  <para>Áí ÷ñçóéìïðïéåßôå êÜðïéá Ýêäïóç ôïõ &os; ðñéí ôçí 8.0, èá
	    ðñÝðåé íá åãêáôáóôÞóåôå ôï port <filename
	      role="package">emulators/linux_base-fc4</filename>
	    áíôß ãéá ôï <filename
	      role="package">emulators/linux_base-f10</filename>.</para>
	</note>

	<para>Èá ðñÝðåé ôþñá íá Ý÷åôå êáíïíéêÞ óõìâáôüôçôá ìå åêôåëÝóéìá ôïõ
	  Linux.  ÌåñéêÜ ðñïãñÜììáôá ðáñáðïíéïýíôáé üôé ïé âéâëéïèÞêåò
	  óõóôÞìáôïò (system libraries) äåí åßíáé óôç ôåëåõôáßá ôïõò Ýêäïóç.
	  ÃåíéêÜ üìùò, áõôü äåí áðïôåëåß êáíÝíá ðñüâëçìá.</para>

	<note><para>Ìðïñïýí íá õðÜñ÷ïõí ðïëëáðëÝò åêäüóåéò
	  ôïõ <filename role="package">emulators/linux_base</filename>, ðïõ íá
	  áíôéóôïé÷ïýí óôéò äéáöïñåôéêÝò åêäüóåéò ôùí äéáíïìþí Linux. Èá
	  ðñÝðåé íá êÜíåôå åãêáôÜóôáóç ôùí ports ðïõ ðñïáðáéôïýíôáé áðü ôéò
	  åöáñìïãÝò Linux ôéò ïðïßåò èÝëåôå íá åãêáôáóôÞóåôå.</para></note>

      </sect3>

      <sect3 id="linuxemu-libs-manually">
	<title>×åéñïêßíçôç åãêáôÜóôáóç ôùí Libraries</title>

	<para>Áí äåí Ý÷åôå åãêáôáóôÞóåé ôçí óõëëïãÞ ôùí <quote>ports</quote>,
	  ìðïñåßôå íá åãêáôáóôÞóåôå ôéò âéâëéïèÞêåò ÷åéñïêßíçôá. Èá
          ÷ñåéáóôåßôå ôá Linux shared libraries ôá ïðïßá áðáéôåß ôï ðñüãñáììá.
	  Åðßóçò, èá ÷ñåéáóôåß íá äçìéïõñãÞóåôå êáé Ýíáí êáôÜëïãï
	  <quote>shadow root</quote>, <filename>/compat/linux</filename>, ãéá
	  ôéò âéâëéïèÞêåò Linux ðïõ èá õðÜñ÷ïõí óôï &os;.  ÏðïéáäÞðïôå êïéíÝò
	  âéâëéïèÞêåò (shared libraries) ïé ïðïßåò ÷ñçóéìïðïéïýíôáé áðü
	  åöáñìïãÝò Linux êáé åêôåëïýíôáé óôï &os; èá êïéôÜîïõí ðñþôá óå
          áõôüí ôïí êáôÜëïãï. ÅðïìÝíùò, áí ìéá åöáñìïãÞ Linux öïñôþóåé ãéá
          ðáñÜäåéãìá ôï <filename>/lib/libc.so</filename>, ôï &os; èá
          ðñïóðáèÞóåé íá öïñôþóåé ðñþôá ôï
          <filename>/compat/linux/lib/libc.so</filename>,
	  êáé áí áõôü äåí õðÜñ÷åé, ôüôå èá ðñïóðáèÞóåé íá öïñôþóåé
	  ôï <filename>/lib/libc.so</filename>. Ôá shared libraries èá ðñÝðåé
	  íá åãêáôáóôáèïýí óôï shadow
	  tree <filename>/compat/linux/lib</filename> áíôß ãéá ôéò ôïðïèåóßåò
          ðïõ áíáöÝñåé ôï <command>ld.so</command> óôï Linux.</para>

	<para>ÃåíéêÜ, ôïõëÜ÷éóôïí óôéò ðñþôåò óáò åãêáôáóôÜóåéò åöáñìïãþí
          Linux, èá ÷ñåéáóôåß íá øÜîåôå ãéá ôéò êïéíÝò âéâëéïèÞêåò áðü ôá
	  áíôßóôïé÷á åêôåëÝóéìá. ÌåôÜ áðü êÜðïéï äéÜóôçìá èá Ý÷åôå Ýíá
	  éêáíïðïéçôéêü áñéèìü Linux shared libraries óôï óýóôçìÜ óáò êáé
	  ðëÝïí äå èá ÷ñåéÜæåôáé åðéðëÝïí åñãáóßá ðÝñá áðü ôçí åãêáôÜóôáóç ôçò
	  åöáñìïãÞò.</para>
      </sect3>

      <sect3>
	<title>ÅãêáôÜóôáóç Ðñüóèåôùí Shared Libraries</title>
	<indexterm><primary>shared libraries</primary></indexterm>

	<para>Êáé ôé ãßíåôáé óôç ðåñßðôùóç ðïõ Ý÷åôå åãêáôáóôÞóåé
	  ôï <filename>linux_base</filename> port êáé ïé åöáñìïãÝò óáò áêüìç
	  ðáñáðïíéïýíôáé ãéá shared libraries ðïõ ëåßðïõí; Ðþò ìðïñåßôå íá
	  îÝñåôå ðïéá shared libraries ÷ñåéÜæåôáé êÜðïéá åöáñìïãÞ, êáé ðïõ
	  ìðïñåßôå íá ôá âñåßôå;  ÂáóéêÜ, õðÜñ÷ïõí 2 åðéëïãÝò (ãéá íá
	  áêïëïõèÞóåôå ôéò ðáñáêÜôù ïäçãßåò èá ðñÝðåé íá åßóôå
	  <username>root</username> óôï óýóôçìÜ óáò).</para>

	<para>Áí Ý÷åôå ðñüóâáóç óå êÜðïéï ìç÷Üíçìá Linux, ñßîôå ìéá ìáôéÜ óôá
	  shared libraries ðïõ ÷ñåéÜæåôáé ìéá åöáñìïãÞ, êáé áíôéãñÜøôå ôá óôï
	  &os;.  Äåßôå ôï ðáñáêÜôù ðáñÜäåéãìá:</para>

	<informalexample>
	  <para>Áò õðïèÝóïõìå üôé êáôåâÜóáôå ìÝóù FTP ôï åêôåëÝóéìï ôïõ
	    <application>Doom</application> ãéá ôï Linux, êáé ôï âÜëáôå
            óôï Linux óýóôçìá óôï ïðïßï Ý÷åôå ðñüóâáóç.  Ìðïñåßôå óôç
	    óõíÝ÷åéá íá åëÝãîåôå ðïéá shared libraries ÷ñåéÜæåôáé ç åöáñìïãÞ
	    ìå ôçí åíôïëÞ <command>ldd linuxdoom</command>, üðùò:</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>symbolic links</primary></indexterm>
	  <para>Èá ÷ñåéáóôåß íá ðÜñåôå üëá ôá áñ÷åßá áðü ôç ôåëåõôáßá óôÞëç,
	    êáé íá ôá áíôéãñÜøåôå óôïí
	    êáôÜëïãï <filename>/compat/linux</filename>, êáé íá äçìéïõñãÞóåôå
            ðñïò áõôÜ ôïõò áíôßóôïé÷ïõò óõìâïëéêïýò äåóìïýò (symbolic links)
            ìå ôá ïíüìáôá ôçò ðñþôçò óôÞëçò. Áõôü óçìáßíåé üôé ðñáêôéêÜ,
            èá Ý÷åôå áõôÜ ôá áñ÷åßá óôï óýóôçìá óáò:</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>Óçìåéþóôå üôé áí Ý÷åôå Þäç êÜðïéï Linux shared library
		ðïõ ï áñéèìüò Ýêäïóçò åßíáé ï ßäéïò ìå áõôüí ôçò ðñþôçò óôÞëçò
		ôïõ <command>ldd</command>, äå èá ÷ñåéáóôåß íá áíôéãñÜøåôå ôï
		áñ÷åßï üðùò áõôü ïíïìÜæåôáé óôç ôåëåõôáßá óôÞëç, ôá õðÜñ÷ïíôá
		áñ÷åßá èá ðñÝðåé íá êÜíïõí ôç äïõëåéÜ ôïõò.  Óáò óõìâïõëåýïõìå
		üìùò íá áíôéãñÜøåôå ôï shared library áí åßíáé êÜðïéá íåüôåñç
		Ýêäïóç.  Ìðïñåßôå íá äéáãñÜøåôå ôá ðáëéÜ áñ÷åßá, áñêåß üìùò íá
		áíáíåþóåôå ôïõò óõìâïëéêïýò äåóìïýò þóôå íá ïäçãïýí óôá íÝá
		áñ÷åßá.  ÅðïìÝíùò, áí Ý÷åôå ôéò ðáñáêÜôù âéâëéïèÞêåò óôï
		óýóôçìÜ óáò:</para>

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

	      <para>êáé âñåßôå ìéá åöáñìïãÞ ç ïðïßá æçôÜåé ìéá íåüôåñç Ýêäïóç
		ìÝóù ôïõ <command>ldd</command>:
	      </para>

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

	      <para>Áí ç äéáöïñÜ ôçò Ýêäïóçò óôï ôåëåõôáßá øçößï åßíáé ìüíï
		ìßáò Þ äýï åêäüóåùí, ôüôå ìçí óáò áðáó÷ïëåß ç áíôéãñáöÞ ôïõ
		<filename>/lib/libc.so.4.6.29</filename>, ãéáôß ôï ðñüãñáììá
		èá ðñÝðåé íá ôñÝ÷åé êáíïíéêÜ êáé ìå ôç ëßãï ðáëáéüôåñç Ýêäïóç.
		Ðáñ' üëá áõôÜ, áí èÝëåôå, ìðïñåßôå íá áíôéêáôáóôÞóåôå ôï
		<filename>libc.so</filename> êáé Ýôóé èá Ý÷åôå ôï ðáñáêÜôù:
	      </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>Ï ìç÷áíéóìüò ôùí óõìâïëéêþí óõíäÝóìùí ÷ñåéÜæåôáé
		<emphasis>ìüíï</emphasis> ãéá ôéò åöáñìïãÝò ôïõ Linux. Ï
		runtime linker ôïõ &os; êïéôÜåé ìüíïò ôïõ ãéá ôéò ðéï
		ðñüóöáôåò åêäüóåéò ôùí âéâëéïèçêþí êáé Ýôóé äå ÷ñåéÜæåôáé íá
		óáò áðáó÷ïëåß.
	      </para>
	    </note>
	  </blockquote>
	</informalexample>
      </sect3>
    </sect2>

    <sect2>
      <title>ÅãêáôÜóôáóç ôùí Linux ELF Binaries</title>
      <indexterm>
	<primary>Linux</primary>
	<secondary>ELF binaries</secondary>
      </indexterm>

      <para>Ôá ELF binaries ÷ñåéÜæïíôáé ìåñéêÝò öïñÝò Ýíá áêüìá âÞìá, ôï
	<quote>branding</quote>. Áí ðñïóðáèÞóåôå íá ôñÝîåôå Ýíá
	åêôåëÝóéìï ELF ÷ùñßò branding, ôüôå èá óáò åìöáíéóôåß ôï ðáñáêÜôù
	óöÜëìá:</para>

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

      <para>Ãéá íá âïçèÞóåôå ôïí ðõñÞíá ôïõ &os; íá îå÷ùñßóåé Ýíá ELF ôïõ
        &os; áðü Ýíá ôïõ Linux, ÷ñçóéìïðïéÞóôå ôçí åíôïëÞ &man.brandelf.1;.
      </para>

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

      <indexterm><primary>GNU toolchain</primary></indexterm>
      <para>To GNU toolchain, ïìÜäá ðñüãñáììá GNU, ôïðïèåôåß ðëÝïí áõôüìáôá ôá
	êáôÜëëçëá ÷áñáêôçñéóôéêÜ óôá åêôåëÝóéìá ELF, åðïìÝíùò ôï ðáñáðÜíù âÞìá
	èá ÷ñåéÜæåôáé üëï êáé ëéãüôåñï óôï ìÝëëïí.
      </para>
    </sect2>

    <sect2>
      <title>ÅãêáôÜóôáóç ìéáò Ôõ÷áßáò Linux RPM ÅöáñìïãÞò</title>

      <para>Ôï &os; äéáèÝôåé ôçí äéêÞ ôïõ âÜóç äåäïìÝíùí ãéá ôá ðáêÝôá,
	ç ïðïßá ÷ñçóéìïðïéåßôáé ãéá üëá ôá ports (êáé ãéá áõôÜ ðïõ
	ðñïÝñ÷ïíôáé áðü ôï &linux;).  Ãéá ôï ëüãï áõôü, ç âÜóç äåäïìÝíùí
	&linux; RPM äåí ÷ñçóéìïðïéåßôáé (äåí õðïóôçñßæåôáé).</para>

      <para>Áí ùóôüóï ÷ñåéÜæåôáé íá åãêáôáóôÞóåôå ìéá ïðïéáäÞðïôå åöáñìïãÞ
	ôïõ &linux; ðïõ âáóßæåôáé óå ðáêÝôï RPM, ìðïñåßôå íá ôï åðéôý÷åôå
	ìå ôïí ðáñáêÜôù ôñüðï:</para>

      <screen>&prompt.root; <userinput>cd /compat/linux</userinput>
&prompt.root; <userinput>rpm2cpio -q &lt; /path/to/linux.archive.rpm | cpio -id</userinput></screen>

      <para>×ñçóéìïðïéÞóôå ôçí &man.brandelf.1; ãéá íá ôõðïðïéÞóåôå
	êáôÜëëçëá ôá åêôåëÝóéìá (ü÷é ôéò âéâëéïèÞêåò!) ùò åöáñìïãÝò &linux;.
	Äåí èá ìðïñåßôå íá áðåãêáôáóôÞóåôå ôéò åöáñìïãÝò ìå êáèáñü ôñüðï,
	áëëÜ èá ìðïñÝóåôå íá êÜíåôå ôéò äïêéìÝò ðïõ åðéèõìåßôå.</para>
    </sect2>

    <sect2>
      <title>Ñýèìéóç ôïõ Hostname Resolver</title>

      <para>Áí ôï DNS äå äïõëåýåé Þ áí óáò åìöáíßæåôáé ôï ðáñáêÜôù
	óöÜëìá:</para>

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

      <para>Èá ÷ñåéáóôåß íá ñõèìßóåôå
	ôï <filename>/compat/linux/etc/host.conf</filename> þóôå íá ðåñéÝ÷åé:
      </para>

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

      <para>Ç óåéñÜ åäþ äçëþíåé üôé áñ÷éêÜ åëÝã÷åôáé ôï
	áñ÷åßï <filename>/etc/hosts</filename> êáé óôç óõíÝ÷åéá ï DNS server.
	¼ôáí ôï <filename>/compat/linux/etc/host.conf</filename> äåí åßíáé
	äéáèÝóéìï, ïé åöáñìïãÝò Linux ÷ñçóéìïðïéïýí ôï
	<filename>/etc/host.conf</filename> ôïõ &os; êáé ðáñáðïíéïýíôáé üôé
        ç óýíôáîç ôïõ áñ÷åßïõ äåí åßíáé óùóôÞ.  Èá ðñÝðåé íá áöáéñÝóåôå
	ôçí áíáöïñÜ óôï <literal>bind</literal> áí äåí Ý÷åôå ñõèìßóåé Ýíá
        name server ìÝóù ôïõ <filename>/etc/resolv.conf</filename>.</para>
    </sect2>
  </sect1>

  <sect1 id="linuxemu-mathematica">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Boris</firstname>
	  <surname>Hollas</surname>
	  <contrib>Áíáíåþèçêå ãéá ôï Mathematica 5.X áðü ôïí </contrib>
	</author>
      </authorgroup>
    </sect1info>
    <title>Åãêáèéóôþíôáò ôï &mathematica;</title>

    <indexterm>
      <primary>applications</primary>
      <secondary><application>Mathematica</application></secondary>
    </indexterm>

    <para>Ôï êåßìåíï áõôü ðåñéãñÜöåé ôç äéáäéêáóßá åãêáôÜóôáóçò ôçò Ýêäïóçò
      Linux ôïõ <application>&mathematica; 5.X</application> óå Ýíá
      óýóôçìá &os;.</para>

    <para>Ìðïñåßôå íá áãïñÜóåôå ôçí êáíïíéêÞ Þ ìáèçôéêÞ Ýêäïóç ôïõ
      <application>&mathematica;</application> ãéá Linux, áðåõèåßáò áðü ôç
      Wolfram óôï <ulink url="http://www.wolfram.com/"></ulink>.</para>

    <sect2>
      <title>Ôï Ðñüãñáììá ÅãêáôÜóôáóçò ôïõ &mathematica;</title>

      <para>Áñ÷éêÜ, èá ðñÝðåé íá ðåßôå óôï &os; üôé ôá åêôåëÝóéìá ãéá Linux
        ôïõ <application>&mathematica;</application> êÜíïõí ÷ñÞóç ôïõ Linux
        ABI.  Ï åõêïëüôåñïò ôñüðïò ãéá íá ôï êÜíåôå áõôü åßíáé íá ïñßóåôå ôïí
        ôýðï ôïõ ELF ùò Linux óå üëåò ôéò åöáñìïãÝò ðïõ äåí åßíáé Þäç
        branded, êÜíïíôáò ÷ñÞóç ôçò åíôïëÞò:</para>

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

      <para>Áõôü èá êÜíåé ôï &os; íá õðïèÝóåé üôé ôá åêôåëÝóéìá ELF ðïõ äåí
        åßíáé branded, êÜíïõí ÷ñÞóç ôïõ Linux ABI êáé Ýôóé èá ìðïñåßôå íá
	ôñÝîåôå ôï ðñüãñáììá ôçò åãêáôÜóôáóçò áðåõèåßáò áðü ôï CDROM.</para>

      <para>Ôþñá, áíôéãñÜøôå ôï áñ÷åßï <filename>MathInstaller</filename>
        óôïí óêëçñü óáò äßóêï:</para>

      <screen>&prompt.root; <userinput>mount /cdrom</userinput>
&prompt.root; <userinput>cp /cdrom/Unix/Installers/Linux/MathInstaller /localdir/</userinput></screen>

      <para>Áíïßîôå ôï áñ÷åßï êáé áíôéêáôáóôÞóôå ôï <literal>/bin/sh</literal>
	óôç ðñþôç ãñáììÞ ìå ôï <literal>/compat/linux/bin/sh</literal>. Áõôü
	èá óéãïõñÝøåé üôé ôï ðñüãñáììá åãêáôÜóôáóçò èá ôñÝ÷åé ìå ôçí Ýêäïóç
	&man.sh.1; ãéá Linux.  Óôç óõíÝ÷åéá, áíôéêáôáóôÞóôå üëåò ôéò åããñáöÝò
	<literal>Linux)</literal> ìå <literal>&os;)</literal> ÷ñçóéìïðïéþíôáò
	Ýíáí óõíôÜêôç êåéìÝíïõ Þ ìå ôï ðáñáêÜôù script óôçí åðüìåíç åíüôçôá.
        Áõôü èá ðåé óôï ðñüãñáììá åãêáôÜóôáóçò ôïõ
        <application>&mathematica;</application>,
	ôï ïðïßï ôñÝ÷åé ôçí åíôïëÞ <command>uname -s</command> ãéá íá
        äéáðéóôþóåé ôï ëåéôïõñãéêü óýóôçìá,
	íá áíôéìåôùðßóåé ôï  &os; óáí Ýíá ëåéôïõñãéêü ðáñåìöåñÝò ìå ôï Linux.
	Ç åêôÝëåóç ôïõ <command>MathInstaller</command> èá îåêéíÞóåé ôþñá ôçí
	åãêáôÜóôáóç ôïõ <application>&mathematica;</application>.</para>
    </sect2>

    <sect2>
      <title>Ôñïðïðïéþíôáò ôá ÅêôåëÝóéìá ôïõ &mathematica;</title>

      <para>Ôá shell scripts ôá ïðïßá äçìéïõñãåß
	ôï <application>&mathematica;</application> êáôÜ ôç äéáäéêáóßá ôçò
	åãêáôÜóôáóçò ðñÝðåé íá ôñïðïðïéçèïýí ðñéí ÷ñçóéìïðïéçèïýí. Áí
	åðéëÝîåôå ôï <filename class="directory">/usr/local/bin</filename> ùò
	ôïí êáôÜëïãï ãéá ôá åêôåëÝóéìá ôïõ
	<application>&mathematica;</application>, èá âñåßôå åêåß
	óõìâïëéêïýò äåóìïýò (symlinks) ðñïò ôá áñ÷åßá
	<filename>math</filename>, <filename>mathematica</filename>,
	<filename>Mathematica</filename>, êáé
	<filename>MathKernel</filename>.  Óå êÜèå ðåñßðôùóç áðü ôéò ðáñáðÜíù,
	áíôéêáôáóôÞóôå ôéò åããñáöÝò
	<literal>Linux)</literal> ìå <literal>&os;)</literal> ìå êÜðïéïí
	óõíôÜêôç êåéìÝíïõ Þ ìå ôï ðáñáêÜôù shell script:</para>

      <programlisting>#!/bin/sh
cd /usr/local/bin
for i in math mathematica Mathematica MathKernel
  do sed 's/Linux)/&os;)/g' $i &gt; $i.tmp
  sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp &gt; $i
  rm $i.tmp
  chmod a+x $i
done</programlisting>
    </sect2>

    <sect2>
      <title>Áðïêôþíôáò Êùäéêü ãéá ôï &mathematica;</title>

      <indexterm>
	<primary>Ethernet</primary>
	<secondary>MAC address</secondary>
      </indexterm>

      <para>¼ôáí åêêéíÞóåôå ôï <application>&mathematica;</application> ãéá
	ðñþôç öïñÜ, èá åñùôçèåßôå ãéá Ýíáí êùäéêü. Áí äåí Ý÷åôå êÜðïéïí
	êùäéêü óå áõôü ôï óôÜäéï, ôñÝîôå ôï ðñüãñáììá
        <command>mathinfo</command> ðïõ âñßóêåôáé óôïí êáôÜëïãï åãêáôÜóôáóçò
        ãéá íá óáò äïèåß ôï <quote>machine ID</quote>.  Ôï "machine ID" åßíáé
        åî' ïëïêëÞñïõ âáóéóìÝíï óôç äéåýèõíóç MAC ôçò êÜñôáò äéêôýïõ ðïõ
        Ý÷åôå. Áõôü óçìáßíåé üôé äåí ìðïñåßôå íá ôñÝîåôå ôï
        <application>&mathematica;</application> óå  Üëëïõò õðïëïãéóôÝò.
      </para>

      <para>¼ôáí åããñáöåßôå óôç Wolfram, ìå e-mail, ôçëÝöùíï Þ fax, èá
	÷ñåéáóôåß íá äþóåôå ôï <quote>machine ID</quote> êáé èá óáò áðáíôÞóïõí
	ìå Ýíáí áíôßóôïé÷ï êùäéêü ðïõ èá áðïôåëåßôáé áðü ìéá óåéñÜ áñéèìþí.
      </para>
    </sect2>

    <sect2>
      <title>ÔñÝ÷ïíôáò ôï &mathematica; Frontend ìÝóù Äéêôýïõ</title>

      <para>Ôï <application>&mathematica;</application> êÜíåé ÷ñÞóç êÜðïéùí
	åéäéêþí ãñáììáôïóåéñþí ãéá íá åìöáíßóåé ÷áñáêôÞñåò ïé ïðïßïé äåí
	õðÜñ÷ïõí óôá óõíçèéóìÝíá óåô (ïëïêëçñþìáôá, áèñïßóìáôá, ÅëëçíéêÜ
        ãñÜììáôá, êëð).  To ðñùôüêïëëï X áðáéôåß áõôÝò ïé
	ãñáììáôïóåéñÝò íá õðÜñ÷ïõí óôï <emphasis>ôïðéêü</emphasis> óýóôçìá.
	Áõôü óçìáßíåé üôé èá ÷ñåéáóôåß íá áíôéãñÜøåôå ôéò ãñáììáôïóåéñÝò áõôÝò
	áðü ôï CDROM Þ áðü áðü êÜðïéïí Üëëïí õðïëïãéóôÞ ðïõ Ý÷åé
	ôï <application>&mathematica;</application>.  ÓõíÞèùò áõôÝò ïé
	ãñáììáôïóåéñÝò ìðïñïýí íá âñåèïýí ìÝóá óôï êáôÜëïãï
	<filename>/cdrom/Unix/Files/SystemFiles/Fonts</filename> ôïõ
	CDROM, Þ óôïí êáôÜëïãï
 	<filename>/usr/local/mathematica/SystemFiles/Fonts</filename> óôïí
	ôïðéêü óêëçñü äßóêï.  Ïé ðñáãìáôéêÝò ãñáììáôïóåéñÝò âñßóêïíôáé óå
        õðïêáôáëüãïõò üðùò <filename>Type1</filename> êáé
        <filename>X</filename>.  ÕðÜñ÷ïõí áñêåôïß ôñüðïé
	íá ôéò ÷ñçóéìïðïéÞóåôå, ïé ïðïßïé ðåñéãñÜöïíôáé óôç óõíÝ÷åéá.</para>

      <para>Ï ðñþôïò ôñüðïò åßíáé íá ôéò áíôéãñÜøåôå ìÝóá óå Ýíáí õðÜñ÷ïíôá
	êáôÜëïãï óôï <filename>/usr/X11R6/lib/X11/fonts</filename>.  Èá
	÷ñåéáóôåß üìùò íá ôñïðïðïéÞóåôå ôï
	áñ÷åßï <filename>fonts.dir</filename>, þóôå íá ðñïóèÝóåôå ôá ïíüìáôá
	ôùí ãñáììáôïóåéñþí ìÝóá óå áõôü, êáé íá áëëÜîåôå ôïí áñéèìü ôùí
	ãñáììáôïóåéñþí óôç ðñþôç ãñáììÞ.  ÅíáëëáêôéêÜ, åßíáé óõíÞèùò áñêåôü
        íá åêôåëÝóåôå áðëþò ôçí åíôïëÞ &man.mkfontdir.1; ìÝóá óôïí êáôÜëïãï
        ðïõ Ý÷åôå áíôéãñÜøåé ôéò ãñáììáôïóåéñÝò.
      </para>

      <para>Ï äåýôåñïò ôñüðïò åßíáé íá áíôéãñÜøåôå ôïõò ðáñáðÜíù êáôáëüãïõò
        ìÝóá óôï <filename>/usr/X11R6/lib/X11/fonts</filename>:</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>Ôþñá ðñïóèÝóôå ôïõò íÝïõò êáôáëüãïõò ìå ôéò ãñáììáôïóåéñÝò óôï
	font path:</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>Áí ÷ñçóéìïðïéåßôå ôï <application>&xorg;</application>, ìðïñåßôå
        íá öïñôþíåôå ôéò ãñáììáôïóåéñÝò áõôÝò áõôüìáôá, ðñïóèÝôïíôáò ôïõò
	íÝïõò êáôáëüãïõò óôï áñ÷åßï <filename>xorg.conf</filename>.
      </para>

      <indexterm><primary>fonts</primary></indexterm>

      <para>Áí <emphasis>äåí</emphasis> Ý÷åôå Þäç Ýíáí êáôÜëïãï ìå ôï
	üíïìá <filename>/usr/X11R6/lib/X11/fonts/Type1</filename>, ìðïñåßôå íá
	áëëÜîåôå ôï üíïìá ôïõ <filename>MathType1</filename> áðü ôï ðáñáðÜíù
	ðáñÜäåéãìá óå <filename>Type1</filename>.</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>ÓõíåéóöïñÜ ôïõ </contrib>
	</author>
      </authorgroup>
      <authorgroup>
	<author>
	  <firstname>Robert</firstname>
	  <surname>Getschmann</surname>
<!--	  <address><email>rob@getschmann.org</email></address> -->
	  <contrib>Åõ÷áñéóôßåò óôïí </contrib>
	</author>
      </authorgroup>
    </sect1info>
    <title>Åãêáèéóôþíôáò ôï &maple;</title>

    <indexterm>
      <primary>applications</primary>
      <secondary><application>Maple</application></secondary>
    </indexterm>

    <para>Ôï <application>&maple;</application> åßíáé ìßá åìðïñéêÞ åöáñìïãÞ
      ìáèçìáôéêþí ðáñüìïéá ìå ôï <application>&mathematica;</application>. Èá
      ðñÝðåé íá áãïñÜóåôå ôï ëïãéóìéêü áðü
      ôï <ulink url="http://www.maplesoft.com/"></ulink> êáé óôç óõíÝ÷åéá íá
      êÜíåôå áßôçóç ãéá ìéá Üäåéá ÷ñÞóçò.  Ãéá íá åãêáôáóôÞóåôå ôï ëïãéóìéêü
      óôï &os;, áêïëïõèÞóôå ôá ðáñáêÜôù áðëÜ âÞìáôá.
    </para>

      <procedure>
	<step>
	  <para>ÅêôåëÝóôå ôï <filename>INSTALL</filename> shell script áðü ôï
	    ìÝóï åãêáôÜóôáóçò ðïõ Ý÷åôå.  ÅðéëÝîôå <quote>RedHat</quote> üôáí
	    åñùôçèåßôå áðü ôï ðñüãñáììá åãêáôÜóôáóçò. Ï ôõðéêüò êáôÜëïãïò
	    åßíáé ï <filename class="directory">/usr/local/maple</filename>.
          </para>
	</step>

        <step>
	  <para>Áí äåí Ý÷åôå áãïñÜóåé áêüìç êÜðïéá Üäåéá ãéá
	    ôï <application>&maple;</application>, áãïñÜóôå ìßá áðü ôï
	    Maple Waterloo Software
	    (<ulink url="http://register.maplesoft.com/"></ulink>) êáé
	    áíôéãñÜøôå ôï áñ÷åßï ðïõ èá óáò äïèåß
	    óôï <filename>/usr/local/maple/license/license.dat</filename>.
          </para>
	</step>

        <step>
	  <para>ÅãêáôáóôÞóåôå ôï <application>FLEXlm</application> license
	    manager åêôåëþíôáò ôï <filename>INSTALL_LIC</filename> shell
	    script ôï ïðïßá ðáñÝ÷åôáé ìáæß ìå
	    ôï <application>&maple;</application>. Äþóôå ôï âáóéêü üíïìá ôïõ
	    õðïëïãéóôÞ óáò ôï ïðïßï áðáéôåßôáé áðü ôïí
            åîõðçñåôçôÞ äéá÷åßñéóçò ôùí áäåéþí (license server).</para>
	</step>

        <step>
	  <para>×ñçóéìïðïéÞóôå ôï ðáñáêÜôù patch óôï áñ÷åßï
            <filename>/usr/local/maple/bin/maple.system.type</filename>:
          </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>Óçìåéþóôå üôé ìåôÜ ôï <literal>"FreeBSD"|\</literal>
          äåí ðñÝðåé íá åìöáíßæåôáé Üëëï êåíü äéÜóôçìá.</para>

	<para>Ôï patch áõôü ïäçãåß ôï <application>&maple;</application> íá
	  áíáãíùñßóåé ôï <quote>&os;</quote> óáí Ýíá óýóôçìá Linux.
	  Ôï <filename>bin/maple</filename> shell script êáëåß ôï
	  <filename>bin/maple.system.type</filename> shell script, ôï ïðïßï ìå
	  ôç óåéñÜ ôïõ êáëåß ôçí åíôïëÞ <command>uname -a</command>
	  ðñïêåéìÝíïõ íá åíôïðéóôåß ôï üíïìá ôïõ ëåéôïõñãéêïý
	  óõóôÞìáôïò. Áíáëüãùò ìå ôï ðïéï ëåéôïõñãéêü âñåèåß, èá
	  ÷ñçóéìïðïéçèïýí êáé ôá áíôßóôïé÷á åêôåëÝóéìá áñ÷åßá.</para>
	</step>

      <step>
	<para>ÅêêéíÞóôå ôïí license server.</para>

	<para>¸íáò âïëéêüò ôñüðïò ãéá íá åêêéíÞóåôå ôï<command>lmgrd</command>
          åßíáé ôï áêüëïõèï script ðïõ âñßóêåôáé óôï
	  <filename>/usr/local/etc/rc.d/lmgrd.sh</filename>:</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&gt;&gt; ${LOG} 1&gt;&2
	echo -n " lmgrd"
	;;
stop)
	lmgrd -c ${LICENSE_FILE} -x lmdown 2&gt;&gt; ${LOG} 1&gt;&2
	;;
*)
	echo "Usage: `basename $0` {start|stop}" 1&gt;&2
	exit 64
	;;
esac

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


      <step>
	<para>ÄïêéìÞ ôïõ <application>&maple;</application>:</para>

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

	<para>Óå áõôü ôï óçìåßï èá ðñÝðåé íá åßíáé üëá Ýôïéìá êáé íá ìçí Ý÷åôå
	  êáíÝíá ðñüâëçìá.  Ìçí îå÷Üóåôå üìùò íá óôåßëåôå Ýíá e-mail óôç
	  Maplesoft êáé íá ôïõò ðåßôå üôé èÝëåôå ìéá Ýêäïóç ðïõ íá
	  õðïóôçñßæåôáé åðßóçìá óôï &os;.</para>
      </step>
    </procedure>

    <sect2>
      <title>ÓõíçèéóìÝíá ÐñïâëÞìáôá</title>

      <itemizedlist>
	<listitem>
	  <para>ºóùò äõóêïëåõôåßôå ìå ôçí ëåéôïõñãßá ôïõ
            <application>FLEXlm</application> license manager. ÅðéðëÝïí
            ôåêìçñßùóç ìðïñåßôå íá âñåßôå
	    óôï <ulink url="http://www.globetrotter.com/"></ulink>.
          </para></listitem>

	<listitem>
	  <para>Ôï <command>lmgrd</command> åßíáé ãíùóôü üôé èÝëåé ôï áñ÷åßï
	    ôçò Üäåéáò íá Ý÷åé óõãêåêñéìÝíç ìïñöÞ áëëéþò ç åêôÝëåóç ôïõ èá
	    áðïôý÷åé.  ¸íá óùóôü áñ÷åßï Üäåéáò ÷ñÞóçò ðñÝðåé åßíáé óå ãåíéêÝò
	    ãñáììÝò üðùò ôï ðáñáêÜôù:</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>Ï óåéñéáêüò áñéèìüò êáé ôï êëåéäß öáßíïíôáé åäþ ìå
	      'X'. Ôï <hostid>chillig</hostid> åßíáé ôï üíïìá ôïõ
	      óõóôÞìáôïò.</para>
	  </note>

  	  <para>Ìðïñåßôå íá ôñïðïðïéÞóåôå ôï áñ÷åßï ôçò Üäåéáò ÷ñÞóçò, áñêåß
            íá ìçí áëëÜîåôå ôçí ãñáììÞ <quote>FEATURE</quote> (ç ïðïßá
  	    ðñïóôáôåýåôáé áðü ôï êëåéäß ôçò Üäåéáò).</para>
	</listitem>
      </itemizedlist>
    </sect2>
  </sect1>

  <sect1 id="linuxemu-matlab">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Dan</firstname>
	  <surname>Pelleg</surname>
	  <contrib>ÓõíåéóöïñÜ ôïõ </contrib>
	</author>
	<!-- daniel+handbook@pelleg.org -->
      </authorgroup>
    </sect1info>
    <title>Åãêáèéóôþíôáò ôï &matlab;</title>

    <indexterm>
      <primary>applications</primary>
      <secondary><application>MATLAB</application></secondary>
    </indexterm>

    <para>Ôï êåßìåíï áõôü ðåñéãñÜöåé ôç äéáäéêáóßá åãêáôÜóôáóçò ôçò Linux
      Ýêäïóçò ôïõ <application>&matlab; 6.5</application> óå Ýíá óýóôçìá &os;.
      Äïõëåýåé áñêåôÜ êáëÜ, ìå åîáßñåóç
      ôï <application>&java.virtual.machine;</application> (äåßôå óôï
      <xref linkend="matlab-jre"/>).</para>

    <para>Ç Linux Ýêäïóç ôïõ <application>&matlab;</application> ìðïñåß íá
      áãïñáóôåß áðåõèåßáò áðü ôçí åôáéñåßá The MathWorks
      óôï <ulink url="http://www.mathworks.com"></ulink>.  Óéãïõñåõôåßôå üôé
      ðÞñáôå êáé ôï áñ÷åßï ðïõ ðåñéÝ÷åé ôçí Üäåéá ÷ñÞóçò Þ ïäçãßåò ãéá ôï ðùò
      íá ôï äçìéïõñãÞóåôå.  Ìéá êáé èá åðéêïéíùíÞóåôå ìå ôçí åôáéñåßá, ðåßôå
      ôïõò üôé èá èÝëáôå íá õðÜñ÷åé åðßóçò õðïóôÞñéîç ãéá ôï &os;.
    </para>

    <sect2>
      <title>ÅãêáôÜóôáóç ôïõ &matlab;</title>

      <para>Ãéá íá åãêáôáóôÞóåôå ôï <application>&matlab;</application>, êÜíôå
	ôá ðáñáêÜôù:</para>

      <procedure>
	<step>
	  <para>ÅéóÜãåôå ôï CD êáé ðñïóáñôÞóôå ôï óôï óýóôçìá óáò.  Óõíäåèåßôå
	    ùò ÷ñÞóôçò <username>root</username>, üðùò óõíéóôÜ ôï script ôçò
	    åãêáôÜóôáóçò.  Ãéá íá îåêéíÞóåôå ôï script ôçò åãêáôÜóôáóçò äþóôå
	    ôçí åíôïëÞ:</para>

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

	  <tip>
	    <para>Ôï ðñüãñáììá ôçò åãêáôÜóôáóçò åßíáé óå ãñáöéêü
	      ðåñéâÜëëïí. Áí ëáìâÜíåôå óöÜëìáôá ó÷åôéêÜ ìå ôçí ïèüíç, äþóôå
	      ôçí åíôïëÞ: <command>setenv HOME ~<replaceable>USER</replaceable></command>,
	      üðïõ <replaceable>USER</replaceable> åßíáé ï ÷ñÞóôçò áðü üðïõ
	      äþóáôå ôçí åíôïëÞ &man.su.1;.</para>
	  </tip>
	</step>

	<step>
	  <para>
	    ¼ôáí åñùôçèåßôå ãéá ôïí êáôÜëïãï
	    ôïõ <application>&matlab;</application>, äþóôå:
	    <userinput>/compat/linux/usr/local/matlab</userinput>.</para>

	  <tip>
	    <para>Ãéá åõêïëüôåñç äéáäéêáóßá åãêáôÜóôáóçò, ïñßóôå ôï ðáñáêÜôù:
	      <command>set MATLAB=/compat/linux/usr/local/matlab</command>
              óôç ãñáììÞ åíôïëþí ôïõ êåëýöïõò óáò.</para>
	  </tip>
	</step>

	<step>
	  <para>ÔñïðïðïéÞóåôå ôï áñ÷åßï ôçò Üäåéáò (license file) óýìöùíá ìå
	    ôéò ïäçãßåò ðïõ ëÜâáôå ìå ôçí Üäåéá
	    ôïõ <application>&matlab;</application>.</para>

	  <tip>
	    <para>Ìðïñåßôå íá åôïéìÜóåôå åê ôùí ðñïôÝñùí ôï áñ÷åßï áõôü êáé íá
	      ôï áíôéãñÜøåôå óôï <filename>$MATLAB/license.dat</filename>,
	      ðñéí êáí óáò ðåé ôï ðñüãñáììá åãêáôÜóôáóçò íá ôï
	      ôñïðïðïéÞóåôå.</para>
	  </tip>
	</step>

	<step>
	  <para>ÏëïêëÞñùóç ôçò ÅãêáôÜóôáóçò</para>
	</step>
      </procedure>

      <para>Óå áõôü ôï óçìåßï, ç åãêáôÜóôáóç
	ôïõ <application>&matlab;</application> Ý÷åé ïëïêëçñùèåß.  Ôá åðüìåíá
	âÞìáôá ÷ñåéÜæïíôáé ãéá íá ìðïñÝóåôå íá ôï äïõëÝøåôå óùóôÜ ìå ôï
	&os;.</para>
    </sect2>

    <sect2>
      <title>Åêêßíçóç ôïõ License Manager</title>
      <procedure>
	<step>
	  <para>Äçìéïõñãßá óõìâïëéêþí óõíäÝóìùí ãéá ôá scripts ôïõ license
	    manager:</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>ÄçìéïõñãÞóôå ôï áñ÷åßï
	    åêêßíçóçò <filename>/usr/local/etc/rc.d/flexlm.sh</filename>. Ôï
	    ðáñÜäåéãìá ðáñáêÜôù åßíáé ìéá ôñïðïðïéçìÝíç Ýêäïóç ôïõ
	    <filename>$MATLAB/etc/rc.lm.glnx86</filename>.  Ïé áëëáãÝò
	    åßíáé óôéò ôïðïèåóßåò ôùí áñ÷åßùí, êáé óôçí åêêßíçóç ôïõ license
            manager óôï ðåñéâÜëëïí åîïìïßùóçò Linux ôïõ &os; .</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>Ôï áñ÷åßï ðñÝðåé íá åßíáé åêôåëÝóéìï:</para>

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

	    <para>ÐñÝðåé åðßóçò íá áíôéêáôáóôÞóåôå ôï ðáñáðÜíù
	      <replaceable>username</replaceable> ìå Ýíá õðáñêôü üíïìá
	      ÷ñÞóôç ôïõ óõóôÞìáôïò óáò (êáé íá ìçí åßíáé ï
	      <username>root</username>).</para>
	  </important>
	</step>

	<step>
	  <para>ÅêêéíÞóôå ôïí license manager ìå ôçí åíôïëÞ:</para>

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

    <sect2 id="matlab-jre">
      <title>Óýíäåóç ìå ôï ÐåñéâÜëëïí ôïõ &java; Runtime Environment</title>

      <para>ÁëëÜîôå ôïí óýíäåóìï ôïõ<application>&java;</application> Runtime
	Environment (JRE) óå Ýíáí ï ïðïßïò èá äïõëåýåé óôï &os;:</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>ÄçìéïõñãÞóôå ôï Script Åêêßíçóçò ôïõ &matlab; </title>

      <procedure>
	<step>
	  <para>ÔïðïèåôÞóôå ôï ðáñáêÜôù script óôï
	    <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>Óôç óõíÝ÷åéá äþóôå ôçí åíôïëÞ
	    <command>chmod +x /usr/local/bin/matlab</command>.</para>
	</step>
      </procedure>

      <tip>
	<para>ÁíÜëïãá ìå ôçí Ýêäïóç ôïõ
          <filename role="package">emulators/linux_base</filename>, ðïõ Ý÷åôå,
	  ìðïñåß íá åìöáíéóôïýí ìåñéêÜ óöÜëìáôá üôáí ôñÝîåôå ôï
	  script. Ãéá íá ôï áðïöýãåôå áõôü, ôñïðïðïéÞóôå ôï áñ÷åßï
          <filename>/compat/linux/usr/local/matlab/bin/matlab</filename>,
	  êáé áëëÜîôå ôç ãñáììÞ ðïõ ëÝåé:</para>

	<programlisting>if [ `expr "$lscmd" : '.*-&gt;.*'` -ne 0 ]; then</programlisting>

	<para>(óôçí Ýêäïóç 13.0.1 âñßóêåôáé óôç ãñáììÞ 410) óå áõôÞ ôç
          ãñáììÞ:</para>

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

    <sect2>
      <title>Äçìéïõñãßá Script Ôåñìáôéóìïý ôïõ &matlab; </title>

      <para>Ôá åðüìåíá âÞìáôá ÷ñåéÜæïíôáé ãéá íá ëýóåôå Ýíá ðñüâëçìá ðïõ
	õðÜñ÷åé ìå ôïí ôåñìáôéóìü ôïõ &matlab;.</para>

      <procedure>
	<step>
	  <para>ÄçìéïõñãÞóôå ôï
	    áñ÷åßï <filename>$MATLAB/toolbox/local/finish.m</filename>, êáé
	    ìÝóá óå áõôü ðñïóèÝóôå ìüíï ôç ãñáììÞ:</para>

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

	  <note>
	    <para>To <literal>$MATLAB</literal> ãñÜøôå ôï áêñéâþò
	      üðùò ôï âëÝðåôå.</para>
	  </note>

	  <tip>
	    <para>Óôïí ßäéï êáôÜëïãï, èá âñåßôå ôá
	      áñ÷åßá <filename>finishsav.m</filename>
	      êáé <filename>finishdlg.m</filename>, ôá ïðïßá èá óáò äßíïõí ôç
	      äõíáôüôçôá íá óþæåôå ôçí åñãáóßá óáò ðñéí êëåßóåôå ôï ðñüãñáììá.
	      Áí ðñüêåéôáé íá ÷ñçóéìïðïéÞóåôå êÜðïéï áðü áõôÜ, ðñïóèÝóôå ôïõ
              ôçí ðáñáðÜíù ãñáììÞ áìÝóùò ìåôÜ ôçí åíôïëÞ
              <literal>save</literal> .</para></tip>
	</step>

	<step>
	  <para>ÄçìéïõñãÞóôå ôï
	    áñ÷åßï <filename>$MATLAB/bin/finish.sh</filename>, ôï ïðïßï èá
	    ðåñéÝ÷åé ôá ðáñáêÜôù:</para>

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

	<step>
	  <para>ÊÜíôå ôï áñ÷åßï åêôåëÝóéìï:</para>

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

    <sect2 id="matlab-using">
      <title>×ñçóéìïðïéþíôáò ôï &matlab;</title>

      <para>Óå áõôü ôï óçìåßï èá ðñÝðåé íá åßóôå Ýôïéìïé íá äþóåôå ôçí
	åíôïëÞ <command>matlab</command> êáé íá áñ÷ßóåôå íá ÷ñçóéìïðïéåßôå ôçí
	åöáñìïãÞ.</para>
    </sect2>
  </sect1>

  <sect1 id="linuxemu-oracle">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Marcel</firstname>
	  <surname>Moolenaar</surname>
	  <contrib>ÓõíåéóöïñÜ ôïõ </contrib>
	</author>
	<!-- marcel@cup.hp.com -->
      </authorgroup>
    </sect1info>
    <title>ÅãêáôÜóôáóç ôçò &oracle;</title>

    <indexterm>
      <primary>applications</primary>
      <secondary><application>Oracle</application></secondary>
    </indexterm>

    <sect2>
      <title>ÅéóáãùãÞ</title>

      <para>Ôï êåßìåíï áõôü ðåñéãñÜöåé ôç äéáäéêáóßá åãêáôÜóôáóçò
	ôùí <application>&oracle; 8.0.5</application>
	êáé <application>&oracle; 8.0.5.1 Enterprise Edition</application> ãéá
	Linux óå Ýíá óýóôçìá &os;.</para>
    </sect2>

    <sect2>
      <title>ÅãêáôÜóôáóç ôïõ ÐåñéâÜëëïíôïò Linux</title>

      <para>Óéãïõñåõôåßôå üôé Ý÷åôå åãêáôáóôÞóåé
	ôá <filename role='package'>emulators/linux_base</filename>
	êáé <filename role='package'>devel/linux_devtools</filename> áðü ôç
	óõëëïãÞ ôùí Ports.  Áí áíôéìåôùðßæåôå äõóêïëßåò ìå ôá ðáñáðÜíù, ßóùò
	÷ñåéáóôåß íá ôá åãêáôáóôÞóåôå áðü ðáêÝôá Þ áðü ðáëéüôåñåò åêäüóåéò ôçò
	óõëëïãÞò ôùí Ports.</para>

      <para>Áí èÝëåôå íá ôñÝîåôå ôïí intelligent agent, èá ÷ñåéáóôåß íá
	åãêáôáóôÞóåôå êáé ôï ðáêÝôï Red Hat
	Tcl: <filename>tcl-8.0.3-20.i386.rpm</filename>.  Ç åíôïëÞ ãéá ôçí
	åãêáôÜóôáóç ìÝóù ôïõ åðßóçìïõ <application>RPM</application> port
	(<filename role='package'>archivers/rpm</filename>) åßíáé:</para>

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

      <para>Ç åãêáôÜóôáóç ôïõ <replaceable>package</replaceable> èá ðñÝðåé íá
	ãßíåé ïìáëÜ êáé ÷ùñßò ðñïâëÞìáôá.</para>
    </sect2>

    <sect2>
      <title>Ñõèìßæïíôáò ôï ÐåñéâÜëëïí ãéá ôçí &oracle; </title>

      <para>Ðñéí ôçí åãêáôÜóôáóç ôçò <application>&oracle;</application>, èá
	ðñÝðåé íá ñõèìßóåôå óùóôÜ ôï ðåñéâÜëëïí ôïõ óõóôÞìáôüò óáò. Ôï
	ðáñáêÜôù êåßìåíï ðåñéãñÜöåé ôé <emphasis>áêñéâþò</emphasis> ðñÝðåé íá
	êÜíåôå ãéá íá åêôåëÝóåôå ôçí <application>&oracle;</application> ãéá
        Linux óôï &os;, êáé äåí ðåñéãñÜöåé üôé õðÜñ÷åé Þäç óôïí ïäçãü
	åãêáôÜóôáóçò ôçò <application>&oracle;</application>.</para>

      <sect3 id="linuxemu-kernel-tuning">
        <title>Ñýèìéóç ôïõ ÐõñÞíá</title>
	<indexterm><primary>kernel tuning</primary></indexterm>

	<para>¼ðùò ðåñéãñÜöåé ï ïäçãüò åãêáôÜóôáóçò
	  ôçò <application>&oracle;</application>, èá ðñÝðåé íá ïñßóåôå ôéò
	  ôéìÝò ôçò shared memory óôï ìÝãéóôï. Ìçí ÷ñçóéìïðïéÞóåôå
	  ôï <literal>SHMMAX</literal> óôï &os;. Ôï <literal>SHMMAX</literal>
	  õðïëïãßæåôáé áðëþò áðü ôï <literal>SHMMAXPGS</literal> êáé ôï
	  <literal>PGSIZE</literal>. ÅðïìÝíùò êáèïñßóôå ôï
	  <literal>SHMMAXPGS</literal>.  ¼ëåò ïé Üëëåò åðéëïãÝò ìðïñïýí íá
          ïñéóôïýí üðùò ðåñéãñÜöåôáé óôïí ïäçãü. Ãéá ðáñÜäåéãìá:</para>

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

	<para>Ïñßóôå ôéò ôéìÝò ôùí åðéëïãþí Ýôóé þóôå íá ôáéñéÜæïõí óôç ÷ñÞóç
	  ôçò <application>&oracle;</application> ðïõ èÝëåôå íá êÜíåôå.</para>

	<para>Åðßóçò, åðéâåâáéþóôå üôé Ý÷åôå åíåñãïðïéÞóåé ôéò ðáñáêÜôù
	  åðéëïãÝò óôéò ñõèìßóåéò ôïõ ðõñÞíá:</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;</title>

	<para>ÄçìéïõñãÞóôå Ýíá ÷ñÞóôç óõóôÞìáôïò ìå
	  üíïìá <username>oracle</username>, ìå ôïí ßäéï ôñüðï ðïõ èá
	  äçìéïõñãïýóáôå êáé ïðïéïíäÞðïôå Üëëïí ÷ñÞóôç. Ôï ìüíï éäéáßôåñï
          ÷áñáêôçñéóôéêü ôïõ ÷ñÞóôç <username>oracle</username> åßíáé üôé
          ÷ñåéÜæåôáé íá ôïõ äþóåôå Ýíá êÝëõöïò Linux.  ÐñïóèÝóôå
	  ôï <literal>/compat/linux/bin/bash</literal>
	  óôï <filename>/etc/shells</filename> êáé ïñßóôå ôï êÝëõöïò ôïõ
	  ÷ñÞóôç <username>oracle</username>
	  óå <filename>/compat/linux/bin/bash</filename>.</para>
      </sect3>

      <sect3 id="linuxemu-environment">
        <title>Ôï ÐåñéâÜëëïí</title>

	<para>Åêôüò ôùí óõíçèéóìÝíùí ìåôáâëçôþí
	  ôçò <application>&oracle;</application>, üðùò
	  ïé <envar>ORACLE_HOME</envar> êáé <envar>ORACLE_SID</envar> èá
	  ðñÝðåé íá ïñßóåôå êáé ôéò áêüëïõèåò ìåôáâëçôÝò ðåñéâÜëëïíôïò:</para>

	<informaltable frame="none" pgwide="1">
	  <tgroup cols="2">
          <colspec colwidth="1*"/>
          <colspec colwidth="2*"/>
	    <thead>
	      <row>
		<entry>ÌåôáâëçôÞ</entry>

		<entry>ÔéìÞ</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>Óáò óõíéóôïýìå íá ïñßóåôå üëåò ôéò ìåôáâëçôÝò ðåñéâÜëëïíôïò óôï
          áñ÷åßï <filename>.profile</filename>. ¸íá ïëïêëçñùìÝíï ðáñÜäåéãìá
          åßíáé ôï ðáñáêÜôù:</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;</title>

      <para>Ëüãù ìéá ìéêñÞò Ýëëåéøçò óôïí åîïìïéùôÞ ôïõ Linux, èá ÷ñåéáóôåß íá
	äçìéïõñãÞóåôå Ýíáí êáôÜëïãï ìå ôï üíïìá <filename>.oracle</filename>
	ìÝóá óôï <filename>/var/tmp</filename>, ðñéí îåêéíÞóåôå ôï ðñüãñáììá
        åãêáôÜóôáóçò. Ï êáôÜëïãïò áõôüò èá ðñÝðåé íá áíÞêåé
	óôïí ÷ñÞóôç <username>oracle</username>.  Èá ðñÝðåé ôþñá íá
	ðñáãìáôïðïéÞóåôå ôçí åãêáôÜóôáóç
	ôçò <application>&oracle;</application> äß÷ùò êáíÝíá ðñüâëçìá.  Áí
	áíôéìåôùðßæåôå üìùò áêüìç ðñïâëÞìáôá, åëÝãîôå ôçí Ýêäïóç
	ôçò <application>&oracle;</application> ðïõ Ý÷åôå Þ/êáé ôéò
	ñõèìßóåéò óáò!  Áöüôïõ Ý÷åôå ðñáãìáôïðïéÞóåé ôçí åãêáôÜóôáóç
	ôçò <application>&oracle;</application>, åöáñìüóôå ôá patches ðïõ
	ðåñéãñÜöïíôáé óôéò äýï ðáñáêÜôù åíüôçôåò.</para>

      <para>¸íá óõ÷íü ðñüâëçìá åßíáé üôé äåí ãßíåôáé óùóôÞ åãêáôÜóôáóç ôïõ
        ðñïóáñìïãÝá ôïõ ðñùôïêüëëïõ TCP. Áõôü Ý÷åé ùò áðïôÝëåóìá íá ìçí
        ìðïñåßôå íá îåêéíÞóåôå ôïõò TCP listeners.  Ïé áêüëïõèåò ïäçãßåò èá
        óáò âïçèÞóïõí íá ëýóåôå áõôü ôï ðñüâëçìá.:</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>Ìç îå÷Üóåôå íá ôñÝîåôå îáíÜ ôï <filename>root.sh</filename></para>

    <sect3 id="linuxemu-patch-root">
      <title>Äéüñèùóç ôïõ root.sh</title>

	<para>¼ôáí åãêáèéóôÜôå ôçí <application>&oracle;</application>,
          êÜðïéåò åíÝñãåéåò, ïé ïðïßåò ÷ñåéÜæïíôáé íá ãßíïõí
	  ùò <username>root</username>, êáôáãñÜöïíôáé óå Ýíá shell script ðïõ
	  ëÝãåôáé <filename>root.sh</filename>.  Ôï script áõôü äçìéïõñãåßôáé
	  óôïí êáôÜëïãï <filename>orainst</filename>.  Åöáñìüóôå ôï ðáñáêÜôù
	  patch óôï <filename>root.sh</filename>, ãéá íá ìðïñÝóåé íá âñåé êáé 
	  íá ÷ñçóéìïðïéÞóåé ôï <command>chown</command>. ÅíáëëáêôéêÜ, ôñÝîôå
          ôï script ìÝóá áðü Ýíá êÝëõöïò Linux.</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>¼ôáí äåí êÜíåôå ÷ñÞóç ôïõ CD ãéá ôçí åãêáôÜóôáóç, ìðïñåßôå íá
	  ðåñÜóåôå ôï patch ãéá ôï <filename>root.sh</filename>, óôçí ðçãÞ
	  åãêáôÜóôáóçò.  To áñ÷åßï ïíïìÜæåôáé <filename>rthd.sh</filename> êáé
	  âñßóêåôáé óôïí êáôÜëïãï <filename>orainst</filename>.</para>
      </sect3>

      <sect3 id="linuxemu-patch-tcl">
	<title>Äéüñèùóç ôïõ genclntsh</title>

	<para>To script <command>genclntsh</command> ÷ñçóéìïðïéåßôáé ãéá íá
	  äçìéïõñãÞóåé ìéá shared client library. ÔñÝîôå ôï ðáñáêÜôù patch ãéá
	  íá óâÞóåôå ôï êáèïñéóìÝíï <envar>PATH</envar>:</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;</title>

      <para>Áöïý Ý÷åôå áêïëïõèÞóåé áõôÝò ôéò ïäçãßåò, èá ðñÝðåé íá ìðïñåßôå
	íá åêôåëÝóåôå ôçí <application>&oracle;</application> óáí íá
        âñéóêüóáóôáí óå Ýíá óýóôçìá Linux.
      </para>
    </sect2>
  </sect1>

  <sect1 id="linuxemu-advanced">
    <title>Ðñï÷ùñçìÝíá ÈÝìáôá</title>

    <para>Áí Ý÷åôå ôçí áðïñßá ðùò ëåéôïõñãåß ç óõìâáôüôçôá ìå åöáñìïãÝò Linux,
      ôüôå èá ðñÝðåé íá äéáâÜóåôå ôç ðáñáêÜôù åíüôçôá. Ôá ðåñéóóüôåñá áðü üóá
      Ý÷ïõí ãñáöôåß åßíáé âáóéóìÝíá óôçí &a.chat; êáé Ý÷ïõí ãñáöôåß áðü ôïí
      Terry Lambert <email>tlambert@primenet.com</email> (Message ID:
      <literal>&lt;199906020108.SAA07001@usr09.primenet.com&gt;</literal>).
    </para>

    <sect2>
      <title>Ðùò Ëåéôïõñãåß;</title>
      <indexterm><primary>execution class loader</primary></indexterm>

      <para>Ôï &os; ðåñéÝ÷åé Ýíá åðßðåäï áöáßñåóçò (abstraction) ðïõ 
	ïíïìÜæåôáé <quote>execution class loader</quote>. Áõôü âáóßæåôáé óôï
	&man.execve.2;.</para>

      <para>Áõôü ðïõ óõìâáßíåé åßíáé üôé ôï &os; Ý÷åé ìéá ëßóôá öïñôùôþí
	(loaders), áíôß ãéá Ýíá ðïõ íá êáôáöåýãåé óå ðåñßðôùóç áðïôõ÷ßáò
	óôï <literal>#!</literal> ãéá íá ôñÝîåé êÜðïéï shell interpreter Þ
	shell script.</para>

      <para>ÉóôïñéêÜ, ï ìüíïò öïñôùôÞò óôç ðëáôöüñìá ôïõ &unix; Ýëåã÷å ôïí
	ìáãéêü áñéèìü (ãåíéêÜ ôá ðñþôá 4 Þ 8 bytes ôïõ áñ÷åßïõ) ãéá íá äåé áí
	åßíáé êÜðïéï åêôåëÝóéìï / åöáñìïãÞ ãíùóôü óôï óýóôçìá, êáé óôçí
        ðåñßðôùóç áõôÞ íá êáëÝóåé ôïí áíôßóôïé÷ï öïñôùôÞ.</para>

      <para>Áí ôï áñ÷åßï äåí Þôáí åêôåëÝóéìï ìå âÜóç ôïí ôýðï ôïõ óõóôÞìáôïò,
        ç êëÞóç óôï &man.execve.2; åðÝóôñåöå êÜðïéï óöÜëìá, êáé ôï shell
        ðñïóðáèïýóå íá åêôåëÝóåé ôï áñ÷åßï óáí shell script.</para>

      <para>Ç ãåíéêÞ éäÝá Þôáí <quote>áí äåí åßíáé åêôåëÝóéìï,
        ðñïóðÜèçóå íá ôï ôñÝîåéò ùò shell script ìå âÜóç ôï ôñÝ÷ïí shell
	</quote>.</para>

      <para>Áñãüôåñá, âñÝèçêå Ýíáò Ýîõðíïò ôñüðïò þóôå ôï &man.sh.1; íá
        åëÝã÷åé ôïõò ðñþôïõò äýï ÷áñáêôÞñåò, êáé áí Þôáí
        <literal>:\n</literal>, ôüôå êáëïýóå ôï shell &man.csh.1;
        (ðéóôåýïõìå ðùò ç ëýóç áõôÞ âñÝèçêå áñ÷éêÜ áðü ôç SCO).</para>

      <para>Áõôü ðïõ êÜíåé ôþñá ôï &os; åßíáé íá äéáôñÝ÷åé ôç ëßóôá ìå üëïõò
	ôïõò öïñôùôÝò, ìå Ýíá ãåíéêü öïñôùôÞ <literal>#!</literal> ï ïðïßïò
	áíáãíùñßæåé ùò äéåñìçíÝá (interpreter) ôïõò ÷áñáêôÞñåò áðü ôï åðüìåíï
        êåíü ìåôÜ ôï <literal>!</literal> êáé ìÝ÷ñé ôï ôÝëïò, åíþ áí äåí
        áíáãíùñéóôåß êÜðïéïò, ÷ñçóéìïðïéåßôáé ùò Ýó÷áôç ëýóç ôï
        <filename>/bin/sh</filename>.</para>

      <indexterm><primary>ELF</primary></indexterm>
      <para>Ãéá ôçí õðïóôÞñéîç ôïõ Linux ABI, ôï &os; âëÝðåé ôïí ìáãéêü
	áñéèìü ôïõ ELF binary (äå áíáãíùñßæåé ôç äéáöïñÜ áíÜìåóá  óå
        &os;, &solaris;, Linux, Þ êÜðïéï Üëëï ëåéôïõñãéêü óýóôçìá ôï ïðïßï
        ÷ñçóéìïðïéåß áñ÷åßá ôýðïõ ELF).</para>

      <indexterm><primary>Solaris</primary></indexterm>
      <para>Ï öïñôùôÞò ELF êïéôÜåé ãéá Ýíá åéäéêü <emphasis>brand</emphasis>,
	ôï ïðïßï åßíáé ìéá åíüôçôá ó÷ïëßùí ìÝóá óôï ELF image, êáé ôï ïðïßï
        äåí õðÜñ÷åé óå ELF binaries ãéá SVR4/&solaris;</para>

      <para>Ãéá íá ëåéôïõñãÞóïõí ôá åêôåëÝóéìá ôïõ Linux, èá ðñÝðåé íá
	ãßíïõí <emphasis>branded</emphasis> (ìáñêáñéóôïýí)  ùò
        <literal>Linux</literal> ìÝóù ôçò &man.brandelf.1;:</para>

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

      <para>¼ôáí ãßíåé áõôü, ï öïñôùôÞò ELF èá âëÝðåé ôï
        <literal>Linux</literal> brand ðÜíù óôï áñ÷åßï.</para>
      <indexterm>
        <primary>ELF</primary>
	<secondary>branding</secondary>
      </indexterm>

      <para>¼ôáí ï öïñôùôÞò ELF äåé ôï <literal>Linux</literal> brand, èá
	áíôéêáôáóôÞóåé Ýíáí äåßêôç ìÝóá óôç äïìÞ <literal>proc</literal>.
        ¼ëåò ïé  êëÞóåéò ôïõ óõóôÞìáôïò ôáîéíïìïýíôáé ìÝóá áðü áõôüí ôïí
        äåßêôç (óå Ýíá ðáñáäïóéáêü óýóôçìá &unix;, ï äåßêôçò èá Þôáí ï
	ðßíáêáò <literal>sysent[]</literal>, ðïõ ðåñéÝ÷åé ôéò êëÞóåéò
	ôïõ óõóôÞìáôïò (system calls)). ÅðéðëÝïí, ç äéåñãáóßá óçìåéþíåôáé ãéá
	åéäéêÞ ìåôá÷åßñéóç ôïõ trap vector êáé Üëëåò (ìéêñÝò) äéïñèþóåéò,
        ôéò ïðïßåò ÷åéñßæåôáé ôï Üñèñùìá ðõñÞíá ôçò óõìâáôüôçôáò Linux.</para>

      <para>Ôï system call vector ôïõ  Linux ðåñéÝ÷åé, ìåôáîý Üëëùí, ìéá ëßóôá
        ìå ôá äåäïìÝíá ôïõ <literal>sysent[]</literal> ôùí ïðïßùí
        ïé äéåõèýíóåéò âñßóêïíôáé ìÝóá óôï Üñèñùìá ôïõ ðõñÞíá.</para>

      <para>¼ôáí ãßíåôáé ìéá êëÞóç óõóôÞìáôïò áðü ìéá åöáñìïãÞ Linux, ï
	êþäéêáò (trap code) ôñïðïðïéåß ôïí äåßêôç ôçò ìÝóù ôçò äïìÞò ðïõ Ý÷åé
        åããñáöåß óôï <literal>proc</literal>, êáé áëëÜæåé ôçí äéåýèõíóç þóôå
        íá äåß÷íåé óôï óçìåßï åéóüäïõ ôçò óõíÜñôçóçò ôïõ Linux, êáé ü÷é ôïõ
        &os;.</para>

      <para>Åðßóçò, ôï óýóôçìá óõìâáôüôçôáò ìå Linux ìðïñåß êáé ðñïóáñìüæåé
        äõíáìéêÜ ôéò ôïðïèåóßåò áíáæÞôçóçò. ÏõóéáóôéêÜ áõôü êÜíåé êáé ç
	åðéëïãÞ <option>union</option> êáôÜ ôçí ðñïóÜñôçóç åíüò óõóôÞìáôïò
        áñ÷åßùí (<emphasis>äåí</emphasis> åííïïýìå åäþ ôï óýóôçìá
	áñ÷åßùí <literal>unionfs</literal>!). Áñ÷éêÜ, ãßíåôáé áðüðåéñá íá
	âñåèåß ôï áñ÷åßï óôïí êáôÜëïãï
	<filename>/compat/linux/<replaceable>original-path</replaceable></filename>, <emphasis>êáé ìüíï</emphasis>
	áí áõôü áðïôý÷åé, èá ãßíåé áíáæÞôçóç óôïí êáôÜëïãï
	<filename>/<replaceable>original-path</replaceable></filename>. Ìå
        ôïí ôñüðï áõôü óéãïõñåýïõìå üôé ôá åêôåëÝóéìá ðïõ ÷ñåéÜæïíôáé Üëëá
        åêôåëÝóéìá èá ôñÝîïõí (ãéá ðáñÜäåéãìá, ôï óýíïëï åñãáëåßùí ôïõ
        Linux ìðïñåß íá åêôåëåóôåß ìÝóù ôçò õðïóôÞñéîçò ôïõ Linux ABI). Åðßóçò
        óçìáßíåé üôé ôá åêôåëÝóéìá ôïõ Linux ìðïñïýí íá öïñôþóïõí êáé íá
        åêôåëÝóïõí áñ÷åßá ôïõ &os; áí äåí ìðïñïýí íá åíôïðßóïõí ôá áíôßóôïé÷á
        áñ÷åßá óôï Linux. Ìðïñåßôå åðßóçò íá ôïðïèåôÞóåôå ìéá åíôïëÞ
	&man.uname.1; ìÝóá óôï <filename>/compat/linux</filename> ðñïêåéìÝíïõ
        ôá áñ÷åßá ôïõ Linux íá ìç ìðïñïýí íá áíáãíùñßóïõí üôé äåí
        ÷ñçóéìïðïéïýíôáé ðñáãìáôéêÜ óå Linux.</para>

      <para>ÏõóéáóôéêÜ, õðÜñ÷åé Ýíáò ðõñÞíáò Linux ìÝóá óôïí ðõñÞíá
	ôïõ &os;.  Ïé äéÜöïñåò ëåéôïõñãßåò ïé ïðïßåò õëïðïéïýí üëåò ôéò
	õðçñåóßåò ðïõ ðáñÝ÷ïíôáé áðü ôïí ðõñÞíá åßíáé ßäéåò ôüóï óôïí ðßíáêá
        êëÞóåùí óõóôÞìáôïò ôïõ &os; üóï êáé óôïí áíôßóôïé÷ï ôïõ Linux:
	ëåéôïõñãßåò ôïõ óõóôÞìáôïò áñ÷åßùí, åéêïíéêÞ ìíÞìç, äéá÷åßñéóç
        óçìÜôùí, System V IPC êëð.  Ç ìüíç äéáöïñÜ åßíáé üôé ôï åêôåëÝóéìá
        ôïõ &os; êÜíïõí ÷ñÞóç ôùí óõíáñôÞóåùí <emphasis>glue</emphasis> ôïõ
        &os;, åíþ ôá åêôåëÝóéìá ôïõ Linux, êÜíïõí ÷ñÞóç ôùí óõíáñôÞóåùí
        <emphasis>glue</emphasis> ôïõ Linux (ðïëëÜ áðü ôá ðáëéÜ ëåéôïõñãéêÜ
        åß÷áí ôéò äéêÝò ôïõò óõíáñôÞóåéò <emphasis>glue</emphasis>: ïé
        äéåõèýíóåéò ôùí óõíáñôÞóåùí âñßóêïíôáí óôï óôáôéêü ðßíáêá
        <literal>sysent[]</literal>, áíôß íá äéåõêñéíßæïíôáé ìÝóù åíüò
        äõíáìéêïý äåßêôç óôç äïìÞ <literal>proc</literal> ôçò äéåñãáóßáò ðïõ
        ðñáãìáôïðïéåß ôçí êëÞóç).</para>

      <para>Ðïéï åßíáé üìùò ôï åããåíÝò &os; ABI; Äåí Ý÷åé êáé ðïëý óçìáóßá.
	Ç ìüíç âáóéêÞ äéáöïñÜ åßíáé (êÜôé ôï ïðïßï ìðïñåß åýêïëá íá
	áëëÜîåé óå ìåëëïíôéêÝò åêäüóåéò, êáé ðïëý ðéèáíüí íá áëëÜîåé) üôé
        ïé óõíáñôÞóåéò <emphasis>glue</emphasis> ôïõ &os; åßíáé óôáôéêÜ
        óõíäåäåìÝíåò óôï ðõñÞíá, åíþ ïé áíôßóôïé÷åò ôïõ Linux ìðïñïýí åßôå íá
        åßíáé óõíäåäåìÝíåò óôáôéêÜ, åßôå íá åßíáé ðñïóâÜóéìåò ìÝóù åíüò
        áñèñþìáôïò ðõñÞíá.</para>

      <para>Åßíáé áõôü üìùò ðñáãìáôéêÞ åîïìïßùóç; ¼÷é.  Åßíáé ìéá õëïðïßçóç
	ôïõ ABI, ü÷é åîïìïßùóç. Äåí õðÜñ÷åé êáìßá åîïìïßùóç (Þ ðñïóïìïßùóç,
	ãéá íá ðñïëÜâïõìå ôçí åðüìåíç óáò åñþôçóç).</para>

      <para>Ôüôå ãéáôß ìåñéêÝò öïñÝò ìéëÜìå ãéá <quote>åîïìïßùóç
	Linux</quote>; Ãéá íá äõóêïëåõôåß ç ðñïþèçóç ôïõ &os;! Ç áñ÷éêÞ
        õëïðïßçóç Ýãéíå ôçí åðï÷Þ üðïõ äåí õðÞñ÷å Üëëç ëÝîç ðïõ íá ìðïñïýóå
        íá ðåñéãñÜøåé ôï ôé áêñéâþò ãéíüôáí. Ôï íá
	ëÝãáìå üôé ôï &os; Ýôñå÷å åêôåëÝóéìá Linux äåí èá Þôáí áëÞèåéá,
        ìéá êáé ÷ñåéáæüôáí íá åíóùìáôùèåß êÜðïéïò êþäéêáò óôïí ðõñÞíá, Þ íá
        öïñôùèåß êÜðïéï Üñèñùìá. ×ñåéáæüôáí êÜðïéá ëÝîç ðïõ íá ðåñéãñÜöåé ôé
	öïñôùíüôáí&mdash;Ýôóé ðñïÝêõøå ï <quote>åîïìïéùôÞò Linux</quote>.
      </para>
    </sect2>
  </sect1>
</chapter>