diff options
Diffstat (limited to 'el_GR.ISO8859-7/books/handbook/linuxemu/chapter.xml')
-rw-r--r-- | el_GR.ISO8859-7/books/handbook/linuxemu/chapter.xml | 1415 |
1 files changed, 0 insertions, 1415 deletions
diff --git a/el_GR.ISO8859-7/books/handbook/linuxemu/chapter.xml b/el_GR.ISO8859-7/books/handbook/linuxemu/chapter.xml deleted file mode 100644 index 945976592b..0000000000 --- a/el_GR.ISO8859-7/books/handbook/linuxemu/chapter.xml +++ /dev/null @@ -1,1415 +0,0 @@ -<?xml version="1.0" encoding="iso-8859-7"?> -<!-- - - Το Εγχειρίδιο του FreeBSD: Συμβατότητα με Εκτελέσιμα του Linux - - The FreeBSD Greek Documentation Project - - $FreeBSD$ - - %SOURCE% en_US.ISO8859-1/books/handbook/linuxemu/chapter.xml - %SRCID% 38826 - ---> -<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="linuxemu"> - <info><title>Συμβατότητα με Εκτελέσιμα του Linux</title> - <authorgroup> - <author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Αναδομήθηκε και μέρη του ανανεώθηκαν από τον </contrib></author> - <!-- 22 Mar 2000 --> - </authorgroup> - <authorgroup> - <author><personname><firstname>Brian N.</firstname><surname>Handy</surname></personname><contrib>Αρχική συνεισφορά από τον </contrib></author> - <author><personname><firstname>Rich</firstname><surname>Murphey</surname></personname></author> - </authorgroup> - </info> - - - - <sect1 xml: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; &acrobat;</application>, - <application>&realplayer;</application>, - <application>&oracle;</application>, - <application>&wordperfect;</application>, - <application>Doom</application>, - <application>Quake</application>, και περισσότερα. Έχει επίσης - αναφερθεί ότι σε κάποιες περιπτώσεις, τα εκτελέσιμα του Linux έχουν - καλύτερη απόδοση στο &os; από ότι στο Linux.</para> - - <para>Υπάρχουν ωστόσο κάποια συγκεκριμένα για το Linux στοιχεία του - λειτουργικού που δεν υποστηρίζονται στο &os;. Τα εκτελέσιμα του Linux - δεν θα δουλέψουν στο &os; αν χρησιμοποιούν πολλές εξειδικευμένες - κλήσεις &i386;, όπως για παράδειγμα την ενεργοποίηση της εικονικής - κατάστασης 8086.</para> - - <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para> - - <itemizedlist> - <listitem> - <para>Πως να ενεργοποιήσετε την συμβατότητα εκτελέσιμων με το Linux - στο σύστημα σας.</para> - </listitem> - - <listitem> - <para>Πως να εγκαταστήσετε πρόσθετες κοινόχρηστες βιβλιοθήκες του - Linux.</para> - - </listitem> - - <listitem> - <para>Πως να εγκαταστήσετε εφαρμογές του Linux στο &os;.</para> - </listitem> - - <listitem> - <para>Τις λεπτομέρειες της υλοποίησης της συμβατότητας με το Linux στο - &os;.</para> - </listitem> - </itemizedlist> - - <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para> - - <itemizedlist> - <listitem> - <para>Να γνωρίζετε πως θα εγκαταστήσετε πρόσθετο λογισμικό - τρίτου κατασκευαστή (<xref linkend="ports"/>).</para> - </listitem> - </itemizedlist> - - </sect1> - - <sect1 xml: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>). Μπορείτε να φορτώσετε αυτό το άρθρωμα στον - πυρήνα δίνοντας τη παρακάτω εντολή ως <systemitem class="username">root</systemitem>:</para> - - <screen>&prompt.root; <userinput>kldload linux</userinput></screen> - - <para>Αν θέλετε να έχετε πάντα ενεργοποιημένη τη συμβατότητα με Linux, - τότε θα χρειαστεί να προσθέσετε τη παρακάτω γραμμή στο - <filename>/etc/rc.conf</filename>:</para> - - <programlisting>linux_enable="YES"</programlisting> - - <para>Η εντολή &man.kldstat.8; μπορεί να χρησιμοποιηθεί για να ελεγχθεί - αν το KLD είναι φορτωμένο:</para> - - <screen>&prompt.user; <userinput>kldstat</userinput> -Id Refs Address Size Name - 1 2 0xc0100000 16bdb8 kernel - 7 1 0xc24db000 d000 linux.ko</screen> - <indexterm> - <primary>kernel options</primary> - <secondary>COMPAT_LINUX</secondary> - </indexterm> - - <para>Αν για κάποιο λόγο δεν θέλετε ή δε μπορείτε να φορτώσετε το KLD, - τότε μπορείτε να συνδέσετε στατικά την υποστήριξη εκτελέσιμων του Linux - στον πυρήνα με το να προσθέσετε την επιλογή <literal>options - COMPAT_LINUX</literal> στο αρχείων ρυθμίσεων του πυρήνα. Στη συνέχεια - μπορείτε να εγκαταστήσετε τον νέο πυρήνα όπως περιγράφεται στο - <xref linkend="kernelconfig"/>.</para> - - <sect2> - <title>Εγκατάσταση των Linux Runtime Libraries</title> - <indexterm> - <primary>Linux</primary> - <secondary>εγκατάσταση βιβλιοθηκών Linux</secondary> - </indexterm> - - <para>Αυτό μπορεί να γίνει με δύο τρόπους. Είτε με τη χρήση του - <link linkend="linuxemu-libs-port">linux_base-fc4</link> port, ή - με <link linkend="linuxemu-libs-manually">χειροκίνητη</link> - εγκατάσταση τους.</para> - - <sect3 xml:id="linuxemu-libs-port"> - <title>Εγκατάσταση μέσω του linux_base Port</title> - <indexterm><primary>Ports Collection</primary></indexterm> - - <para>Αυτός είναι κατά γενική ομολογία ο ευκολότερος τρόπος για την - εγκατάσταση των runtime libraries. Είναι η ίδια διαδικασία - εγκατάστασης που ακολουθείται και για οποιοδήποτε άλλο port από - τη <link linkend="ports">Συλλογή των Ports</link>. Απλά κάντε το - παρακάτω:</para> - - <screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_base-f10</userinput> -&prompt.root; <userinput>make install distclean</userinput></screen> - - <note> - <para>Αν χρησιμοποιείτε κάποια έκδοση του &os; πριν την 8.0, θα - πρέπει να εγκαταστήσετε το port <package>emulators/linux_base-fc4</package> - αντί για το <package>emulators/linux_base-f10</package>.</para> - </note> - - <para>Θα πρέπει τώρα να έχετε κανονική συμβατότητα με εκτελέσιμα του - Linux. Μερικά προγράμματα παραπονιούνται ότι οι βιβλιοθήκες - συστήματος (system libraries) δεν είναι στη τελευταία τους έκδοση. - Γενικά όμως, αυτό δεν αποτελεί κανένα πρόβλημα.</para> - - <note><para>Μπορούν να υπάρχουν πολλαπλές εκδόσεις - του <package>emulators/linux_base</package>, που να - αντιστοιχούν στις διαφορετικές εκδόσεις των διανομών Linux. Θα - πρέπει να κάνετε εγκατάσταση των ports που προαπαιτούνται από τις - εφαρμογές Linux τις οποίες θέλετε να εγκαταστήσετε.</para></note> - - </sect3> - - <sect3 xml: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 επιλογές (για να - ακολουθήσετε τις παρακάτω οδηγίες θα πρέπει να είστε - <systemitem class="username">root</systemitem> στο σύστημά σας).</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) => /usr/X11/lib/libXt.so.3.1.0 -libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0 -libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29</screen> - - <indexterm><primary>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 -> libXt.so.3.1.0 -/compat/linux/usr/X11/lib/libX11.so.3.1.0 -/compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0 -/compat/linux/lib/libc.so.4.6.29 -/compat/linux/lib/libc.so.4 -> libc.so.4.6.29</screen> - - <blockquote> - <note> - <para>Σημειώστε ότι αν έχετε ήδη κάποιο Linux shared library - που ο αριθμός έκδοσης είναι ο ίδιος με αυτόν της πρώτης στήλης - του <command>ldd</command>, δε θα χρειαστεί να αντιγράψετε το - αρχείο όπως αυτό ονομάζεται στη τελευταία στήλη, τα υπάρχοντα - αρχεία θα πρέπει να κάνουν τη δουλειά τους. Σας συμβουλεύουμε - όμως να αντιγράψετε το shared library αν είναι κάποια νεότερη - έκδοση. Μπορείτε να διαγράψετε τα παλιά αρχεία, αρκεί όμως να - ανανεώσετε τους συμβολικούς δεσμούς ώστε να οδηγούν στα νέα - αρχεία. Επομένως, αν έχετε τις παρακάτω βιβλιοθήκες στο - σύστημά σας:</para> - - <screen>/compat/linux/lib/libc.so.4.6.27 -/compat/linux/lib/libc.so.4 -> libc.so.4.6.27</screen> - - <para>και βρείτε μια εφαρμογή η οποία ζητάει μια νεότερη έκδοση - μέσω του <command>ldd</command>: - </para> - - <screen>libc.so.4 (DLL Jump 4.5pl26) -> 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 -> libc.so.4.6.29</screen> - </note> - </blockquote> - - <blockquote> - <note> - <para>Ο μηχανισμός των συμβολικών συνδέσμων χρειάζεται - <emphasis>μόνο</emphasis> για τις εφαρμογές του Linux. Ο - runtime linker του &os; κοιτάει μόνος του για τις πιο - πρόσφατες εκδόσεις των βιβλιοθηκών και έτσι δε χρειάζεται να - σας απασχολεί. - </para> - </note> - </blockquote> - </informalexample> - </sect3> - </sect2> - - <sect2> - <title>Εγκατάσταση των Linux ELF Binaries</title> - <indexterm> - <primary>Linux</primary> - <secondary>ELF binaries</secondary> - </indexterm> - - <para>Τα ELF binaries χρειάζονται μερικές φορές ένα ακόμα βήμα, το - <quote>branding</quote>. Αν προσπαθήσετε να τρέξετε ένα - εκτελέσιμο ELF χωρίς branding, τότε θα σας εμφανιστεί το παρακάτω - σφάλμα:</para> - - <screen>&prompt.user; <userinput>./my-linux-elf-binary</userinput> -ELF binary type not known -Abort</screen> - - <para>Για να βοηθήσετε τον πυρήνα του &os; να ξεχωρίσει ένα ELF του - &os; από ένα του Linux, χρησιμοποιήστε την εντολή &man.brandelf.1;. - </para> - - <screen>&prompt.user; <userinput>brandelf -t Linux my-linux-elf-binary</userinput></screen> - - <indexterm><primary>GNU toolchain</primary></indexterm> - <para>To GNU toolchain, ομάδα πρόγραμμα GNU, τοποθετεί πλέον αυτόματα τα - κατάλληλα χαρακτηριστικά στα εκτελέσιμα ELF, επομένως το παραπάνω βήμα - θα χρειάζεται όλο και λιγότερο στο μέλλον. - </para> - </sect2> - - <sect2> - <title>Εγκατάσταση μιας Τυχαίας Linux RPM Εφαρμογής</title> - - <para>Το &os; διαθέτει την δική του βάση δεδομένων για τα πακέτα, - η οποία χρησιμοποιείται για όλα τα ports (και για αυτά που - προέρχονται από το &linux;). Για το λόγο αυτό, η βάση δεδομένων - &linux; RPM δεν χρησιμοποιείται (δεν υποστηρίζεται).</para> - - <para>Αν ωστόσο χρειάζεται να εγκαταστήσετε μια οποιαδήποτε εφαρμογή - του &linux; που βασίζεται σε πακέτο RPM, μπορείτε να το επιτύχετε - με τον παρακάτω τρόπο:</para> - - <screen>&prompt.root; <userinput>cd /compat/linux</userinput> -&prompt.root; <userinput>rpm2cpio -q < /path/to/linux.archive.rpm | cpio -id</userinput></screen> - - <para>Χρησιμοποιήστε την &man.brandelf.1; για να τυποποιήσετε - κατάλληλα τα εκτελέσιμα (όχι τις βιβλιοθήκες!) ως εφαρμογές &linux;. - Δεν θα μπορείτε να απεγκαταστήσετε τις εφαρμογές με καθαρό τρόπο, - αλλά θα μπορέσετε να κάνετε τις δοκιμές που επιθυμείτε.</para> - </sect2> - - <sect2> - <title>Ρύθμιση του Hostname Resolver</title> - - <para>Αν το DNS δε δουλεύει ή αν σας εμφανίζεται το παρακάτω - σφάλμα:</para> - - <screen>resolv+: "bind" is an invalid keyword resolv+: -"hosts" is an invalid keyword</screen> - - <para>Θα χρειαστεί να ρυθμίσετε - το <filename>/compat/linux/etc/host.conf</filename> ώστε να περιέχει: - </para> - - <programlisting>order hosts, bind -multi on</programlisting> - - <para>Η σειρά εδώ δηλώνει ότι αρχικά ελέγχεται το - αρχείο <filename>/etc/hosts</filename> και στη συνέχεια ο DNS server. - Όταν το <filename>/compat/linux/etc/host.conf</filename> δεν είναι - διαθέσιμο, οι εφαρμογές Linux χρησιμοποιούν το - <filename>/etc/host.conf</filename> του &os; και παραπονιούνται ότι - η σύνταξη του αρχείου δεν είναι σωστή. Θα πρέπει να αφαιρέσετε - την αναφορά στο <literal>bind</literal> αν δεν έχετε ρυθμίσει ένα - name server μέσω του <filename>/etc/resolv.conf</filename>.</para> - </sect2> - </sect1> - - <sect1 xml:id="linuxemu-mathematica"> - <info><title>Εγκαθιστώντας το &mathematica;</title> - <authorgroup> - <author><personname><firstname>Boris</firstname><surname>Hollas</surname></personname><contrib>Ανανεώθηκε για το Mathematica 5.X από τον </contrib></author> - </authorgroup> - </info> - - - <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 στο <uri xlink:href="http://www.wolfram.com/">http://www.wolfram.com/</uri>.</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>/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 > $i.tmp - sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp > $i - rm $i.tmp - chmod a+x $i -done</programlisting> - </sect2> - - <sect2> - <title>Αποκτώντας Κωδικό για το &mathematica;</title> - - <indexterm> - <primary>Ethernet</primary> - <secondary>MAC address</secondary> - </indexterm> - - <para>Όταν εκκινήσετε το <application>&mathematica;</application> για - πρώτη φορά, θα ερωτηθείτε για έναν κωδικό. Αν δεν έχετε κάποιον - κωδικό σε αυτό το στάδιο, τρέξτε το πρόγραμμα - <command>mathinfo</command> που βρίσκεται στον κατάλογο εγκατάστασης - για να σας δοθεί το <quote>machine ID</quote>. Το "machine ID" είναι - εξ' ολοκλήρου βασισμένο στη διεύθυνση MAC της κάρτας δικτύου που - έχετε. Αυτό σημαίνει ότι δεν μπορείτε να τρέξετε το - <application>&mathematica;</application> σε άλλους υπολογιστές. - </para> - - <para>Όταν εγγραφείτε στη Wolfram, με e-mail, τηλέφωνο ή fax, θα - χρειαστεί να δώσετε το <quote>machine ID</quote> και θα σας απαντήσουν - με έναν αντίστοιχο κωδικό που θα αποτελείται από μια σειρά αριθμών. - </para> - </sect2> - - <sect2> - <title>Τρέχοντας το &mathematica; Frontend μέσω Δικτύου</title> - - <para>Το <application>&mathematica;</application> κάνει χρήση κάποιων - ειδικών γραμματοσειρών για να εμφανίσει χαρακτήρες οι οποίοι δεν - υπάρχουν στα συνηθισμένα σετ (ολοκληρώματα, αθροίσματα, Ελληνικά - γράμματα, κλπ). To πρωτόκολλο X απαιτεί αυτές οι - γραμματοσειρές να υπάρχουν στο <emphasis>τοπικό</emphasis> σύστημα. - Αυτό σημαίνει ότι θα χρειαστεί να αντιγράψετε τις γραμματοσειρές αυτές - από το CDROM ή από από κάποιον άλλον υπολογιστή που έχει - το <application>&mathematica;</application>. Συνήθως αυτές οι - γραμματοσειρές μπορούν να βρεθούν μέσα στο κατάλογο - <filename>/cdrom/Unix/Files/SystemFiles/Fonts</filename> του - CDROM, ή στον κατάλογο - <filename>/usr/local/mathematica/SystemFiles/Fonts</filename> στον - τοπικό σκληρό δίσκο. Οι πραγματικές γραμματοσειρές βρίσκονται σε - υποκαταλόγους όπως <filename>Type1</filename> και - <filename>X</filename>. Υπάρχουν αρκετοί τρόποι - να τις χρησιμοποιήσετε, οι οποίοι περιγράφονται στη συνέχεια.</para> - - <para>Ο πρώτος τρόπος είναι να τις αντιγράψετε μέσα σε έναν υπάρχοντα - κατάλογο στο <filename>/usr/X11R6/lib/X11/fonts</filename>. Θα - χρειαστεί όμως να τροποποιήσετε το - αρχείο <filename>fonts.dir</filename>, ώστε να προσθέσετε τα ονόματα - των γραμματοσειρών μέσα σε αυτό, και να αλλάξετε τον αριθμό των - γραμματοσειρών στη πρώτη γραμμή. Εναλλακτικά, είναι συνήθως αρκετό - να εκτελέσετε απλώς την εντολή &man.mkfontdir.1; μέσα στον κατάλογο - που έχετε αντιγράψει τις γραμματοσειρές. - </para> - - <para>Ο δεύτερος τρόπος είναι να αντιγράψετε τους παραπάνω καταλόγους - μέσα στο <filename>/usr/X11R6/lib/X11/fonts</filename>:</para> - - <screen>&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts</userinput> -&prompt.root; <userinput>mkdir X</userinput> -&prompt.root; <userinput>mkdir MathType1</userinput> -&prompt.root; <userinput>cd /cdrom/Unix/Files/SystemFiles/Fonts</userinput> -&prompt.root; <userinput>cp X/* /usr/X11R6/lib/X11/fonts/X</userinput> -&prompt.root; <userinput>cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1</userinput> -&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts/X</userinput> -&prompt.root; <userinput>mkfontdir</userinput> -&prompt.root; <userinput>cd ../MathType1</userinput> -&prompt.root; <userinput>mkfontdir</userinput></screen> - - <para>Τώρα προσθέστε τους νέους καταλόγους με τις γραμματοσειρές στο - font path:</para> - - <screen>&prompt.root; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/X</userinput> -&prompt.root; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/MathType1</userinput> -&prompt.root; <userinput>xset fp rehash</userinput></screen> - - <para>Αν χρησιμοποιείτε το <application>&xorg;</application>, μπορείτε - να φορτώνετε τις γραμματοσειρές αυτές αυτόματα, προσθέτοντας τους - νέους καταλόγους στο αρχείο <filename>xorg.conf</filename>. - </para> - - <indexterm><primary>fonts</primary></indexterm> - - <para>Αν <emphasis>δεν</emphasis> έχετε ήδη έναν κατάλογο με το - όνομα <filename>/usr/X11R6/lib/X11/fonts/Type1</filename>, μπορείτε να - αλλάξετε το όνομα του <filename>MathType1</filename> από το παραπάνω - παράδειγμα σε <filename>Type1</filename>.</para> - </sect2> - </sect1> - - <sect1 xml:id="linuxemu-maple"> - <info><title>Εγκαθιστώντας το &maple;</title> - <authorgroup> - <author><personname><firstname>Aaron</firstname><surname>Kaplan</surname></personname><contrib>Συνεισφορά του </contrib></author> - </authorgroup> - <authorgroup> - <author><personname><firstname>Robert</firstname><surname>Getschmann</surname></personname><contrib>Ευχαριστίες στον </contrib></author> - </authorgroup> - </info> - - - <indexterm> - <primary>applications</primary> - <secondary><application>Maple</application></secondary> - </indexterm> - - <para>Το <application>&maple;</application> είναι μία εμπορική εφαρμογή - μαθηματικών παρόμοια με το <application>&mathematica;</application>. Θα - πρέπει να αγοράσετε το λογισμικό από - το <uri xlink:href="http://www.maplesoft.com/">http://www.maplesoft.com/</uri> και στη συνέχεια να - κάνετε αίτηση για μια άδεια χρήσης. Για να εγκαταστήσετε το λογισμικό - στο &os;, ακολουθήστε τα παρακάτω απλά βήματα. - </para> - - <procedure> - <step> - <para>Εκτελέστε το <filename>INSTALL</filename> shell script από το - μέσο εγκατάστασης που έχετε. Επιλέξτε <quote>RedHat</quote> όταν - ερωτηθείτε από το πρόγραμμα εγκατάστασης. Ο τυπικός κατάλογος - είναι ο <filename>/usr/local/maple</filename>. - </para> - </step> - - <step> - <para>Αν δεν έχετε αγοράσει ακόμη κάποια άδεια για - το <application>&maple;</application>, αγοράστε μία από το - Maple Waterloo Software - (<uri xlink:href="http://register.maplesoft.com/">http://register.maplesoft.com/</uri>) και - αντιγράψτε το αρχείο που θα σας δοθεί - στο <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>> ${LOG} 1>&2 - echo -n " lmgrd" - ;; -stop) - lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2 - ;; -*) - echo "Usage: `basename $0` {start|stop}" 1>&2 - exit 64 - ;; -esac - -exit 0 - ----- snip ------------</programlisting></step> - - - <step> - <para>Δοκιμή του <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. Επιπλέον - τεκμηρίωση μπορείτε να βρείτε - στο <uri xlink:href="http://www.globetrotter.com/">http://www.globetrotter.com/</uri>. - </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'. Το <systemitem>chillig</systemitem> είναι το όνομα του - συστήματος.</para> - </note> - - <para>Μπορείτε να τροποποιήσετε το αρχείο της άδειας χρήσης, αρκεί - να μην αλλάξετε την γραμμή <quote>FEATURE</quote> (η οποία - προστατεύεται από το κλειδί της άδειας).</para> - </listitem> - </itemizedlist> - </sect2> - </sect1> - - <sect1 xml:id="linuxemu-matlab"> - <info><title>Εγκαθιστώντας το &matlab;</title> - <authorgroup> - <author><personname><firstname>Dan</firstname><surname>Pelleg</surname></personname><contrib>Συνεισφορά του </contrib></author> - <!-- daniel+handbook@pelleg.org --> - </authorgroup> - </info> - - - <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 - στο <uri xlink:href="http://www.mathworks.com">http://www.mathworks.com</uri>. Σιγουρευτείτε ότι - πήρατε και το αρχείο που περιέχει την άδεια χρήσης ή οδηγίες για το πως - να το δημιουργήσετε. Μια και θα επικοινωνήσετε με την εταιρεία, πείτε - τους ότι θα θέλατε να υπάρχει επίσης υποστήριξη για το &os;. - </para> - - <sect2> - <title>Εγκατάσταση του &matlab;</title> - - <para>Για να εγκαταστήσετε το <application>&matlab;</application>, κάντε - τα παρακάτω:</para> - - <procedure> - <step> - <para>Εισάγετε το CD και προσαρτήστε το στο σύστημα σας. Συνδεθείτε - ως χρήστης <systemitem class="username">root</systemitem>, όπως συνιστά το script της - εγκατάστασης. Για να ξεκινήσετε το script της εγκατάστασης δώστε - την εντολή:</para> - - <screen>&prompt.root; <userinput>/compat/linux/bin/sh /cdrom/install</userinput></screen> - - <tip> - <para>Το πρόγραμμα της εγκατάστασης είναι σε γραφικό - περιβάλλον. Αν λαμβάνετε σφάλματα σχετικά με την οθόνη, δώστε - την εντολή: <command>setenv HOME ~USER</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> && echo 'MATLAB_lmgrd' - fi - ;; - stop) - if [ -f /usr/local/etc/lmdown_TMW ]; then - /compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1 - fi - ;; - *) - echo "Usage: $0 {start|stop}" - exit 1 - ;; -esac - -exit 0</programlisting> - - <important> - <para>Το αρχείο πρέπει να είναι εκτελέσιμο:</para> - - <screen>&prompt.root; <userinput>chmod +x /usr/local/etc/rc.d/flexlm.sh</userinput></screen> - - <para>Πρέπει επίσης να αντικαταστήσετε το παραπάνω - <replaceable>username</replaceable> με ένα υπαρκτό όνομα - χρήστη του συστήματος σας (και να μην είναι ο - <systemitem class="username">root</systemitem>).</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 xml: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>Ανάλογα με την έκδοση του - <package>emulators/linux_base</package>, που έχετε, - μπορεί να εμφανιστούν μερικά σφάλματα όταν τρέξετε το - script. Για να το αποφύγετε αυτό, τροποποιήστε το αρχείο - <filename>/compat/linux/usr/local/matlab/bin/matlab</filename>, - και αλλάξτε τη γραμμή που λέει:</para> - - <programlisting>if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then</programlisting> - - <para>(στην έκδοση 13.0.1 βρίσκεται στη γραμμή 410) σε αυτή τη - γραμμή:</para> - - <programlisting>if test -L $newbase; then</programlisting> - </tip> - </sect2> - - <sect2> - <title>Δημιουργία Script Τερματισμού του &matlab; </title> - - <para>Τα επόμενα βήματα χρειάζονται για να λύσετε ένα πρόβλημα που - υπάρχει με τον τερματισμό του &matlab;.</para> - - <procedure> - <step> - <para>Δημιουργήστε το - αρχείο <filename>$MATLAB/toolbox/local/finish.m</filename>, και - μέσα σε αυτό προσθέστε μόνο τη γραμμή:</para> - - <programlisting>! $MATLAB/bin/finish.sh</programlisting> - - <note> - <para>To <literal>$MATLAB</literal> γράψτε το ακριβώς - όπως το βλέπετε.</para> - </note> - - <tip> - <para>Στον ίδιο κατάλογο, θα βρείτε τα - αρχεία <filename>finishsav.m</filename> - και <filename>finishdlg.m</filename>, τα οποία θα σας δίνουν τη - δυνατότητα να σώζετε την εργασία σας πριν κλείσετε το πρόγραμμα. - Αν πρόκειται να χρησιμοποιήσετε κάποιο από αυτά, προσθέστε του - την παραπάνω γραμμή αμέσως μετά την εντολή - <literal>save</literal> .</para></tip> - </step> - - <step> - <para>Δημιουργήστε το - αρχείο <filename>$MATLAB/bin/finish.sh</filename>, το οποίο θα - περιέχει τα παρακάτω:</para> - - <programlisting>#!/compat/linux/bin/sh -(sleep 5; killall -1 matlab_helper) & -exit 0</programlisting> - </step> - - <step> - <para>Κάντε το αρχείο εκτελέσιμο:</para> - - <screen>&prompt.root; <userinput>chmod +x $MATLAB/bin/finish.sh</userinput></screen> - </step> - </procedure> - </sect2> - - <sect2 xml:id="matlab-using"> - <title>Χρησιμοποιώντας το &matlab;</title> - - <para>Σε αυτό το σημείο θα πρέπει να είστε έτοιμοι να δώσετε την - εντολή <command>matlab</command> και να αρχίσετε να χρησιμοποιείτε την - εφαρμογή.</para> - </sect2> - </sect1> - - <sect1 xml:id="linuxemu-oracle"> - <info><title>Εγκατάσταση της &oracle;</title> - <authorgroup> - <author><personname><firstname>Marcel</firstname><surname>Moolenaar</surname></personname><contrib>Συνεισφορά του </contrib></author> - <!-- marcel@cup.hp.com --> - </authorgroup> - </info> - - - <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>Σιγουρευτείτε ότι έχετε εγκαταστήσει - τα <package>emulators/linux_base</package> - και <package>devel/linux_devtools</package> από τη - συλλογή των Ports. Αν αντιμετωπίζετε δυσκολίες με τα παραπάνω, ίσως - χρειαστεί να τα εγκαταστήσετε από πακέτα ή από παλιότερες εκδόσεις της - συλλογής των Ports.</para> - - <para>Αν θέλετε να τρέξετε τον intelligent agent, θα χρειαστεί να - εγκαταστήσετε και το πακέτο Red Hat - Tcl: <filename>tcl-8.0.3-20.i386.rpm</filename>. Η εντολή για την - εγκατάσταση μέσω του επίσημου <application>RPM</application> port - (<package>archivers/rpm</package>) είναι:</para> - - <screen>&prompt.root; <userinput>rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm package</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 xml: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 xml:id="linuxemu-oracle-account"> - - <title>Ο Χρήστης &oracle;</title> - - <para>Δημιουργήστε ένα χρήστη συστήματος με - όνομα <systemitem class="username">oracle</systemitem>, με τον ίδιο τρόπο που θα - δημιουργούσατε και οποιονδήποτε άλλον χρήστη. Το μόνο ιδιαίτερο - χαρακτηριστικό του χρήστη <systemitem class="username">oracle</systemitem> είναι ότι - χρειάζεται να του δώσετε ένα κέλυφος Linux. Προσθέστε - το <literal>/compat/linux/bin/bash</literal> - στο <filename>/etc/shells</filename> και ορίστε το κέλυφος του - χρήστη <systemitem class="username">oracle</systemitem> - σε <filename>/compat/linux/bin/bash</filename>.</para> - </sect3> - - <sect3 xml: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>, πριν ξεκινήσετε το πρόγραμμα - εγκατάστασης. Ο κατάλογος αυτός θα πρέπει να ανήκει - στον χρήστη <systemitem class="username">oracle</systemitem>. Θα πρέπει τώρα να - πραγματοποιήσετε την εγκατάσταση - της <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 xml:id="linuxemu-patch-root"> - <title>Διόρθωση του root.sh</title> - - <para>Όταν εγκαθιστάτε την <application>&oracle;</application>, - κάποιες ενέργειες, οι οποίες χρειάζονται να γίνουν - ως <systemitem class="username">root</systemitem>, καταγράφονται σε ένα 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 xml: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 xml:id="linuxemu-advanced"> - <title>Προχωρημένα Θέματα</title> - - <para>Αν έχετε την απορία πως λειτουργεί η συμβατότητα με εφαρμογές Linux, - τότε θα πρέπει να διαβάσετε τη παρακάτω ενότητα. Τα περισσότερα από όσα - έχουν γραφτεί είναι βασισμένα στην &a.chat; και έχουν γραφτεί από τον - Terry Lambert <email>tlambert@primenet.com</email> (Message ID: - <literal><199906020108.SAA07001@usr09.primenet.com></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/original-path</filename>, <emphasis>και μόνο</emphasis> - αν αυτό αποτύχει, θα γίνει αναζήτηση στον κατάλογο - <filename>/original-path</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 δεν θα ήταν αλήθεια, - μια και χρειαζόταν να ενσωματωθεί κάποιος κώδικας στον πυρήνα, ή να - φορτωθεί κάποιο άρθρωμα. Χρειαζόταν κάποια λέξη που να περιγράφει τι - φορτωνόταν—έτσι προέκυψε ο <quote>εξομοιωτής Linux</quote>. - </para> - </sect2> - </sect1> -</chapter> |