doc/el_GR.ISO8859-7/books/handbook/linuxemu/chapter.sgml
Giorgos Keramidas c62d5942d6 When editing or merging these files with UTF-8 as the default
character set, they may be replaced/re-encoded.  Try to inhibit
auto-conversion to UTF-8, until we (inevitably?) switch to
el_GR.UTF-8 some time in the future.

Obtained from:	FreeBSD Greek Documentation Project
2008-12-08 03:10:54 +00:00

3692 lines
136 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--
Το Εγχειρίδιο του FreeBSD: Συμβατότητα με Εκτελέσιμα του Linux
The FreeBSD Greek Documentation Project
$FreeBSD$
%SOURCE% en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml
%SRCID% 1.136
-->
<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><trademark class="registered">RealPlayer</trademark></application>,
<application><trademark>VMware</trademark></application>,
<application>&oracle;</application>,
<application><trademark class="registered">WordPerfect</trademark></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</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 από
τη <ulink type="html" url="file://localhost/usr/ports/">Συλλογή των
Ports</ulink>. Απλά κάντε το παρακάτω:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_base-fc4</userinput>
&prompt.root; <userinput>make install distclean</userinput></screen>
<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>Ρύθμιση του 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>
<note><para>Για τον εξυπηρετητή <application>&xfree86;</application>,
το αρχείο ρυθμίσεων είναι το <filename>XF86Config</filename>.</para>
</note>
<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>#!/usr/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="sapr3">
<sect1info>
<authorgroup>
<author>
<firstname>Holger</firstname>
<surname>Kipp</surname>
<contrib>Συνεισφορά του </contrib>
</author>
</authorgroup>
<!-- holger.kipp@alogis.com -->
<authorgroup>
<author>
<firstname>Valentino</firstname>
<surname>Vaschetto</surname>
<contrib>Αρχική μετατροπή σε SGML από τον </contrib>
</author>
</authorgroup>
</sect1info>
<title>Εγκατάσταση του &sap.r3;</title>
<indexterm>
<primary>applications</primary>
<secondary><application>SAP R/3</application></secondary>
</indexterm>
<para>Η εγκατάσταση συστημάτων <application>&sap;</application>
χρησιμοποιώντας το &os; δεν υποστηρίζεται από την ομάδα υποστήριξης της
&sap; &mdash; υποστήριξη παρέχεται μόνο σε συγκεκριμένες,
υποστηριζόμενες, πλατφόρμες.</para>
<sect2 id="preface">
<title>Εισαγωγή</title>
<para>Το κείμενο αυτό περιγράφει ένα πιθανό τρόπο για την εγκατάσταση
του <application>&sap.r3; System</application> με μία βάση
δεδομένων <application>&oracle;</application> για Linux σε ένα σύστημα
&os;, περιλαμβάνοντας την εγκατάσταση του &os;
και της <application>&oracle;</application>. Θα περιγράψουμε δύο
διαφορετικά είδη ρυθμίσεων:</para>
<itemizedlist>
<listitem>
<para><application>&sap.r3; 4.6B (IDES)</application>
με <application>&oracle; 8.0.5</application> σε &os;
4.3-STABLE</para>
</listitem>
<listitem>
<para><application>&sap.r3; 4.6C</application>
με <application>&oracle; 8.1.7</application> σε &os;
4.5-STABLE</para>
</listitem>
</itemizedlist>
<para>Παρ' όλο που αυτό το κείμενο προσπαθεί να περιγράψει με
λεπτομέρειες όλα τα απαραίτητα βήματα, δεν θα πρέπει να θεωρηθεί ως
αντικαταστάτης των οδηγών εγκατάστασης
της <application>&oracle;</application> και
του <application>&sap.r3;</application>.</para>
<para>Δείτε τον οδηγό του <application>&sap.r3;</application> για Linux
για ερωτήσεις σχετικά με το <application>&sap;</application>
και την <application>&oracle;</application>, και για πηγές από
την <application>&oracle;</application> και το <application>&sap;
OSS</application>.</para>
</sect2>
<sect2 id="software">
<title>Λογισμικό</title>
<para>Τα ακόλουθα CD-ROMs έχουν χρησιμοποιηθεί για την εγκατάσταση
του <application>&sap;</application>:</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>Όνομα</entry> <entry>Αρίθμηση</entry>
<entry>Περιγραφή</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>Επιπλέον, χρησιμοποιήσαμε το <application>&oracle; 8
Server</application> (Pre-production version 8.0.5 για Linux, Kernel
Version 2.0.33) CD το οποίο δεν είναι απαραίτητο, και το &os;
4.3-STABLE (ένα στιγμιότυπο λίγες μόνο μέρες μετά την έκδοση
4.3-RELEASE).</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>Όνομα</entry> <entry>Αρίθμηση</entry>
<entry>Περιγραφή</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>Αναλόγως με τις γλώσσες που θέλετε να εγκαταστήσετε, θα
χρειαστείτε επιπλέον τα αντίστοιχα CDs. Εμείς χρησιμοποιούμε
Γερμανικά (DE) και Αγγλικά (EN), οπότε χρειαζόμαστε μόνο το πρώτο
CD. Μια μικρή σημείωση, η αρίθμηση των EXPORT CDs είναι ακριβώς η
ίδια. Όλα τα CDs των γλωσσών έχουν την ίδια αρίθμηση (αυτό διαφέρει
σε σχέση με την αρίθμηση της έκδοσης 4.6B IDES). Την ώρα που
γράφονται αυτές οι γραμμές, η εγκατάσταση λειτουργεί σε &os;
4.5-STABLE (20.03.2002).</para>
</sect3>
</sect2>
<sect2 id="sap-notes">
<title>Σημειώσεις &sap;</title>
<para>Οι ακόλουθες σημειώσεις θα πρέπει να διαβαστούν πριν την
εγκατάσταση του <application>&sap.r3;</application> μια και είναι
χρήσιμες για τη διαδικασία εγκατάστασης:</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>Αρίθμηση</entry>
<entry>Τίτλος</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>Αρίθμηση</entry>
<entry>Τίτλος</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>Απαιτήσεις Συστήματος</title>
<para>Ο ακόλουθος εξοπλισμός είναι αρκετός για μια τυπική εγκατάσταση
του <application>&sap.r3; System</application>. Για μηχανήματα
παραγωγής θα χρειαστείτε φυσικά καλύτερη εκτίμηση των απαιτήσεων
σας:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>Εξάρτημα</entry>
<entry>4.6B</entry>
<entry>4.6C</entry>
</row>
</thead>
<tbody>
<row>
<entry>Επεξεργαστής</entry>
<entry>2 x 800MHz &pentium; III</entry>
<entry>2 x 800MHz &pentium; III</entry>
</row>
<row>
<entry>Μνήμη</entry>
<entry>1GB ECC</entry>
<entry>2GB ECC</entry>
</row>
<row>
<entry>Σκληρός Δίσκος</entry>
<entry>50-60GB (IDES)</entry>
<entry>50-60GB (IDES)</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Για χρήση σε παραγωγή, θα χρειαστείτε επεξεργαστές &xeon; με
μεγάλη μνήμη cache, δίσκους υψηλής ταχύτητας (SCSI, με hardware
ελεγκτή RAID), USV και ECC-RAM. Το μεγάλο μέγεθος του σκληρού δίσκου,
οφείλεται στο προρυθμισμένο σύστημα IDES, που δημιουργεί 27&nbsp;GB
αρχεία βάσης δεδομένων κατά τη διάρκεια της εγκατάστασης. Ο χώρος
αυτός επαρκεί επίσης για τα δεδομένα της εφαρμογής σε ένα αρχικό
σύστημα παραγωγής.</para>
<sect3 id="hardware-46b">
<title>&sap.r3; 4.6B, &oracle; 8.0.5</title>
<para>Χρησιμοποιήθηκαν τα ακόλουθα κοινά εξαρτήματα: μητρική για δύο
επεξεργαστές με 2 &pentium;&nbsp;III στα 800&nbsp;MHZ,
ελεγκτή SCSI &adaptec; 29160 Ultra160 (για πρόσβαση σε οδηγό
ταινίας 40/80&nbsp;GB DLT και στο CDROM), &mylex; &acceleraid;
(2 καναλιών, firmware 6.00-1-00 με 32&nbsp;MB RAM). Στο &mylex;
RAID controller είναι συνδεδεμένοι δύο σκληροί δίσκοι των
17&nbsp;GB (mirrored) και τέσσερις των 36&nbsp;GB (RAID level 5).
</para>
</sect3>
<sect3 id="hardware-46c">
<title>&sap.r3; 4.6C, &oracle; 8.1.7</title>
<para>Σε αυτή την εγκατάσταση χρησιμοποιήσαμε έναν &dell; &poweredge;
2500: μητρική με δύο επεξεργαστές &pentium;&nbsp;III στα 1000&nbsp;MHz
(256&nbsp;kB Cache), 2&nbsp;GB PC133 ECC SDRAM, PERC/3 DC PCI RAID
Controller με 128&nbsp;MB, και οδηγό EIDE DVD-ROM. Στο RAID
controller είναι συνδεδεμένοι δύο σκληροί δίσκοι των 18&nbsp;GB
(mirrored) και τέσσερις των 36&nbsp;GB (RAID level 5).</para>
</sect3>
</sect2>
<sect2 id="installation">
<title>Εγκατάσταση του &os;</title>
<para>Αρχικά πρέπει να εγκαταστήσετε το &os;. Αυτό μπορεί να γίνει με
διάφορους τρόπους, για περισσότερες πληροφορίες δείτε
στο <xref linkend="install-diff-media">.</para>
<sect3 id="disk-layout">
<title>Διάταξη Δίσκου</title>
<para>Για να κρατήσουμε τη διαδικασία απλή, χρησιμοποιήσαμε την ίδια
διάταξη δίσκου, τόσο στο <application>&sap.r3; 46B</application>
όσο και στο <application>&sap.r3; 46C SR2</application>. Μόνο τα
ονόματα των συσκευών άλλαξαν, καθώς η κάθε εγκατάσταση έγινε σε
διαφορετικό μηχάνημα. (<filename>/dev/da</filename>
και <filename>/dev/amr</filename> αντίστοιχα, οπότε αν
χρησιμοποιείτε έναν AMI &megaraid;, θα δείτε
το <filename>/dev/amr0s1a</filename> αντί
του <filename>/dev/da0s1a</filename>):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="4">
<thead>
<row>
<entry>Σύστημα αρχείων</entry>
<entry>Μέγεθος (1k-blocks)</entry>
<entry>Μέγεθος (GB)</entry>
<entry>Προσάρτηση στο</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>Ρυθμίστε από πριν τους δύο δίσκους με το λογισμικό &mylex; ή
το PERC/3 RAID. Μπορείτε να εισέλθετε σε αυτό κατά τη φάση
εκκίνησης του <acronym>BIOS</acronym>.</para>
<para> Προσέξτε εδώ ότι η διάταξη του δίσκου διαφέρει λίγο ως προς
τη συνιστώμενη από τη &sap;, καθώς η &sap; προτείνει να
προσαρτήσετε τους υποκαταλόγους της
<application>&oracle;</application> (και κάποιους άλλους) ξεχωριστά
&mdash; εμείς προτιμήσαμε, για λόγους απλότητας, να δημιουργήσουμε
κανονικούς καταλόγους.</para>
</sect3>
<sect3 id="makeworldandnewkernel">
<title><command>make world</command> και Νέος Πυρήνας</title>
<para>Κατεβάστε τον πηγαίο κώδικα του τελευταίου πυρήνα
-STABLE. Μεταγλωττίστε το world (βασικό σύστημα) και τον πυρήνα σας
αφού δημιουργήσετε πρώτα ένα προσαρμοσμένο αρχείο ρυθμίσεων
πυρήνα. Εδώ θα πρέπει να συμπεριλάβετε και τις
<link linkend="kerneltuning">παραμέτρους
πυρήνα (kernel parameters)</link> οι οποίες χρειάζονται τόσο για
το <application>&sap.r3;</application> όσο και
την <application>&oracle;</application>.</para>
</sect3>
</sect2>
<sect2 id="installingthelinuxenviornment">
<title>Εγκατάσταση του Περιβάλλοντος Linux</title>
<sect3 id="installinglinuxbase-system">
<title>Εγκατάσταση του Linux Base System</title>
<para>Αρχικά χρειάζεται να έχετε εγκαταστήσει
το <link linkend="linuxemu-libs-port">linux_base</link> port (ως
χρήστης <username>root</username>):</para>
<screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_base</userinput>
&prompt.root; <userinput>make install distclean</userinput></screen>
</sect3>
<sect3 id="installinglinuxdevelopment">
<title>Εγκατάσταση του Περιβάλλοντος Ανάπτυξης Linux</title>
<para>Το περιβάλλον ανάπτυξης Linux χρειάζεται αν θέλετε να
εγκαταστήσετε την <application>&oracle;</application> στο &os; όπως
περιγράφεται στο <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>Εγκαταστήσαμε το περιβάλλον ανάπτυξης Linux μόνο για την
εγκατάσταση του <application>&sap.r3; 46B IDES</application>. Αν
έχετε εγκαταστήσει την <application>&oracle; DB</application> από
την <application>&oracle;</application> για συστήματα Linux, τότε
δεν χρειάζεται να σας απασχολεί.</para>
</sect3>
<sect3 id="installingnecessaryrpms">
<title>Εγκατάσταση των Απαραίτητων RPMs</title>
<indexterm><primary>RPMs</primary></indexterm>
<para>Για να ξεκινήσει το πρόγραμμα <command>R3SETUP</command>,
χρειάζεται να υπάρχει υποστήριξη PAM. Κατά τη διάρκεια της
πρώτης εγκατάστασης του <application>&sap;</application> στο &os;
4.3-STABLE, προσπαθήσαμε να εγκαταστήσουμε το PAM με όλα τα
απαραίτητα πακέτα και τελικά εξαναγκάσαμε την εγκατάσταση του
πακέτου PAM, το οποίο και δούλεψε. Για το
<application>&sap.r3; 4.6C SR2</application> εξαναγκάσαμε άμεσα
την εγκατάσταση του πακέτου PAM, το οποίο επίσης δούλεψε, πράγμα
που σημαίνει ότι τα πακέτα που αναφέρονται ως εξαρτήσεις του, δεν
χρειάζονται:</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>Για τον intelligent agent του <application>&oracle;
8.0.5</application>, έπρεπε να εγκαταστήσουμε το πακέτο Tcl της
RedHat <filename>tcl-8.0.5-30.i386.rpm</filename> (διαφορετικά η
επανασύνδεση κατά τη διάρκεια της εγκατάστασης
της <application>&oracle;</application> δεν θα ήταν εφικτή).
Υπάρχουν και κάποια άλλα προβλήματα σχετικά με τη επανασύνδεση
της <application>&oracle;</application>, αλλά αυτό είναι θέμα
της <application>&oracle;</application> για Linux, και όχι του
&os;.</para>
</sect3>
<sect3 id="linuxprocandfallbackelfbrand">
<title>Επιπλέον Συμβουλές</title>
<para>Ίσως είναι επίσης καλή ιδέα να προσθέσετε
το <literal>linprocfs</literal>
στο <filename>/etc/fstab</filename>. Για περισσότερες πληροφορίες,
δείτε τη σελίδα manual &man.linprocfs.5;. Μια άλλη παράμετρος που
μπορείτε να ορίσετε είναι
η <literal>kern.fallback_elf_brand=3</literal> η οποία ορίζεται στο
αρχείο <filename>/etc/sysctl.conf</filename>.</para>
</sect3>
</sect2>
<sect2 id="creatingsapr3env">
<title>Δημιουργία του Περιβάλλοντος &sap.r3;</title>
<sect3 id="filesystemsandmountpoints">
<title>Δημιουργία των Απαραιτήτων Συστημάτων Αρχείων και
Προσαρτήσεων</title>
<para>Για μια απλή εγκατάσταση, αρκεί να δημιουργήσετε τα παρακάτω
συστήματα αρχείων και προσαρτήσεις:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>σημείο προσάρτησης</entry>
<entry>μέγεθος σε 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>Είναι επίσης απαραίτητο να δημιουργήσετε και μερικούς
συνδέσμους. Διαφορετικά το πρόγραμμα εγκατάστασης
του <application>&sap;</application> θα παραπονεθεί:</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>Ένα πιθανό μήνυμα σφάλματος κατά τη διάρκεια της εγκατάστασης
(εδώ με System <emphasis>PRD</emphasis> και εγκατάσταση
του <application>&sap.r3; 4.6C SR2</application>):</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>Δημιουργία Χρηστών και Καταλόγων</title>
<para>Το <application>&sap.r3;</application> χρειάζεται δύο χρήστες
και τρεις ομάδες (groups). Τα ονόματα των χρηστών εξαρτώνται από
το <application>&sap;</application> system ID (SID) το οποίο
αποτελείται από τρία γράμματα. Μερικά από αυτά τα SIDs είναι
δεσμευμένα από το <application>&sap;</application> (για παράδειγμα
τα <literal>SAP</literal> και <literal>NIX</literal>. Για πλήρη
λίστα δείτε την τεκμηρίωση του <application>&sap;</application>).
Για την εγκατάσταση IDES, χρησιμοποιήσαμε <literal>IDS</literal>,
για την εγκατάσταση στο σύστημα 4.6C SR2 χρησιμοποιήσαμε
<literal>PRD</literal>, καθώς αυτό το σύστημα προορίζεται για χρήση
παραγωγής. Επομένως, χρειαστήκαμε τις ακόλουθες ομάδες (τα ID των
ομάδων μπορούν να διαφέρουν, αυτές είναι απλώς οι τιμές που
χρησιμοποιήσαμε στη δική μας εγκατάσταση):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>ID ομάδας</entry>
<entry>όνομα ομάδας</entry>
<entry>περιγραφή</entry>
</row>
</thead>
<tbody>
<row>
<entry>100</entry>
<entry>dba</entry>
<entry>Data Base Administrator (Διαχειριστής Βάσης
Δεδομένων)</entry>
</row>
<row>
<entry>101</entry>
<entry>sapsys</entry>
<entry>&sap; System</entry>
</row>
<row>
<entry>102</entry>
<entry>oper</entry>
<entry>Data Base Operator (Χειριστής Βάσης Δεδομένων)</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Για τη τυπική εγκατάσταση
της <application>&oracle;</application>, θα χρειαστείτε μόνο την
ομάδα <groupname>dba</groupname> (δείτε τη τεκμηρίωση
της <application>&oracle;</application> και
του <application>&sap;</application> για περισσότερες
πληροφορίες).</para>
<para>Θα χρειαστούμε επίσης τους ακόλουθους χρήστες:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="6">
<thead>
<row>
<entry>ID χρήστη</entry>
<entry>όνομα χρήστη</entry>
<entry>γενικό όνομα</entry>
<entry>αρχική ομάδα</entry>
<entry>επιπλέον ομάδες</entry>
<entry>περιγραφή</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>Η προσθήκη των χρηστών με την εντολή &man.adduser.8; απαιτεί
τις ακόλουθες καταχωρήσεις για τον
<quote>&sap; Administrator</quote> (προσέξτε το shell και τον
κατάλογο home):</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>και για τον <quote>&oracle; Administrator</quote>:</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>Θα πρέπει να περιλάβετε και την ομάδα
<groupname>oper</groupname> σε περίπτωση που χρησιμοποιήσετε
και τις δύο ομάδες <groupname>dba</groupname>
και <groupname>oper</groupname>.</para>
</sect3>
<sect3 id="creatingdirectories">
<title>Δημιουργία Καταλόγων</title>
<para>Οι παρακάτω κατάλογοι δημιουργούνται συνήθως ως ξεχωριστά
συστήματα αρχείων. Αυτό όμως εξαρτάται από τις απαιτήσεις σας.
Εμείς επιλέξαμε να τους δημιουργήσουμε ως απλούς καταλόγους,
καθώς όλοι τους βρίσκονται στο ίδιο RAID 5:</para>
<para>Αρχικά θα χρειαστεί να ορίσουμε ιδιοκτήτες και άδειες σε
κάποιους καταλόγους (ως χρήστης <username>root</username>):</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>Σε δεύτερη φάση θα δημιουργήσουμε τους καταλόγους ως χρήστης
<username>ora<replaceable>sid</replaceable></username>. Όλοι αυτοί
οι κατάλογοι υπάγονται
στον <filename>/oracle/<replaceable>SID</replaceable></filename>:
</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>Για την εγκατάσταση της <application>&oracle;
8.1.7</application>, θα χρειαστούν μερικοί κατάλογοι ακόμη:</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>Ο κατάλογος <filename>client/80x_32</filename>
χρησιμοποιείται με αυτό ακριβώς το όνομα. Μην αντικαταστήσετε το
<emphasis>x</emphasis> με κάποιον αριθμό ή κάτι άλλο.</para></note>
<para>Στο τρίτο βήμα δημιουργούμε τους καταλόγους ως χρήστης
<username><replaceable>sid</replaceable>adm</username>:</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>Εγγραφές στο <filename>/etc/services</filename></title>
<para>Το <application>&sap.r3;</application> χρειάζεται μερικές
εγγραφές στο αρχείο <filename>/etc/services</filename>, οι οποίες
δεν εισάγονται κατά τη διάρκεια της εγκατάστασης του &os;. Προσθέστε
τις παρακάτω εγγραφές (θα χρειαστείτε τουλάχιστον τις εγγραφές που
αντιστοιχούν στο instance της εφαρμογής που τρέχετε &mdash;
στη περίπτωση μας, το <literal>00</literal>. Δεν θα υπάρξει κανένα
πρόβλημα αν προσθέσετε όλες τις εγγραφές από το
<literal>00</literal> ως το <literal>99</literal> για
τα <literal>dp</literal>, <literal>gw</literal>,
<literal>sp</literal> και <literal>ms</literal>). Αν πρόκειται να
χρησιμοποιήσετε <application>SAProuter</application> ή χρειάζεστε
πρόσβαση στο <application>&sap;</application> OSS, θα χρειαστείτε
και την εγγραφή <literal>99</literal>, μια και η θύρα 3299
χρησιμοποιείται συχνά από την διεργασία του
<application>SAProuter</application>:</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>Απαραίτητες Τοπικές Ρυθμίσεις</title>
<indexterm><primary>locale</primary></indexterm>
<para>Το <application>&sap;</application> απαιτεί τουλάχιστον δύο
τοπικές ρυθμίσεις (locales) που δεν ανήκουν στις προεπιλεγμένες που
εγκαθιστά το RedHat. Το &sap; προσφέρει τα απαιτούμενα RPMs για να
τα κατεβάσετε από τον δικό τους διακομιστή FTP (ο οποίος είναι
διαθέσιμος μόνο αν είστε πελάτης με πρόσβαση OSS). Δείτε τη
σημείωση 0171356 για τη λίστα από πακέτα RPMs που χρειάζεστε.</para>
<para>Είναι επίσης εφικτό να δημιουργήσετε απλώς τους κατάλληλους
συνδέσμους (για παράδειγμα από τα <emphasis>de_DE</emphasis>
και <emphasis>en_US</emphasis>), αλλά προτείνουμε να μη κάνετε κάτι
τέτοιο αν πρόκειται για μηχάνημα παραγωγής (ωστόσο αυτό έχει μέχρι
στιγμής δουλέψει χωρίς πρόβλημα σε σύστημα IDES). Θα
χρειαστείτε τις ακόλουθες τοπικές ρυθμίσεις:</para>
<programlisting>de_DE.ISO-8859-1
en_US.ISO-8859-1</programlisting>
<para>Οι σύνδεσμοι μπορούν να δημιουργηθούν με τον ακόλουθο τρόπο:
</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>Αν οι σύνδεσμοι δεν υπάρχουν, θα δημιουργηθούν προβλήματα κατά
την εγκατάσταση. Αν αγνοήσετε αυτά τα προβλήματα, (ορίζοντας
το <literal>STATUS</literal> των προβληματικών βημάτων
σε <literal>OK</literal> στο
αρχείο <filename>CENTRDB.R3S</filename>), ίσως είναι αδύνατο να
συνδεθείτε στο <application>&sap;</application> χωρίς κάποια
επιπλέον προσπάθεια και σπατάλη χρόνου.</para>
</sect3>
<sect3 id="kerneltuning">
<title>Ρύθμιση του Πυρήνα</title>
<indexterm><primary>kernel tuning</primary></indexterm>
<para>Το <application>&sap.r3;</application> χρειάζεται αρκετούς
πόρους από το σύστημά σας. Για αυτό το λόγο ορίσαμε τις παρακάτω
παραμέτρους στις ρυθμίσεις του πυρήνα:</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 identifiers
options SEMUME=100 #number of UNDO keys</programlisting>
<para>Οι ελάχιστες τιμές που θέτουμε προέρχονται από τη τεκμηρίωση του
&sap;. Μια και δεν υπάρχουν οδηγίες για Linux, για περισσότερες
πληροφορίες, ρίξτε μια ματιά σε αυτές για το HP-UX (32-bit). Μια
και το σύστημα για την εγκατάσταση του 4.6C SR2 έχει περισσότερη
μνήμη, τα διαμοιραζόμενα τμήματα μπορούν να είναι μεγαλύτερα, τόσο
για το <application>&sap;</application> όσο και για την
<application>&oracle;</application>. Επομένως, επιλέξτε έναν
μεγαλύτερο αριθμό για τα shared memory pages.</para>
<note>
<para>Με την προεπιλεγμένη εγκατάσταση του &os; σε &i386;, αφήστε
τα <literal>MAXDSIZ</literal> και <literal>DFLDSIZ</literal> στο
1&nbsp;GB το πολύ. Διαφορετικά, μπορεί να δείτε να
εμφανίζονται περίεργα σφάλματα όπως <errorname>ORA-27102: out of
memory</errorname> και <errorname>Linux Error: 12: Cannot allocate
memory</errorname>
</para>
</note>
</sect3>
</sect2>
<sect2 id="installingsapr3">
<title>Εγκατάσταση του &sap.r3;</title>
<sect3 id="preparingsapcdroms">
<title>Προετοιμάζοντας τα &sap; CDROMs</title>
<para>Στη διαδικασία της εγκατάστασης εμπλέκονται αρκετά CDROMs. Αν
έχετε αρκετούς οδηγούς, θα μπορέσετε να τα προσαρτήσετε όλα με μιας
στο σύστημα σας. Εμείς αποφασίσαμε να αντιγράψουμε το περιεχόμενο
των CDROMs στους αντίστοιχους καταλόγους:</para>
<programlisting>/oracle/<replaceable>SID</replaceable>/sapreorg/<replaceable>cd-name</replaceable></programlisting>
<para>όπου <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> και
<filename>EXPORT6</filename> για την εγκατάσταση σε 4.6B/IDES, και
<filename>KERNEL</filename>, <filename>RDBMS</filename>,
<filename>DISK1</filename>, <filename>DISK2</filename>,
<filename>DISK3</filename>, <filename>DISK4</filename> και
<filename>LANG</filename> για την εγκατάσταση του 4.6C SR2. Όλα τα
ονόματα των αρχείων στα προσαρτημένα CDs θα πρέπει να είναι με
κεφαλαία, διαφορετικά κάντε χρήση της
επιλογής <option>-g</option> κατά την προσάρτηση. Χρησιμοποιείστε
λοιπόν τις παρακάτω εντολές:</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>Τρέξτε το Script της Εγκατάστασης</title>
<para>Αρχικά πρέπει να προετοιμάσετε τον
κατάλογο <filename class="directory">install</filename>:</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>Στη συνέχεια ξεκινήστε το script της εγκατάστασης, το οποίο θα
αντιγράψει όλα τα σχετικά αρχεία μέσα στον κατάλογο
<filename class="directory">install</filename>:</para>
<screen>&prompt.root; <userinput>/oracle/<replaceable>SID</replaceable>/sapreorg/KERNEL/UNIX/INSTTOOL.SH</userinput></screen>
<para>Η εγκατάσταση του IDES (4.6B) έρχεται με ένα πλήρως
προσαρμοσμένο σύστημα επίδειξης του &sap.r3;, έτσι υπάρχουν έξι
CD EXPORT αντί για τρία. Σε αυτό το σημείο το πρότυπο αρχείο
εγκατάστασης <filename>CENTRDB.R3S</filename> προορίζεται για την
εγκατάσταση του βασικού συστήματος (το ίδιο
το <application>&r3;</application> και τη βάση δεδομένων), όχι την
κεντρική εφαρμογή IDES, έτσι χρειάζεται να αντιγράψετε και το
αντίστοιχο <filename>CENTRDB.R3S</filename> από τον
κατάλογο <filename class="directory">EXPORT1</filename>, διαφορετικά
το <command>R3SETUP</command> θα ζητήσει μόνο τα τρία EXPORT CDs.
</para>
<para>Η νεότερη έκδοση <application>&sap; 4.6C SR2</application>
περιέχει τέσσερα EXPORT CD. Το αρχείο το οποίο ελέγχει τα βήματα της
εγκατάστασης είναι το <filename>CENTRAL.R3S</filename>. Σε αντίθεση
με τις προηγούμενες εκδόσεις, δεν υπάρχουν διαφορετικές μορφές
εγκατάστασης, για κεντρική εγκατάσταση με ή χωρίς βάση δεδομένων.
Το <application>&sap;</application> χρησιμοποιεί
πλέον μια διαφορετική διαδικασία για την εγκατάσταση της βάσης
δεδομένων. Αν θέλετε όμως να επανεκκινήσετε την εγκατάσταση
αργότερα, αρκεί να χρησιμοποιήσετε ξανά το αρχικό αρχείο.</para>
<para>Τόσο κατά τη διάρκεια όσο και μετά την εγκατάσταση,
το <application>&sap;</application> απαιτεί η εντολή
<command>hostname</command> να επιστρέφει μόνο το όνομα του
συστήματος σας και όχι το πλήρες όνομα (με τον τομέα). Επομένως,
είτε ρυθμίστε το όνομα με αυτό τον τρόπο, ή χρησιμοποιήστε κάποιο
alias δίνοντας <command>alias hostname='hostname -s'</command>
τόσο για τον
χρήστη <username>ora<replaceable>sid</replaceable></username> όσο
και για τον
χρήστη <username><replaceable>sid</replaceable>adm</username> (και
για τον <username>root</username> τουλάχιστον κατά την εγκατάσταση,
μιας και όλα τα βήματα γίνονται ως<username>root</username>). Είναι
επίσης πιθανό να τροποποιήσετε τα
αρχεία <filename>.profile</filename> και <filename>.login</filename>
των δύο χρηστών που δημιουργήθηκαν κατά τη διάρκεια εγκατάστασης του
<application>&sap;</application>.</para>
</sect3>
<sect3 id="startr3setup-46B">
<title>Εκκίνηση του <command>R3SETUP</command> 4.6B</title>
<para>Βεβαιωθείτε ότι το <envar>LD_LIBRARY_PATH</envar> έχει οριστεί
σωστά:</para>
<screen>&prompt.root; <userinput>export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/lib</userinput></screen>
<para>Ξεκινήστε το <command>R3SETUP</command>
ως <username>root</username> από τον κατάλογο εγκατάστασης:</para>
<screen>&prompt.root; <userinput>cd /oracle/IDS/sapreorg/install</userinput>
&prompt.root; <userinput>./R3SETUP -f CENTRDB.R3S</userinput></screen>
<para>Το script θα σας κάνει μερικές ερωτήσεις (οι προεπιλογές
φαίνονται σε αγκύλες,και ακολουθούνται από την τιμή που δόθηκε
ως είσοδος):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>Ερώτηση</entry>
<entry>Προεπιλογή</entry>
<entry>Είσοδος δεδομένων</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>Αν δεν έχετε αντιγράψει τα CDs σε διαφορετικούς καταλόγους,
τότε το πρόγραμμα εγκατάστασης
του <application>&sap;</application> δε θα μπορέσει να βρει τα CD τα
οποία χρειάζεται (και τα οποία αναγνωρίζονται από το
αρχείο <filename>LABEL.ASC</filename> που βρίσκεται μέσα σε αυτά)
και θα σας ζητηθεί να εισάγετε και προσαρτήσετε τα CD και να
επιβεβαιώσετε το σημείο προσάρτησης.</para>
<para>Το <filename>CENTRDB.R3S</filename> μπορεί όμως να παράγει
μερικά σφάλματα. Στη περίπτωσή μας, μας ζήτησε ξανά το EXPORT4 CD
αλλά μας έδειξε το σωστό κλειδί (6_LOCATION, μετά 7_LOCATION
κλπ.), και έτσι μπορείτε να συνεχίσετε βάζοντας τις σωστές τιμές.
</para>
<para>Εκτός από κάποια προβλήματα που αναφέρονται παρακάτω, η
εγκατάσταση θα πρέπει να κυλίσει ομαλά, μέχρι το σημείο που θα
χρειαστεί να εγκαταστήσετε τη βάση δεδομένων της &oracle;.</para>
</sect3>
<sect3 id="startr3setup-46C">
<title>Εκκίνηση του <command>R3SETUP</command> 4.6C SR2</title>
<para>Βεβαιωθείτε ότι έχετε ορίσει σωστά
το <envar>LD_LIBRARY_PATH</envar>. Η τιμή της μεταβλητής είναι
διαφορετική από την αντίστοιχη της εγκατάστασης του 4.6B με την
<application>&oracle; 8.0.5</application>:</para>
<screen>&prompt.root; <userinput>export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/lib</userinput></screen>
<para>Ξεκινήστε το <command>R3SETUP</command>
ως <username>root</username> από τον κατάλογο εγκατάστασης:</para>
<screen>&prompt.root; <userinput>cd /oracle/PRD/sapreorg/install</userinput>
&prompt.root; <userinput>./R3SETUP -f CENTRAL.R3S</userinput></screen>
<para>Tο script θα σας κάνει μερικές ερωτήσεις (οι προεπιλογές
φαίνονται σε αγκύλες και ακολουθούνται από την πραγματική
είσοδο):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>Ερώτηση</entry>
<entry>Προεπιλογή</entry>
<entry>Εισαγωγή δεδομένων</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>Μέχρι στιγμής, η δημιουργία χρηστών εμφανίζει ένα σφάλμα κατά
τη διάρκεια της εγκατάστασης, στις φάσεις των OSUSERDBSID_IND_ORA
(για τη δημιουργία του
χρήστη <username>ora<replaceable>sid</replaceable></username>) και
OSUSERSIDADM_IND_ORA (για τη δημιουργία του
χρήστη <username><replaceable>sid</replaceable>adm</username>).
</para>
<para>Εκτός από μερικά προβλήματα που αναφέρονται παρακάτω, όλα
θα πρέπει να κυλήσουν ήρεμα μέχρι την εγκατάσταση της βάσης
δεδομένων &oracle;.</para>
</sect3>
</sect2>
<sect2 id="installingoracle805">
<title>Εγκατάσταση της &oracle; 8.0.5</title>
<para>Παρακαλούμε, να δείτε τις αντίστοιχες σημειώσεις των &sap; και
&oracle; <filename>Readme</filename> σχετικά με τα προβλήματα που
μπορεί να προκύψουν κατά την εγκατάσταση του
<application>&oracle; DB</application> στο Linux. Τα περισσότερα,
αν όχι όλα, έχουν να κάνουν με ασυμβατότητα βιβλιοθηκών.</para>
<para>Για περισσότερες πληροφορίες σχετικά με την εγκατάσταση
της <application>&oracle;</application>, δείτε
το <link linkend="linuxemu-oracle">κεφάλαιο εγκατάστασης
της &oracle;.</link></para>
<sect3 id="installingtheoracle805withorainst">
<title>Εγκατάσταση του &oracle; 8.0.5 με
το <command>orainst</command></title>
<para>Αν πρόκειται να κάνετε χρήση της <application>&oracle;
8.0.5</application>, θα χρειαστείτε κάποιες επιπλέον βιβλιοθήκες
για επιτυχή επανασύνδεση (relinking), καθώς η
<application>&oracle; 8.0.5</application> είναι linked
με την παλιά έκδοση του glibc (RedHat 6.0), αλλά ήδη από το
RedHat 6.1 χρησιμοποιείται μια νέα έκδοση. Επομένως χρειάζεται να
εγκαταστήσετε επιπρόσθετα τα επόμενα πακέτα για να βεβαιωθείτε ότι
οι σύνδεσμοι θα δουλέψουν:</para>
<itemizedlist>
<listitem><para><filename>compat-libs-5.2-2.i386.rpm</filename></para></listitem>
<listitem><para><filename>compat-glibc-5.2-2.0.7.2.i386.rpm</filename></para></listitem>
<listitem><para><filename>compat-egcs-5.2-1.0.3a.1.i386.rpm</filename></para></listitem>
<listitem><para><filename>compat-egcs-c++-5.2-1.0.3a.1.i386.rpm</filename></para></listitem>
<listitem><para><filename>compat-binutils-5.2-2.9.1.0.23.1.i386.rpm</filename></para></listitem>
</itemizedlist>
<para>Για περισσότερες πληροφορίες δείτε τα αντίστοιχα &sap; Notes ή
&oracle; <filename>Readme</filename>. Αν όμως δεν έχετε αυτή
την επιλογή (κατά τη διάρκεια της εγκατάστασης δεν είχαμε αρκετό
χρόνο να το ελέγξουμε), μπορείτε να χρησιμοποιήσετε τα αρχικά
εκτελέσιμα ή εκτελέσιμα τα οποία έχουν γίνει relink σε ένα κανονικό
σύστημα RedHat.</para>
<para>Για να μεταγλωττίσετε τον intelligent agent, πρέπει να έχετε
εγκατεστημένο το πακέτο RedHat Tcl. Αν δεν μπορείτε να
βρείτε το <filename>tcl-8.0.3-20.i386.rpm</filename>, τότε το
νεότερο <filename>tcl-8.0.5-30.i386.rpm</filename> για RedHat 6.1 θα
πρέπει επίσης να δουλέψει.</para>
<para>Με εξαίρεση το relinking, η διαδικασία εγκατάστασης είναι
σχετικά απλή:</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>Επιβεβαιώστε όλα τα μηνύματα πατώντας <keycap>Enter</keycap> έως
ότου το λογισμικό εγκατασταθεί. Δεν θα πρέπει να επιλέξετε όμως
το <emphasis>&oracle; On-Line Text Viewer</emphasis>, μιας και δεν
είναι διαθέσιμο για Linux. Στην περίπτωση αυτή, η
<application>&oracle;</application> προσπαθεί να κάνει relink με
το <command>i386-glibc20-linux-gcc</command>
αντί του διαθέσιμου <command>gcc</command>, <command>egcs</command>
ή <command>i386-redhat-linux-gcc</command>.</para>
<para>Λόγω έλλειψης χρόνου, αποφασίσαμε να χρησιμοποιήσουμε τα
έτοιμα εκτελέσιμα της έκδοσης <application>&oracle; 8.0.5
PreProduction</application>, μετά από μια αποτυχημένη προσπάθεια να
κάνουμε την έκδοση από το RDBMS CD να δουλέψει, και η εύρεση και
πρόσβαση στα σωστά RPMs εκείνη τη στιγμή ήταν σκέτος εφιάλτης.
</para>
</sect3>
<sect3 id="installingtheoracle805preproduction">
<title>Εγκατάσταση του &oracle; 8.0.5 Pre-production Release για Linux
(Kernel 2.0.33)</title>
<para>Αυτή η εγκατάσταση είναι σχετικά εύκολη. Προσαρτήστε το CD και
ξεκινήστε το πρόγραμμα εγκατάστασης. Θα ερωτηθείτε στη συνέχεια για
τον αρχικό (home) κατάλογο της &oracle;, όπου και θα αντιγραφούν
όλα τα εκτελέσιμα. Ωστόσο δεν διαγράψαμε ότι απέμεινε από τις
προηγούμενες απόπειρες μας εγκατάστασης του RDBMS.</para>
<para>Στη συνέχεια, η βάση
δεδομένων <application>&oracle;</application> θα πρέπει να ξεκινήσει
δίχως προβλήματα.</para>
</sect3>
</sect2>
<sect2 id="installingoracle817">
<title>Εγκατάσταση &oracle; 8.1.7 για Linux από Συμπιεσμένο Αρχείο
</title>
<para>Πάρτε το συμπιεσμένο αρχείο <filename>oracle81732.tgz</filename>
το οποίο δημιουργήσατε από τον κατάλογο εγκατάστασης ενός συστήματος
Linux, και αποσυμπιέστε το στο
<filename>/oracle/<replaceable>SID</replaceable>/817_32/</filename>.
</para>
</sect2>
<sect2 id="continuewithsapr4installation">
<title>Συνέχεια της Εγκατάστασης του &sap.r3;</title>
<para>Αρχικά ελέγξτε τις ρυθμίσεις περιβάλλοντος των
χρηστών <username>idsamd</username>
(<replaceable>sid</replaceable>adm) και <username>oraids</username>
(ora<replaceable>sid</replaceable>). Θα πρέπει τώρα να έχουν και οι
δύο χρήστες τα
αρχεία <filename>.profile</filename>, <filename>.login</filename>
και <filename>.cshrc</filename> τα οποία όλα χρησιμοποιούν
το <command>hostname</command>. Σε περίπτωση που το όνομα του
συστήματος περιλαμβάνει και το domain, αντικαταστήστε
το <command>hostname</command> με το <command>hostname -s</command> σε
όλα τα αρχεία.</para>
<sect3 id="databaseload">
<title>Φόρτωση της Βάσης Δεδομένων</title>
<para>Στη συνέχεια, ανάλογα με το αν είχατε πριν επιλέξει έξοδο ή όχι,
μπορείτε είτε να ξεκινήσετε το <command>R3SETUP</command> από την
αρχή, ή να συνεχίσετε την εκτέλεση του. Το
<command>R3SETUP</command> θα δημιουργήσει και θα
φορτώσει τα αρχικά δεδομένα της βάσης (για 46B IDES, από τα EXPORT1
σε EXPORT6, για 46C από DISK1 σε DISK4) κάνοντας χρήση
του <command>R3load</command>.</para>
<para>Όταν η φόρτωση της βάσης δεδομένων ολοκληρωθεί (μπορεί να
χρειαστούν μερικές ώρες), θα χρειαστεί να ορίσετε μερικούς
κωδικούς. Για δοκιμαστικές εγκαταστάσεις, μπορείτε να
χρησιμοποιήσετε τους γνωστούς προεπιλεγμένους κωδικούς
(αν υπάρχει θέμα ασφάλειας, χρησιμοποιήστε διαφορετικούς!):
</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Ερώτηση</entry>
<entry>Είσοδος δεδομένων</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>Σε αυτό το σημείο είχαμε μερικά προβλήματα με την
εντολή <command>dipgntab</command> κατά την εγκατάσταση του
4.6B.</para>
</sect3>
<sect3 id="listener">
<title>Listener</title>
<para>Ξεκινήστε τον <application>&oracle;</application> Listener ως
χρήστης <username>ora<replaceable>sid</replaceable></username> με
τον ακόλουθο τρόπο:</para>
<screen>&prompt.user; <userinput>umask 0; lsnrctl start</userinput></screen>
<para>Αν δε το κάνετε, μπορεί να σας εμφανιστεί το
σφάλμα <errorcode>ORA-12546</errorcode> καθώς στα sockets δεν θα
έχουν οριστεί οι κατάλληλες άδειες. Δείτε την Σημείωση 072984 του
&sap;.</para>
</sect3>
<sect3 id="mnlstables">
<title>Ανανεώνοντας τους Πίνακες MNLS</title>
<para>Αν έχετε σκοπό να εισάγετε γλώσσες εκτός των Latin-1
στο <application>&sap;</application>, θα πρέπει να ανανεώσετε τους
πίνακες Multi National Language Support. Ατό περιγράφεται στα &sap;
OSS Notes 15023 και 45619. Μπορείτε όμως αν θέλετε να
παρακάμψετε αυτό το βήμα κατά την εγκατάσταση
του <application>&sap;</application>.</para>
<note>
<para>Ακόμη και αν δεν χρειάζεστε το MNLS, θα χρειαστεί να ελέγξετε
τον πίνακα TCPDB και να τον αρχικοποιήσετε, αν αυτό δεν έχει ήδη
γίνει. Δείτε στο &sap; τις σημειώσεις 0015023 και 0045619 για
περισσότερες πληροφορίες.</para>
</note>
</sect3>
</sect2>
<sect2 id="postinstallationsteps">
<title>Βήματα Μετά την Εγκατάσταση</title>
<sect3 id="requestsapr3licensekey">
<title>Άδεια χρήσης για το &sap.r3;</title>
<para>Θα πρέπει να ζητήσετε ένα Κλειδί Άδειας - License Key - για
το <application>&sap.r3;</application>. Το χρειάζεστε, μιας και η
προσωρινή άδεια που χρησιμοποιήσατε κατά την εγκατάσταση, έχει
ισχύ μόνο για τέσσερις εβδομάδες. Πρέπει πρώτα να αποκτήσετε το
hardware key. Συνδεθείτε ως χρήστης <username>idsadm</username>
και εκτελέστε το <command>saplicense</command>:</para>
<screen>&prompt.root; <userinput>/sapmnt/IDS/exe/saplicense -get</userinput></screen>
<para>Εκτελώντας το <command>saplicense</command> χωρίς παραμέτρους,
σας δίνει μια λίστα επιλογών. Όταν λάβετε το κλειδί άδειας,
μπορείτε να το εγκαταστήσετε με τον παρακάτω τρόπο:</para>
<screen>&prompt.root; <userinput>/sapmnt/IDS/exe/saplicense -install</userinput></screen>
<para>Στη συνέχεια, θα χρειαστεί να εισάγετε τις ακόλουθες τιμές:
</para>
<programlisting>SAP SYSTEM ID = <replaceable>SID, 3 chars</replaceable>
CUSTOMER KEY = <replaceable>hardware key, 11 chars</replaceable>
INSTALLATION NO = <replaceable>installation, 10 digits</replaceable>
EXPIRATION DATE = <replaceable>yyyymmdd, usually "99991231"</replaceable>
LICENSE KEY = <replaceable>license key, 24 chars</replaceable></programlisting>
</sect3>
<sect3 id="creatingusers">
<title>Δημιουργία Χρηστών</title>
<para>Δημιουργήστε έναν νέο χρήστη στο client 000 (για μερικές
εργασίες που χρειάζεται να γίνουν μέσα στο client 000, αλλά με
χρήστη διαφορετικό από τους <username>sap*</username>
και <username>ddic</username>). Ως όνομα χρήστη συνήθως επιλέγουμε
το <username>wartung</username> (ή <username>service</username> στα
Αγγλικά). Τα προφίλ που χρειάζονται είναι
τα <literal>sap_new</literal> και <literal>sap_all</literal>. Για
επιπλέον ασφάλεια, οι κωδικοί των προεπιλεγμένων χρηστών σε όλους
τους clients θα πρέπει να αλλαχθούν (αυτό περιλαμβάνει και τους
χρήστες <username>sap*</username> και <username>ddic</username>).
</para>
</sect3>
<sect3 id="configtranssysprofileopermodesetc">
<title>Ρύθμιση των Transport System, Profile, Operation Modes, κλπ.
</title>
<para>Μέσα στο client 000, χρήστες εκτός των <username>ddic</username>
και <username>sap*</username>, μπορούν να κάνουν τουλάχιστον τα
ακόλουθα:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Εργασία</entry>
<entry>Transaction (Συναλλαγή)</entry>
</row>
</thead>
<tbody>
<row>
<entry>Ρύθμιση του Transport System,
π.χ. ως <emphasis>Stand-Alone Transport Domain
Entity</emphasis></entry>
<entry>STMS</entry>
</row>
<row>
<entry>Δημιουργία / τροποποίηση του Profile Συστήματος</entry>
<entry>RZ10</entry>
</row>
<row>
<entry>Συντήρηση Operation Modes και Instances</entry>
<entry>RZ04</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Αυτό και όλα τα υπόλοιπα βήματα σχετικά με τις ρυθμίσεις μετά
την εγκατάσταση περιγράφονται στους οδηγούς εγκατάστασης
του <application>&sap;</application>.</para>
</sect3>
<sect3 id="editintsidsap">
<title>Τροποποίηση
του <filename>init<replaceable>sid</replaceable>.sap</filename>
(<filename>initIDS.sap</filename>)</title>
<para>Το αρχείο <filename>/oracle/IDS/dbs/initIDS.sap</filename>
περιέχει το αντίγραφο ασφαλείας του προφίλ
του <application>&sap;</application>. Εδώ χρειάζεται να ορίσετε το
μέγεθος της ταινίας που θα χρησιμοποιηθεί, τον τύπο συμπίεσης και
όλα τα σχετικά. Για να μπορέσουμε να το εκτελέσουμε με
το <command>sapdba</command> / <command>brbackup</command>,
αλλάξαμε τις παρακάτω τιμές:</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>Επεξηγήσεις:</para>
<para><varname>compress</varname>: Η ταινία που χρησιμοποιούμε είναι
μία HP DLT1 η οποία παρέχει συμπίεση μέσω υλικού.</para>
<para><varname>archive_function</varname>: Αυτό ορίζει τον
προεπιλεγμένο τρόπο με τον οποίο θα αποθηκεύονται τα αρχειοθετημένα
logs της &oracle;: τα νέα logs αποθηκεύονται στην ταινία, τα ήδη
αποθηκευμένα αποθηκεύονται ξανά και στη συνέχεια διαγράφονται.
Αυτό σας σώζει από τη ταλαιπωρία αν χρειαστεί να ανακτήσετε τη
βάση δεδομένων σε περίπτωση που μια από τις ταινίες έχει
πρόβλημα.</para>
<para><varname>cpio_flags</varname>: Προεπιλεγμένη είναι η χρήση
του <option>-B</option> το οποίο ορίζει το μέγεθος κάθε block στα
5120&nbsp;Bytes. Για ταινίες DLT, η HP προτείνει το λιγότερο
32&nbsp;K μέγεθος block, οπότε κι εμείς
δώσαμε <option>--block-size=128</option> για
64&nbsp;K. Το <option>--format=newc</option> χρειάζεται διότι έχουμε
inode με αρίθμηση μεγαλύτερη από 65535. Η τελευταία
παράμετρος <option>--quiet</option> χρειάζεται γιατί διαφορετικά
το <command>brbackup</command> θα παραπονεθεί με
που το <command>cpio</command> εμφανίσει τον αριθμό των blocks που
έχουν αποθηκευτεί.</para>
<para><varname>cpio_in_flags</varname>: Τα Flags χρειάζονται
προκειμένου να φορτωθούν τα δεδομένα από τη ταινία. Η μορφή
ανιχνεύεται αυτόματα.</para>
<para><varname>tape_size</varname>: Η παράμερος αυτή δίνει χοντρικά το
μέγεθος χωρητικότητας της ταινίας. Για λόγους ασφάλειας
(χρησιμοποιούμε hardware συμπίεση), η τιμή της
παραμέτρου είναι λίγο μικρότερη από το πραγματικό μέγεθος.</para>
<para><varname>tape_address</varname>: Το όνομα συσκευής
(χωρίς δυνατότητα επανατύλιξης της ταινίας) που θα χρησιμοποιηθεί
με το <command>cpio</command>.</para>
<para><varname>tape_address_rew</varname>: Το όνομα συσκευής (με
δυνατότητα επανατύλιξης της ταινίας) που θα χρησιμοποιηθεί με το
<command>cpio</command>.</para>
</sect3>
<sect3>
<title>Ρυθμίσεις Μετά την Εγκατάσταση</title>
<para>Οι ακόλουθοι παράμετροι του <application>&sap;</application> θα
πρέπει να ρυθμιστούν μετά την εγκατάσταση (παραδείγματα για IDES
46B, και μνήμη 1&nbsp;GB):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Όνομα</entry>
<entry>Τιμή</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; Σημείωση 0013026:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Όνομα</entry>
<entry>Τιμή</entry>
</row>
</thead>
<tbody>
<row>
<entry>ztta/dynpro_area</entry>
<entry>2500000</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>&sap; Σημείωση 0157246:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Όνομα</entry>
<entry>Τιμή</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>Με τις παραπάνω παραμέτρους σε ένα σύστημα με 1&nbsp;gigabyte
μνήμης, μπορεί να δείτε κάτι σαν το παρακάτω όσο αφορά την
κατανάλωση μνήμης:</para>
<programlisting>Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K Free</programlisting>
</note>
</sect3>
</sect2>
<sect2 id="problemsduringinstallation">
<title>Προβλήματα κατά την Εγκατάσταση</title>
<sect3 id="restartr3setup">
<title>Επανεκκίνηση του <command>R3SETUP</command> μετά τη Διόρθωση
Προβλήματος</title>
<para>Το <command>R3SETUP</command> θα σταματήσει αν αντιληφθεί
κάποιο σφάλμα. Αν κοιτάξετε καλά τα logfiles και διορθώσετε το
σφάλμα, θα πρέπει να ξεκινήσετε το <command>R3SETUP</command> από
την αρχή, συνήθως επιλέγοντας REPEAT στο τελευταίο βήμα για το
οποίο παραπονέθηκε το <command>R3SEΤUP</command>.</para>
<para>Για να επανεκκινήσετε το <command>R3SETUP</command>, απλώς δώστε
τη παρακάτω εντολή με το αντίστοιχο
αρχείο <filename>R3S</filename>:</para>
<screen>&prompt.root; <userinput>./R3SETUP -f CENTRDB.R3S</userinput></screen>
<para>για την έκδοση 4.6B, ή την εντολή</para>
<screen>&prompt.root; <userinput>./R3SETUP -f CENTRAL.R3S</userinput></screen>
<para>για την έκδοση 4.6C, χωρίς να έχει σημασία αν το σφάλμα
προκλήθηκε από το <filename>CENTRAL.R3S</filename> ή
το <filename>DATABASE.R3S</filename>.</para>
<note>
<para>Σε κάποια στάδια, το <command>R3SETUP</command> υποθέτει ότι
τόσο η βάση δεδομένων όσο και το <application>&sap;</application>
έχουν ξεκινήσει και εκτελούνται κανονικά (καθώς πρόκειται για
βήματα που έχουν ήδη ολοκληρωθεί). Αν προκύψουν λάθη, και για
παράδειγμα δεν μπόρεσε να ξεκινήσει η βάση, ξεκινήστε τη βάση και
το <application>&sap;</application> με το χέρι, αφού διορθώσετε
τα λάθη και πριν εκτελέσετε ξανά το <command>R3SETUP</command>.
</para>
<para>Μη ξεχάσετε επίσης να εκκινήσετε το
<application>&oracle;</application> listener (εκτελέστε το ως
χρήστης <username>ora<replaceable>sid</replaceable></username>
με <command>umask 0; lsnrctl start</command>) αν είχε διακοπεί
και αυτό (για παράδειγμα σε μια αναγκαία επανεκκίνηση του
συστήματος).</para>
</note>
</sect3>
<sect3 id="indoraduringduringr3setup">
<title>OSUSERSIDADM_IND_ORA κατά το <command>R3SETUP</command></title>
<para>Αν το <command>R3SETUP</command> παραπονιέται σε αυτό το
σημείο, τροποποιήστε το πρότυπο αρχείο
του <command>R3SETUP</command> που χρησιμοποιείται εκείνη τη στιγμή
(το <filename>CENTRDB.R3S</filename> (4.6B) ή κάποιο από
τα <filename>CENTRAL.R3S</filename> ή
το <filename>DATABASE.R3S</filename> (4.6C)). Βρείτε
το <literal>[OSUSERSIDADM_IND_ORA]</literal> ή ψάξτε μέσα στο αρχείο
για τη μοναδική εγγραφή <literal>STATUS=ERROR</literal> και
προσθέστε τα παρακάτω:</para>
<programlisting>HOME=/home/<replaceable>sid</replaceable>adm (was empty)
STATUS=OK (had status ERROR)
</programlisting>
<para>Στη συνέχεια μπορείτε να ξεκινήσετε και πάλι
το <command>R3SETUP</command>.</para>
</sect3>
<sect3 id="indoraduringr3setup">
<title>OSUSERDBSID_IND_ORA κατά το <command>R3SETUP</command></title>
<para>Πιθανό είναι να υπάρχει πρόβλημα και σε αυτό το βήμα με
το <command>R3SETUP</command>. Το πρόβλημα εδώ είναι παρόμοιο με το
προηγούμενο, του OSUSERSIDADM_IND_ORA. Απλά τροποποιήστε το αρχείο
προτύπου που χρησιμοποιείτε με το <command>R3SETUP</command>
(<filename>CENTRDB.R3S</filename> (4.6B) ή κάποιο από
τα <filename>CENTRAL.R3S</filename>
ή <filename>DATABASE.R3S</filename> (4.6C)). Βρείτε
το <literal>[OSUSERDBSID_IND_ORA]</literal> ή ψάξτε μέσα στο αρχείο
για την μοναδική εγγραφή <literal>STATUS=ERROR</literal> και
προσθέστε τα παρακάτω:</para>
<programlisting>STATUS=OK</programlisting>
<para>Τώρα τρέξτε ξανά το <command>R3SETUP</command>.</para>
</sect3>
<sect3 id="oraviewvrffilenotfound">
<title><errorname>oraview.vrf FILE NOT FOUND</errorname> κατά τη διάρκεια Εγκατάστασης της &oracle;</title>
<para>Το σφάλμα αυτό σημαίνει ότι έχετε επιλέξει
το <emphasis>&oracle; On-Line Text Viewer</emphasis> πριν ξεκινήσετε
την εγκατάσταση. Η επιλογή αυτή είναι προεπιλεγμένη, παρ' όλο που
δεν είναι διαθέσιμη στο Linux. Αφαιρέστε λοιπόν αυτή την επιλογή
από το μενού εγκατάστασης και ξεκινήστε ξανά.</para>
</sect3>
<sect3 id="textenvincalid">
<title><errorname>TEXTENV_INVALID</errorname> κατά την Εκτέλεση <command>R3SETUP</command>, του RFC ή του SAPgui</title>
<para>Αν βρεθείτε αντιμέτωποι με αυτό το σφάλμα, τότε δεν έχετε τις
σωστές τοπικές ρυθμίσεις. Η σημείωση 0171356 του &sap; αναφέρει
όλα τα RPMs που χρειάζονται να εγκατασταθούν
(π.χ. <filename>saplocales-1.0-3</filename>,
<filename>saposcheck-1.0-1</filename> για RedHat 6.1). Στην
περίπτωση που αγνοήσατε όλα τα σχετικά λάθη, και αν ακόμη έχετε
ορίσει το <literal>STATUS</literal> από <literal>ERROR</literal>
σε <literal>OK</literal> (στο <filename>CENTRDB.R3S</filename>) κάθε
φορά που παραπονιόταν το <command>R3SETUP</command> και απλώς
το ξεκινούσατε από την αρχή, το <application>&sap;</application>
δεν θα ρυθμιστεί σωστά και δεν θα μπορείτε να συνδεθείτε στο
σύστημα μέσω του <application>SAPgui</application>, ακόμη και αν το
σύστημα σας έχει ξεκινήσει. Προσπαθώντας να συνδεθούμε με το παλιό
<application>SAPgui</application> Linux, εμφανίστηκε το παρακάτω
σφάλμα:</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>Η συμπεριφορά αυτή οφείλεται στο ότι
το <application>&sap.r3;</application> δεν μπορεί να ορίσει σωστά
τις τοπικές ρυθμίσεις και δεν μπορεί στη συνέχεια να ρυθμίσει τον
εαυτό του (ελλειπή δεδομένα στη βάση δεδομένων). Για να μπορέσετε να
συνδεθείτε προσθέστε τις παρακάτω καταχωρήσεις
στο <filename>DEFAULT.PFL</filename> (δείτε Σημείωση
0043288):</para>
<programlisting>abap/set_etct_env_at_new_mode = 0
install/collate/active = 0
rscp/TCP0B = TCP0B</programlisting>
<para>Ξεκινήστε ξανά το <application>&sap;</application>. Τώρα
μπορείτε να συνδεθείτε ακόμη και αν οι ρυθμίσεις χώρας και γλώσσας
δε δουλεύουν όπως θα έπρεπε. Αφού διορθώσετε τις ρυθμίσεις της
χώρας (και ορίσετε τις σωστές τοπικές ρυθμίσεις), μπορείτε να
αφαιρέσετε τα παραπάνω από το <filename>DEFAULT.PFL</filename> και
να εκτελέσετε το <application>&sap;</application> από την αρχή.
</para>
</sect3>
<sect3 id="ora-00001">
<title><errorcode>ORA-00001</errorcode></title>
<para>Το σφάλμα αυτό το συναντήσαμε μόνο με το <application>&oracle;
8.1.7</application> στο &os;. Ο λόγος ήταν ότι η
βάση <application>&oracle;</application> δεν μπορούσε να ορίσει τις
σωστές παραμέτρους για την εκκίνησή της με αποτέλεσμα να κολλάει,
αφήνοντας σηματοφορείς και κοινόχρηστη μνήμη στο σύστημα. Η επόμενη
προσπάθεια να ξεκινήσουμε τη βάση δεδομένων μας εμφάνισε το
σφάλμα <errorcode>ORA-00001</errorcode>.</para>
<para>Βρείτε τους με την εντολή <command>ipcs -a</command> και
αφαιρέστε τους με την <command>ipcrm</command>.</para>
</sect3>
<sect3 id="ora-00445pmon">
<title><errorcode>ORA-00445</errorcode> (Background Process PMON Did
Not Start)</title>
<para>Το σφάλμα αυτό μπορεί να εμφανιστεί με το <application>&oracle;
8.1.7</application> όταν η βάση δεδομένων έχει εκκινηθεί με το
script <command>startsap</command> (για
παράδειγμα <command>startsap_majestix_00</command>) και σαν
χρήστης <username>prdadm</username>.</para>
<para>Μια πιθανή λύση είναι να ξεκινήσετε τη βάση ως χρήστης
<username>oraprd</username> και μέσω του
<command>svrmgrl</command>:</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> (Ξεκινήστε τον Listener με
τις Σωστές Άδειες)</title>
<para>Ξεκινήστε τον <application>&oracle;</application> listener ως
χρήστης <username>oraids</username>, με τις ακόλουθες εντολές:
</para>
<screen>&prompt.root; <userinput>umask 0; lsnrctl start</userinput></screen>
<para>Διαφορετικά μπορεί να εμφανιστεί το
σφάλμα <errorcode>ORA-12546</errorcode> που σημαίνει ότι τα
sockets δεν έχουν σωστές άδειες. Δείτε τη σημείωση 0072984 του
&sap;.</para>
</sect3>
<sect3 id="ora-27102">
<title><errorcode>ORA-27102</errorcode> (Έλλειψη μνήμης)</title>
<para>Το πρόβλημα αυτό παρουσιάστηκε όταν χρησιμοποιήσαμε τιμές
μεγαλύτερες του 1&nbsp;GB (1024X1024X1024) στις μεταβλητές
<literal>MAXDSIZ</literal> και <literal>DFLDSIZ</literal>.
Επιπλέον, μας εμφανίστηκε το σφάλμα <errorname>Linux Error 12:
Cannot allocate memory</errorname>.</para>
</sect3>
<sect3 id="dipgntabindind">
<title>[DIPGNTAB_IND_IND] κατά την Εκτέλεση του <command>R3SETUP</command></title>
<para>Σε γενικές γραμμές, δείτε τη σημείωση 0130581 του &sap;
(<command>R3SETUP</command> step <literal>DIPGNTAB</literal>
terminates). Κατά την εγκατάσταση IDES, για κάποιο
λόγο η διαδικασία εγκατάστασης δε χρησιμοποιούσε το σωστό όνομα
συστήματος του <application>&sap;</application> <quote>IDS</quote>,
αλλά το κενό <literal>""</literal>. Αυτό οδηγεί σε κάποια
μικρά προβλήματα με τη πρόσβαση στους καταλόγους μια και τα
μονοπάτια δημιουργούνται δυναμικά με τη χρήση
του <replaceable>SID</replaceable> (στη περίπτωσή μας IDS). Πράγμα
που σημαίνει ότι αντί να γίνει η πρόσβαση στο:</para>
<programlisting>/usr/sap/IDS/SYS/...
/usr/sap/IDS/DVMGS00</programlisting>
<para>θα προσπαθήσει να γίνει στο:</para>
<programlisting>/usr/sap//SYS/...
/usr/sap/D00</programlisting>
<para>Για να συνεχίσουμε με την εγκατάσταση, δημιουργήσαμε έναν
σύνδεσμο και έναν επιπλέον κατάλογο:</para>
<screen>&prompt.root; <userinput>pwd</userinput>
/compat/linux/usr/sap
&prompt.root; <userinput>ls -l</userinput>
total 4
drwxr-xr-x 3 idsadm sapsys 512 May 5 11:20 D00
drwxr-x--x 5 idsadm sapsys 512 May 5 11:35 IDS
lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -&gt; IDS/SYS
drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp
drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 trans</screen>
<para>Το πρόβλημα αυτό το είδαμε επίσης στις σημειώσεις 0029227 και
0008401 του &sap;. Δεν αντιμετωπίσαμε όμως κανένα από αυτά τα
προβλήματα με την εγκατάσταση του <application>&sap;
4.6C</application>.</para>
</sect3>
<sect3 id="rfcrswboiniindind">
<title>[RFCRSWBOINI_IND_IND] κατά την Εκτέλεση του <command>R3SETUP</command></title>
<para>Το σφάλμα αυτό εμφανίστηκε κατά την εγκατάσταση
του <application>&sap; 4.6C</application>, και ήταν το αποτέλεσμα
ενός άλλου σφάλματος που προέκυψε νωρίτερα στην εγκατάσταση. Σε
τέτοιες περιπτώσεις θα πρέπει να δείτε τα αντίστοιχα logfiles και να
διορθώσετε το αρχικό πρόβλημα.
</para>
<para>Αν αφού ελέγξετε τα logfiles διαπιστώσετε ότι το σφάλμα είναι
πράγματι αυτό (κοιτάξτε τις σημειώσεις του &sap;), μπορείτε να
ορίσετε το <literal>STATUS</literal> σε αυτό το βήμα
από <literal>ERROR</literal> σε <literal>OK</literal> (στο
αρχείο <filename>CENTRDB.R3S</filename>) και να εκτελέσετε ξανά
το <command>R3SETUP</command>. Μετά την εγκατάσταση, πρέπει να
εκτελέσετε το <literal>RSWBOINS</literal> από τη συναλλαγή
SE38. Δείτε τη σημείωση 0162266 του &sap; για
τα <literal>RFCRSWBOINI</literal>
και <literal>RFCRADDBDIF</literal>.</para>
</sect3>
<sect3 id="rfcraddbdifindind">
<title>[RFCRADDBDIF_IND_IND] κατά την Εκτέλεση <command>R3SETUP</command></title>
<para>Όπως και πριν, και εδώ ισχύει η ίδια λογική: σιγουρευτείτε ποιο
είναι το πρωταρχικό σφάλμα κοιτάζοντας τα logfiles.</para>
<para>Αν επιβεβαιώσετε ότι η σημείωση του &sap; 0162266
ανταποκρίνεται στο πρόβλημά σας, απλά
ορίστε το <literal>STATUS</literal> σε αυτό το βήμα
από <literal>ERROR</literal> σε <literal>OK</literal> (στο
αρχείο <filename>CENTRDB.R3S</filename>) και τρέξτε πάλι
το <command>R3SETUP</command>. Μετά την εγκατάσταση, πρέπει να
εκτελέσετε το <literal>RADDBDIF</literal> από τη συναλλαγή
SE38.</para>
</sect3>
<sect3 id="sigactionsig31">
<title><errorcode>sigaction sig31: File size limit exceeded</errorcode></title>
<para>Το σφάλμα αυτό μπορεί να εμφανιστεί κατά την εκκίνηση των
διεργασιών του <application>&sap;</application>
<emphasis>disp+work</emphasis>. Αν ξεκινήσετε
το <application>&sap;</application> με το
script <command>startsap</command>, οι υποδιεργασίες θα αρχίσουν
μόνες τους, ξεκινώντας τις υπόλοιπες διεργασίες που απαιτούνται από
το <application>&sap;</application>. Αυτό έχει ως αποτέλεσμα το
ίδιο το script να μην γνωρίζει αν κάτι πήγε στραβά.</para>
<para>Για να ελέγξετε αν όντως ξεκίνησαν σωστά οι διεργασίες
του <application>&sap;</application>, ρίξτε μια ματιά στη λίστα
διεργασιών με την εντολή
<command>ps ax | grep <replaceable>SID</replaceable></command>, η
οποία θα σας επιστρέψει μιας λίστα με όλες τις διεργασίες από
τα <application>&oracle;</application>
και <application>&sap;</application>. Αν φαίνεται σαν να λείπουν
μερικές διεργασίες, ή αν δεν μπορείτε να συνδεθείτε
στο <application>&sap;</application>, κοιτάξτε τα αντίστοιχα
logfiles τα οποία μπορούν να βρεθούν στον
κατάλογο <filename>/usr/sap/<replaceable>SID</replaceable>/DVEBMGS<replaceable>nr</replaceable>/work/</filename>.
Τα αρχεία που πρέπει να κοιτάξετε είναι
τα <filename>dev_ms</filename>
και <filename>dev_disp</filename>.</para>
<para>Το Signal 31 θα εμφανιστεί αν η ποσότητα της κοινής μνήμης που
χρησιμοποιείται από τα <application>&oracle;</application>
και <application>&sap;</application> ξεπεράσει το μέγεθος που έχει
ήδη οριστεί κατά τη ρύθμιση του πυρήνα. Με το να ορίσετε μια
μεγαλύτερη τιμή θα μπορέσετε να προσπεράσετε το πρόβλημα
αυτό:</para>
<programlisting># μεγαλύτερη μνήμη για συστήματα παραγωγής 46C:
options SHMMAXPGS=393216
# μικρότερη μνήμη για συστήματα 46B:
#options SHMMAXPGS=262144</programlisting>
</sect3>
<sect3 id="saposcolfails">
<title>Ανεπιτυχής Εκκίνηση του <command>saposcol</command></title>
<para>Υπάρχουν επίσης μερικά προβλήματα με το
πρόγραμμα <command>saposcol</command> (έκδοση 4.6D).
Το <application>&sap;</application> χρησιμοποιεί
το <command>saposcol</command> για να συλλέξει δεδομένα σχετικά με
τις επιδόσεις του συστήματος. Το πρόγραμμα αυτό δεν το χρειάζεστε
για να εκτελέσετε το <application>&sap;</application>, οπότε μπορεί
να θεωρηθεί ως μικρότερη σημασίας. Παλαιότερες εκδόσεις (4.6B)
δουλεύουν, αλλά δε συλλέγουν όλα τα δεδομένα (πολλές κλήσεις
επιστρέφουν 0, για παράδειγμα η χρήση της CPU).</para>
</sect3>
</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>
<!--
Local Variables:
mode: sgml
coding: iso-8859-7
fill-column: 78
sgml-declaration: "../chapter.decl"
sgml-indent-data: t
sgml-omittag: nil
sgml-always-quote-attributes: t
sgml-parent-document: ("../book.sgml" "part" "chapter")
End:
-->