doc/it_IT.ISO8859-15/books/handbook/linuxemu/chapter.xml
Gabor Kovesdan a6684b4306 - Reduce the misuse of role attribute; role="directory" should actually be
class="directory"
- Add constraint to enforce this
2013-04-04 11:40:58 +00:00

3893 lines
143 KiB
XML

<?xml version="1.0" encoding="iso-8859-15"?>
<!--
The FreeBSD Italian Documentation Project
$FreeBSD$
Original revision: 1.134
-->
<chapter id="linuxemu">
<chapterinfo>
<authorgroup>
<author>
<firstname>Jim</firstname>
<surname>Mock</surname>
<contrib>Riscritto e parzialmente rivisto da </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Brian N.</firstname>
<surname>Handy</surname>
<contrib>Contributo originale di </contrib>
</author>
<author>
<firstname>Rich</firstname>
<surname>Murphey</surname>
</author>
</authorgroup>
</chapterinfo>
<title>Compatibilità con i Binari di Linux</title>
<sect1 id="linuxemu-synopsis">
<title>Sinossi</title>
<indexterm>
<primary>Compatibilità con i binari di linux</primary>
</indexterm>
<indexterm>
<primary>compatibilità con i binari</primary>
<secondary>Linux</secondary>
</indexterm>
<para>FreeBSD fornisce la compatibilità con molti altri sisitemi
operativi di tipo &unix;, compreso linux. A questo punto, potresti
chiederti perché FreeBSD dovrebbe essere in grado di far girare
binari linux. La risposta a questa domanda è piuttosto semplice.
Molte aziende e sviluppatori sviluppano solo per Linux, dal momento che
&grave; l'ultimo <quote>disco caldo</quote> nel mondo dell'informatica.
Questo costringe il resto di noi utenti di FreeBSD a lamentarci con
queste aziende e questi sviluppatori di distribuire versioni delle
loro applicazioni native per FreeBSD. Il problema è che molte
di queste aziende non realizzano quante persone userebbero il loro
prodotto se ci fosse anche una versione per FreeBSD, e molte continuano
a sviluppare solo per Linux. Allora cosa deve fare un utente FreeBSD?
E qui entra in giocolo la compatibilità con i binari di
Linux.</para>
<para>In breve, la compatibilità permette agli utenti FreeBSD di
utilizzare circa il 90% di tutte le applicazioni Linux senza modifiche.
Questo include applicazioni come <application>&staroffice;
</application>, la versione Linux di
<application>&netscape;</application>,
<application>&adobe;&nbsp;&acrobat;</application>,
<application>&realplayer;</application>,
<application><trademark>VMware</trademark></application>,
<application>&oracle;</application>,
<application>&wordperfect;</application>,
<application>Doom</application>,
<application>Quake</application>, e tanti altri. È stato
riportato che in qualche situazione i binari per Linux sono più
prestanti sotto FreeBSD che sotto Linux.</para>
<para>Nonostante questo, ci sono alcune caratteristiche specifiche del
sistema operativo Linux che non sono supportate da FreeBSD. I binari di
Linux non funzioneranno sotto FreeBSD se usano parecchie chiamate
specifiche per &i386;, come l'attivazione della modalità 8086
virtuale</para>
<para>Dopo aver letto questo capitolo, saprai:</para>
<itemizedlist>
<listitem>
<para>Come abilitare la compatibilità con i binari Linux sul tuo
sistema.</para>
</listitem>
<listitem>
<para>Come installare ulteriori librerie condivise per Linux.</para>
</listitem>
<listitem>
<para>Come installare gli applicativi di Linux sul tuo sistema
FreeBSD.</para>
</listitem>
<listitem>
<para>I dettagli dell'implementazione della compatibilità Linux
in FreeBSD.</para>
</listitem>
</itemizedlist>
<para>Prima di leggere questo capitolo, dovresti:</para>
<itemizedlist>
<listitem>
<para>Sapere come installare software di terzi (<xref
linkend="ports"/>).</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="linuxemu-lbc-install">
<title>Installazione</title>
<indexterm><primary>KLD (kernel loadable object)</primary></indexterm>
<para>La compatibilità con i binari Linux non è normalmente
attivata. Il modo più facile per abilitare questa
funzionalità è caricare l'oggetto KLD (<quote>Kernel
LoaDable object</quote>) <literal>linux</literal>. Puoi caricare questo
modulo digitando il comando seguente come
<username>root</username>:</para>
<screen>&prompt.root; <userinput>kldload linux</userinput></screen>
<para>Se vuoi che la compatiblità sia sempre attivata, dovresti
aggiungere questa linea a <filename>/etc/rc.conf</filename>:</para>
<programlisting>linux_enable="YES"</programlisting>
<para>Il comando &man.kldstat.8; può essere usato per verificare
se KLD sia stato caricato:</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>opzioni per il kernel</primary>
<secondary>COMPAT_LINUX</secondary>
</indexterm>
<para>Se per qualche ragione non vuoi o non puoi caricare KLD, puoi
collegare staticamente la compatibilità Linux nel kernel
aggiungendo <literal>options COMPAT_LINUX</literal> al file di
configurazione del kernel. Fatto questo puoi installare il nuovo kernel
come descritto in <xref linkend="kernelconfig"/>.</para>
<sect2>
<title>Installazione delle Librerie Runtime di Linux</title>
<indexterm>
<primary>Linux</primary>
<secondary>installazione delle librerie di Linux</secondary>
</indexterm>
<para>Questo può essere fatto in due modi, o usando il port
<link linkend="linuxemu-libs-port">linux_base</link>, oppure
installandole <link
linkend="linuxemu-libs-manually">manualmente</link>.</para>
<sect3 id="linuxemu-libs-port">
<title>Installazione Usando il Port linux_base</title>
<indexterm><primary>Collezione dei Port</primary></indexterm>
<para>Questo è di gran lunga il metodo più facile da usare
per installare le librerie runtime. È proprio come installare
qualunque altro port dalla <ulink type="html"
url="file://localhost/usr/ports/">Collezione dei Port</ulink>.
Semplicemente fai come segue:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_base-fc4</userinput>
&prompt.root; <userinput>make install distclean</userinput></screen>
<para>In questo modo dovresti avere una compatibilità con i
binari di Linux funzionante. Alcuni programmi potrebbero lamentarsi
per qualche versione minore delle librerie di sistema. In generale,
comunque, questo non dovrebbe essere un problema.</para>
<note>
<para>Potrebbero essere disponibili più versioni del port
<filename role="package">emulators/linux_base</filename>,
corrispondenti a differenti versioni di distribuzioni Linux.
Dovresti installare il port che più soddisfa le richieste
della applicazione Linux che vuoi installare.</para>
</note>
</sect3>
<sect3 id="linuxemu-libs-manually">
<title>Installazione Manuale delle Librerie</title>
<para>Se non hai installata la collezione di <quote>ports</quote>, puoi
comunque installare le librerie manualmente. Hai bisogno delle
librerie condivise di Linux da cui il programma dipende e del runtime
linker.
In più dovrai creare una directory <quote>shadow root</quote>,
<filename>/compat/linux</filename>, per le librerie Linux sul tuo
sistema FreeBSD. Tutte le librerie condivise aperte da programmi
Linux che girano sotto FreeBSD cercheranno prima in questo albero.
Per cui, se un programma Linux carica, per esempio,
<filename>/lib/libc.so</filename>, FreeBSD prima cercherà di
aprire <filename>/compat/linux/lib/libc.so</filename>, e se questa non
esiste, proverà con <filename>/lib/libc.so</filename>.
Le librerie condivise dovrebbero essere installate nell'albero shadow
<filename>/compat/linux/lib</filename> piuttosto che nei path
che riporta <command>ld.so</command> di Linux.</para>
<para>Generalmente avrai bisogno di cercare le librerie condivise
da cui dipendono i binari di Linux solo per le prime poche
installazioni di programmi Linux sul tuo sistema FreeBSD. Dopo un po'
avrai a disposizione sul tuo sistema un insieme sufficiente di
librerie condivise per Linux da far girare nuovi binari Linux senza
alcun sforzo ulteriore.</para>
</sect3>
<sect3>
<title>Come Installare Ulteriori Librerie Condivise</title>
<indexterm><primary>librerie condivise</primary></indexterm>
<para>Cosa succede se installi il port <filename>linux_base</filename> e
la tua applicazione si lamenta ancora di librerie condivise che
mancano?
Come fare a sapere quali librerie condivise necessita il binario di
Linux e dove trovarle? Essenzialmente ci sono 2 possibilità
(per seguire queste istruzioni dovrai essere <username>root</username>
sul tuo sistema FreeBSD).</para>
<para>Se hai accesso ad un sistema Linux, guarda quali librerie
condivise servono all'applicazione e copiale nel tuo sistema FreeBSD.
Guarda all'esempio che segue:</para>
<informalexample>
<para>Poniamo che tramite FTP tu abbia recuperato il binario per Linux
di <application>Doom</application>, e l'abbia messo su un sistema
Linux a cui hai accesso. Puoi controllare quali librerie condivise
servono eseguendo <command>ldd linuxdoom</command>,
così:</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>link simbolici</primary></indexterm>
<para>Potresti aver bisogno di recuperare tutti i file dall'ultima
colonna, e di metterli sotto <filename>/compat/linux</filename>,
con i nomi nella prima colonna come link simbolici che puntino ad
essi.
Questo significa che alla fine avrai questi file sul tuo sistema
FreeBSD:</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>Nota che se hai già una libreria condivisa di Linux
con un numero di revisione maggiore di quello della prima
colonna dell'output di <command>ldd</command>, non dovrai
copiare nel tuo sistema il file elencato nell'ultima colonna,
quello che hai dovrebbe funzionare. Si raccomanda di copiare
comunque la libreria condivisa se è una versione
più recente. Puoi rimuovere quella vecchia, dal momento
che crei il link simbolico che punta a quella
nuova. Quindi, se hai queste librerie sul tuo sistema:</para>
<screen>/compat/linux/lib/libc.so.4.6.27
/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.27</screen>
<para>e vedi che un nuovo binario richiede una versione più
recente in base all'output di
<command>ldd</command>:</para>
<screen>libc.so.4 (DLL Jump 4.5pl26) -&gt; libc.so.4.6.29</screen>
<para>Se si tratta solo di una o due versioni precedenti in base
alla cifra finale allora non preoccuparti di copiare anche
<filename>/lib/libc.so.4.6.29</filename>, perché il
programma dovrebbe funzionare bene anche con una versione di
poco più vecchia. In ogni caso, se vuoi, puoi decidere
di rimpiazzare comunque
<filename>libc.so</filename>, e dovrebbe lasciarti con:</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>Il meccanismo dei link simbolici è richiesto
<emphasis>solo</emphasis> per i binari di Linux. Il runtime
linker di FreeBSD si occupa da solo di cercare corrispondenti
numeri di revisione maggiori e non devi preoccuparti di
questo.</para>
</note>
</blockquote>
</informalexample>
</sect3>
</sect2>
<sect2>
<title>Installazione di Binari ELF di Linux</title>
<indexterm>
<primary>Linux</primary>
<secondary>Binari ELF</secondary>
</indexterm>
<para>I binari ELF possono richiedere un ulteriore passo di
<quote>marchiatura</quote>. Se provi a far girare un binario ELF non
marchiato, incorrerai in un messaggio come il seguente:</para>
<screen>&prompt.user; <userinput>./my-linux-elf-binary</userinput>
ELF binary type not known
Abort</screen>
<para>Per aiutare il kernel di FreeBSD a distinguere un binario ELF
di FreeBSD da uno di Linux, usa l'utility &man.brandelf.1;.</para>
<screen>&prompt.user; <userinput>brandelf -t Linux my-linux-elf-binary</userinput></screen>
<indexterm><primary>GNU toolchain</primary></indexterm>
<para>Oggi, la GNU toolchain inserisce automaticamente l'appropriata
informazione di marchiatura nei binari ELF, così questo passo
dovrebbe divenire sempre meno necessario nel futuro.</para>
</sect2>
<sect2>
<title>Configurazione del Hostname Resolver</title>
<para>Se il DNS non funziona o da questo messaggio:</para>
<screen>resolv+: "bind" is an invalid keyword resolv+:
"hosts" is an invalid keyword</screen>
<para>Dovrai configurare un file
<filename>/compat/linux/etc/host.conf</filename> contentente:</para>
<programlisting>order hosts, bind
multi on</programlisting>
<para>Qui, l'ordine specifica che <filename>/etc/hosts</filename>
viene cercato per primo e il DNS per secondo. Quando
<filename>/compat/linux/etc/host.conf</filename> non è
installato, le applicazioni Linux trovano il
<filename>/etc/host.conf</filename> di FreeBSD e si lamentano della
sintassi incompatibile di FreeBSD. Dovresti rimuovere
<literal>bind</literal> se non hai configurato un name server
usando il file <filename>/etc/resolv.conf</filename>.</para>
</sect2>
</sect1>
<sect1 id="linuxemu-mathematica">
<sect1info>
<authorgroup>
<author>
<firstname>Bojan</firstname>
<surname>Bistrovic</surname>
<contrib>Aggiornato per Mathematica 5.X da </contrib>
</author>
</authorgroup>
</sect1info>
<title>Installazione di &mathematica;</title>
<indexterm>
<primary>applicazioni</primary>
<secondary><application>Mathematica</application></secondary>
</indexterm>
<para>Questo documento descive il processo di installazione della versione
Linux di <application>&mathematica; 5.X</application> su un sistema
FreeBSD.</para>
<para>La versione Linux di <application>&mathematica;</application>
o di <application>&mathematica; for Students</application> può
essere ordinata direttamente da Wolfram all'indirizzo
<ulink url="http://www.wolfram.com/"></ulink>.</para>
<sect2>
<title>Avviare l'Installer di &mathematica;</title>
<para>Prima di tutto, devi indicare a &os; che i binari
Linux di <application>&mathematica;</application> usano
le ABI di Linux. Il modo più facile di farlo
è di settare il tipo di ELF a Linux per tutti i
binari non marchiati con il comando:</para>
<screen>&prompt.root; <userinput>sysctl kern.fallback_elf_brand=3</userinput></screen>
<para>In questo modo &os; assume che tutti i binari ELF non
marchiati usino l'ABI di Linux e quindi dovresti essere in grado
di eseguire l'installer direttamente dal CDROM.</para>
<para>Ora, copia il file <filename>MathInstaller</filename> sul
tuo disco:</para>
<screen>&prompt.root; <userinput>mount /cdrom</userinput>
&prompt.root; <userinput>cp /cdrom/Unix/Installers/Linux/MathInstaller /localdir/</userinput></screen>
<para>e in questo file, rimpiazza la prima riga
<literal>/bin/sh</literal> con
<literal>/compat/linux/bin/sh</literal>.
Questo assicura che l'installer viene eseguito dalla
versione Linux di &man.sh.1;. Poi, rimpiazza tutte
le occorrenze di <literal>Linux)</literal> con
<literal>FreeBSD)</literal> utilizzando un editor
di testo o lo script mostrato nella prossima sezione.
Questo indica all'installer di
<application>&mathematica;</application>,
che chiama <command>uname -s</command> per determinare
il sistema operativo, per trattare &os; come un sistema
operativo Linux-like. Invocando
<command>MathInstaller</command> verrà installato
<application>&mathematica;</application>.</para>
</sect2>
<sect2>
<title>Modifica degli Eseguibili di &mathematica;</title>
<para>Gli script di shell che
<application>&mathematica;</application> crea durante
l'installazione devono essere modificati prima di
poterli usare. Se hai scelto di mettere gli
eseguibili di <application>&mathematica;</application>
nella directory
<filename class="directory">/usr/local/bin</filename>,
troverai in questa directory dei link simbolici chiamati
<filename>math</filename>, <filename>mathematica</filename>,
<filename>Mathematica</filename>, e
<filename>MathKernel</filename>. In ognuno di questi,
sostituisci <literal>Linux)</literal> con
<literal>FreeBSD)</literal> usando un editor di testo o
il seguente script di shell:</para>
<programlisting>#!/bin/sh
cd /usr/local/bin
for i in math mathematica Mathematica MathKernel
do sed 's/Linux)/FreeBSD)/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>Ottenere la Tua Password per &mathematica;</title>
<indexterm>
<primary>Ethernet</primary>
<secondary>MAC address</secondary>
</indexterm>
<para>Quando avvii <application>&mathematica;</application>
per la prima volta, ti verrà richiesta una password.
Se non hai ancora ottenuto una password da Wolfram,
esegui il programma <command>mathinfo</command> nella
directory di installazione per ottenere il tuo
<quote>ID di macchina</quote>. Questo ID è basato
esclusivamente sull'indirizzo MAC della tua prima scheda di
Ethernet, quindi non puoi eseguire la tua copia di
<application>&mathematica;</application> su macchine diverse.</para>
<para>Quando ti registri alla Wolfram, sia per email, telefono o fax, gli
darai il <quote>machine ID</quote> e loro ti restituiranno una password
corrispondente che consiste di un gruppo di numeri.</para>
</sect2>
<sect2>
<title>Lancio del Frontend di &mathematica; in una Rete</title>
<para><application>&mathematica;</application> usa alcuni font speciali
per visualizzare caratteri non presenti in alcun insieme standard di
font (integrali, sommatorie, lettere greche, ecc.). Il protocollo X
necessita che questi font siano installati
<emphasis>localmente</emphasis>. Questo significa che dovrai fare una
copia di questi font sulla tua macchina locale dal CDROM o da un host
con <application>&mathematica;</application>
installato. Questi font si trovano normalmente in
<filename>/cdrom/Unix/Files/SystemFiles/Fonts</filename> sul CDROM,
oppure <filename>/usr/local/mathematica/SystemFiles/Fonts</filename> sul
tuo disco rigido. I font sono nelle sottodirectory
<filename>Type1</filename> e <filename>X</filename>. Ci sono molti modi
di usarli, come descritto sotto.</para>
<para>Il primo modo è di copiarli dentro una delle directory di
font esistenti in <filename>/usr/X11R6/lib/X11/fonts</filename>.
Questo comporterà la modifica del file
<filename>fonts.dir</filename>, aggiungendovi i nomi dei font e
cambiando il numero di font nella prima riga. In alternativa, dovresti
anche essere in grado di lanciare &man.mkfontdir.1; nella directory in
cui li hai copiati.</para>
<para>Il secondo modo di farlo è copiare le directory in
<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>Poi aggiungi le nuove directory di font nel tuo path dei
font:</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>Se stai utilizzando il server <application>&xorg;</application>,
puoi caricare automaticamente queste directory di font aggiungendole nel
file <filename>xorg.conf</filename>.</para>
<note>
<para>Per i server <application>&xfree86;</application>,
il file di configurazione è
<filename>XF86Config</filename>.</para>
</note>
<indexterm><primary>fonts</primary></indexterm>
<para>Se ancora <emphasis>non</emphasis> hai una directory
chiamata <filename>/usr/X11R6/lib/X11/fonts/Type1</filename>, puoi
cambiare il nome della directory <filename>MathType1</filename>
dell'esempio sopra in <filename>Type1</filename>.</para>
</sect2>
</sect1>
<sect1 id="linuxemu-maple">
<sect1info>
<authorgroup>
<author>
<firstname>Aaron</firstname>
<surname>Kaplan</surname>
<contrib>Contributo di </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Robert</firstname>
<surname>Getschmann</surname>
<contrib>Grazie a </contrib>
</author>
</authorgroup>
</sect1info>
<title>Installazione di &maple;</title>
<indexterm>
<primary>applicazioni</primary>
<secondary><application>Maple</application></secondary>
</indexterm>
<para><application>&maple;</application> è un programma commerciale
di matematica simile a <application>&mathematica;</application>. Devi
acquistare questo software da <ulink
url="http://www.maplesoft.com/"></ulink> e quindi registrarti per un
file di licenza. Per installare questo software su FreeBSD, segui i
passi seguenti.</para>
<procedure>
<step>
<para>Esegui lo script di shell <filename>INSTALL</filename> dalla
distribuzione del prodotto. Scegli l'opzione <quote>RedHat</quote>
quando richiesto dal programma di installazione. Una tipica
directory di installazione potrebbe essere <filename
class="directory">/usr/local/maple</filename>.</para>
</step>
<step>
<para>Se ancora non l'hai fatto, ordina una licenza per
<application>&maple;</application> dalla Maple Waterloo Software
(<ulink url="http://register.maplesoft.com/"></ulink>) e copiala in
<filename>/usr/local/maple/license/license.dat</filename>.</para>
</step>
<step>
<para>Installa il gestore della licenza
<application>FLEXlm</application> lanciando lo shell script di
installazione <filename>INSTALL_LIC</filename>, distribuito assieme
a <application>&maple;</application>. Specifica l'hostname primario
della la tua macchina per il server delle licenze.</para>
</step>
<step>
<para>Modifica il file
<filename>/usr/local/maple/bin/maple.system.type</filename>
aggiungendo:</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>Nota che dopo <literal>"FreeBSD"|\</literal> non ci devono essere
altri spazi bianchi.</para>
<para>Questa patch dice a <application>&maple;</application> di
riconoscere <quote>FreeBSD</quote> come un tipo di sistema Linux.
Lo shell script <filename>bin/maple</filename> richiama lo shell
script <filename>bin/maple.system.type</filename> che a sua volta
chiama <command>uname -a</command> per determinare il nome del sistema
operativo. A seconda del nome del SO capirà quali binari
utilizzare.</para>
</step>
<step>
<para>Avviare il server delle licenze.</para>
<para>Lo script seguente, installato come
<filename>/usr/local/etc/rc.d/lmgrd.sh</filename> è un modo
facile per far partire <command>lmgrd</command>:</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;&amp;2
echo -n " lmgrd"
;;
stop)
llmgrd -c ${LICENSE_FILE} -x lmdown 2&gt;&gt; ${LOG} 1&gt;&amp;2
;;
*)
echo "Usage: `basename $0` {start|stop}" 1&gt;&amp;2
exit 64
;;
esac
exit 0
----- snip ------------</programlisting>
</step>
<step>
<para>Fai un test di avvio di
<application>&maple;</application>:</para>
<screen>&prompt.user; <userinput>cd /usr/local/maple/bin</userinput>
&prompt.user; <userinput>./xmaple</userinput></screen>
<para>Dovrebbe funzionare. Assicurati di scrivere alla Maplesoft per
fargli sapere che vorresti avere una versione nativa per &os;!</para>
</step>
</procedure>
<sect2>
<title>Problemi Comuni</title>
<itemizedlist>
<listitem>
<para>Il gestore della licenza <application>FLEXlm</application>
può essere uno strumento difficile con cui lavorare.
A questo riguardo si può trovare della documentazione in
più a <ulink
url="http://www.globetrotter.com/"></ulink>.</para>
</listitem>
<listitem>
<para>Si sa che <command>lmgrd</command> è molto esigente
riguardo al file della licenza e che va in core dump per qualunque
problema. Un buon file della licenza dovrebbe essere
così:</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>Il numero seriale e la chiave sono sostituiti dalle 'X'.
<hostid>chillig</hostid> è un hostname.</para>
</note>
<para>Modificare il file della licenza funziona fino a quando non
tocchi la linea <quote>FEATURE</quote> (che è protetta dalla
chiave della licenza).</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="linuxemu-matlab">
<sect1info>
<authorgroup>
<author>
<firstname>Dan</firstname>
<surname>Pelleg</surname>
<contrib>Contributo di </contrib>
</author>
</authorgroup>
</sect1info>
<title>Installazione di &matlab;</title>
<indexterm>
<primary>applicazioni</primary>
<secondary><application>MATLAB</application></secondary>
</indexterm>
<para>Questo documento descrive il processo di installazione della versione
Linux di <application>&matlab; versione 6.5</application> su
un sistema &os;. Funziona abbastanza bene, con l'eccezione per la
<application>&java.virtual.machine;</application> (vedi
<xref linkend="matlab-jre"/>).</para>
<para>La versione Linux di <application>&matlab;</application> può
essere ordinata direttamente dalla MathWorks all'indirizzo <ulink
url="http://www.mathworks.com"></ulink>. Assicurati di avere il file
della licenza o le istruzioni per crearlo. Già che ci sei, fagli
sapere che vorresti una versione nativa per &os; del loro software.</para>
<sect2>
<title>Installazione di &matlab;</title>
<para>Per installare <application>&matlab;</application>, fai come
segue:</para>
<procedure>
<step>
<para>Inserisci il CD di installazione e montalo.
Diventa <username>root</username>, come consigliato dallo script
di installazione. Per avviare lo script di installazione
scrivi:</para>
<screen>&prompt.root; <userinput>/compat/linux/bin/sh /cdrom/install</userinput></screen>
<tip>
<para>L'installer è grafico. Se ottieni errori riguardo
all'impossibilità ad aprire un display, scrivi
<command>setenv HOME ~<replaceable>USER</replaceable></command>,
dove <replaceable>USER</replaceable> è l'utente che hai
fatto &man.su.1;.</para>
</tip>
</step>
<step>
<para>
Quando viene chiesta la directory root per
<application>&matlab;</application>, scrivi:
<userinput>/compat/linux/usr/local/matlab</userinput>.</para>
<tip>
<para>Per una più facile scrittura nel resto del processo
di installazione, scrivi questo nella linea di comando della
shell:
<command>set MATLAB=/compat/linux/usr/local/matlab</command></para>
</tip>
</step>
<step>
<para>Modifica il file della licenza secondo le istruzioni avute
quando hai ottenuto la licenza di
<application>&matlab;</application>.</para>
<tip>
<para>Puoi preparare questo file in anticipo usando il tuo editor
preferito, e copiarlo in
<filename>$MATLAB/license.dat</filename> prima che l'installer
ti chieda di modificarlo.</para>
</tip>
</step>
<step>
<para>Completare il processo di installazione.</para>
</step>
</procedure>
<para>A questo punto la tua installazione di
<application>&matlab;</application> è completa. I punti
seguenti applicano una <quote>colla</quote> per connetterlo al tuo
sistema &os;.</para>
</sect2>
<sect2>
<title>Avvio del License Manager</title>
<procedure>
<step>
<para>Crea dei symlink per gli script del gestore della
licenza:</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>Crea un file d'avvio in
<filename>/usr/local/etc/rc.d/flexlm.sh</filename>. L'esempio qui
sotto è una versione modificata del
<filename>$MATLAB/etc/rc.lm.glnx86</filename> venduto. I
cambiamenti sono le posizioni del file e l'avvio del license manager
sotto l'emulazione Linux.</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>Il file deve essere reso eseguibile:</para>
<screen>&prompt.root; <userinput>chmod +x /usr/local/etc/rc.d/flexlm.sh</userinput></screen>
<para>In aggiunta sostituisci <replaceable>username</replaceable>
sopra con il nome di un utente valido sul tuo sistema (e non
<username>root</username>).</para>
</important>
</step>
<step>
<para>Avvia il gestore della licenza con il comando:</para>
<screen>&prompt.root; <userinput>/usr/local/etc/rc.d/flexlm.sh start</userinput></screen>
</step>
</procedure>
</sect2>
<sect2 id="matlab-jre">
<title>Collegare il &java; Runtime Environment</title>
<para>Cambia il link al <application>&java;</application> Runtime
Environment (JRE) con uno che funzioni sotto &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>Creazione di uno Script di Avvio per &matlab;</title>
<procedure>
<step>
<para>Poni il seguente script di avvio in
<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>Quindi scrivi il comando
<command>chmod +x /usr/local/bin/matlab</command>.</para>
</step>
</procedure>
<tip>
<para>A seconda della tua versione di
<filename role="package">emulators/linux_base</filename>, potresti
incorrere in errori quando lanci questo script. Per evitarli,
modifica il file
<filename>/compat/linux/usr/local/matlab/bin/matlab</filename>,
e cambia la riga che dice:</para>
<programlisting>if [ `expr "$lscmd" : '.*-&gt;.*'` -ne 0 ]; then</programlisting>
<para>(nella versione 13.0.1 è alla riga 410) con questa
riga:</para>
<programlisting>if test -L $newbase; then</programlisting>
</tip>
</sect2>
<sect2>
<title>Creazione di uno script di arresto per &matlab;</title>
<para>Quello che segue serve per risolvere un problema con &matlab;
quando non si chiude correttamente.</para>
<procedure>
<step>
<para>Crea un file
<filename>$MATLAB/toolbox/local/finish.m</filename>,
e scrivici l'unica riga:</para>
<programlisting>! $MATLAB/bin/finish.sh</programlisting>
<note><para><literal>$MATLAB</literal> è letterale.</para></note>
<tip>
<para>Nella stessa directory troverai i file
<filename>finishsav.m</filename> e
<filename>finishdlg.m</filename>,
che permettono di salvare il tuo lavoro all'uscita. Se ne usi
uno, inserisci la riga sopra immediatamente dopo il comando
<literal>save</literal>.</para>
</tip>
</step>
<step>
<para>Crea un file
<filename>$MATLAB/bin/finish.sh</filename>, che contiene ciò
che segue:</para>
<programlisting>#!/usr/compat/linux/bin/sh
(sleep 5; killall -1 matlab_helper) &amp;
exit 0</programlisting>
</step>
<step>
<para>Rendi il file eseguibile:</para>
<screen>&prompt.root; <userinput>chmod +x $MATLAB/bin/finish.sh</userinput></screen>
</step>
</procedure>
</sect2>
<sect2 id="matlab-using">
<title>Uso di &matlab;</title>
<para>A questo punto sei pronto per scrivere
<command>matlab</command> e cominciare ad usarlo.</para>
</sect2>
</sect1>
<sect1 id="linuxemu-oracle">
<sect1info>
<authorgroup>
<author>
<firstname>Marcel</firstname>
<surname>Moolenaar</surname>
<contrib>Contributo di </contrib>
</author>
</authorgroup>
</sect1info>
<title>Installazione di &oracle;</title>
<indexterm>
<primary>applicazioni</primary>
<secondary><application>Oracle</application></secondary>
</indexterm>
<sect2>
<title>Prefazione</title>
<para>Questo documento descrive il processo di installazione per
<application>&oracle; 8.0.5</application> e
<application>&oracle; 8.0.5.1 Enterprise Edition</application> per
Linux su una macchina FreeBSD.</para>
</sect2>
<sect2>
<title>Installazione dell'Ambiente Linux</title>
<para>Assicurati di avere installati sia
<filename role='package'>emulators/linux_base</filename> che
<filename role='package'>devel/linux_devtools</filename> dalla
collezione dei port. Se hai difficoltà con questi port, potresti
dover usare i pacchetti o versioni più vecchie disponibili nella
collezione dei port.</para>
<para>Se vuoi far girare l'intelligent agent, dovrai anche installare
il pacchetto Tcl di Red Hat :<filename>tcl-8.0.3-20.i386.rpm</filename>.
Il comando generale per l'installazione dei pacchetti con il port degli
<application>RPM</application> ufficiali (<filename
role='package'>archivers/rpm</filename>) è:</para>
<screen>&prompt.root; <userinput>rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm <replaceable>pacchetto</replaceable></userinput></screen>
<para>L'installazione del <replaceable>pacchetto</replaceable> non
dovrebbe generare alcun errore.</para>
</sect2>
<sect2>
<title>Creazione dell'ambiente &oracle;</title>
<para>Prima di installare <application>&oracle;</application>, devi
impostare un ambiente appropriato. Questo documento descrive solo cosa
fare <emphasis>in particolare</emphasis> per far girare
<application>&oracle;</application> per Linux su FreeBSD, non cosa
è descritto nella guida di installazione di
<application>&oracle;</application>.</para>
<sect3 id="linuxemu-kernel-tuning">
<title>Affinamento del Kernel</title>
<indexterm><primary>affinamento del kernel</primary></indexterm>
<para>Come viene descritto nella guida di installazione di
<application>&oracle;</application>, devi impostare la dimensione
massima di memoria condivisa. Non usare <literal>SHMMAX</literal>
sotto FreeBSD.
<literal>SHMMAX</literal> è soltanto calcolato a partire da
<literal>SHMMAXPGS</literal> e <literal>PGSIZE</literal>. Di
conseguenza definisci <literal>SHMMAXPGS</literal>. Tutte le altre
opzioni possono essere usate come descritte nella guida.
Per esempio:</para>
<programlisting>options SHMMAXPGS=10000
options SHMMNI=100
options SHMSEG=10
options SEMMNS=200
options SEMMNI=70
options SEMMSL=61</programlisting>
<para>Imposta queste opzioni per ottenere l'uso desiderato di
<application>&oracle;</application>.</para>
<para>In più, assicurati di avere le seguenti opzioni nel file
di configurazione del tuo kernel:</para>
<programlisting>options SYSVSHM #SysV shared memory
options SYSVSEM #SysV semaphores
options SYSVMSG #SysV interprocess communication</programlisting>
</sect3>
<sect3 id="linuxemu-oracle-account">
<title>Account di &oracle;</title>
<para>Crea un account <username>oracle</username> proprio come faresti
per creare qualunque altro account. L'account
<username>oracle</username>
è speciale solo se hai bisogno di usarlo in una shell di Linux.
Aggiungi <literal>/compat/linux/bin/bash</literal> a
<filename>/etc/shells</filename> e imposta la shell per l'account di
<username>oracle</username> in
<filename>/compat/linux/bin/bash</filename>.</para>
</sect3>
<sect3 id="linuxemu-environment">
<title>Ambiente</title>
<para>A fianco dele normali variabili
<application>&oracle;</application>,
come <envar>ORACLE_HOME</envar> e <envar>ORACLE_SID</envar> devi
impostare le seguenti variabili d'ambiente:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<colspec colwidth="1*"/>
<colspec colwidth="2*"/>
<thead>
<row>
<entry>Variabile</entry>
<entry>Valore</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>Si raccomanda di impostare tutte le variabili d'ambiente in
<filename>.profile</filename>. Un esempio completo:</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>Installazione di &oracle;</title>
<para>A causa di una leggera inconsistenza nell'emulatore Linux,
devi creare una directory chiamata <filename>.oracle</filename> in
<filename>/var/tmp</filename> prima di avviare l'installer.
Fallo appartenere dall'utente <username>oracle</username> e dovresti
essere in grado di installare <application>&oracle;</application>
senza alcun problema. Se hai problemi, controlla prima la tua
distribuzione e/o configurazione di <application>&oracle;</application>!
Dopo che hai installato <application>&oracle;</application>, applica
le patch descritte nelle prossime due sottosezioni.</para>
<para>Un problema frequente è che l'adattatore del protocollo
TCP non è installato corretamente. Di conseguenza non puoi
avviare alcun listener TCP. Le seguenti azioni aiutano a risolvere
questo problema:</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>Non dimenticarti di eseguire <filename>root.sh</filename>
ancora!</para>
<sect3 id="linuxemu-patch-root">
<title>Modifiche a root.sh</title>
<para>Nell'installazione di <application>&oracle;</application>, alcune
azioni, che vanno eseguite come <username>root</username>, sono
registrate in uno script di shell chiamato
<filename>root.sh</filename>.
Questo script si trova nella directory <filename>orainst</filename>.
Applica questa patch a <filename>root.sh</filename>, in modo che usi
propriamente <command>chown</command> o, in alternativa, esegui lo
script in una shell nativa di 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>Se non installi <application>&oracle;</application> dal CD, puoi
aggiungere la patch al sorgente di <filename>root.sh</filename>. Si
chiama <filename>rthd.sh</filename> e si trova nella directory
<filename>orainst</filename> nell'albero dei sorgenti.</para>
</sect3>
<sect3 id="linuxemu-patch-tcl">
<title>Modifiche a genclntsh</title>
<para>Lo script <command>genclntsh</command> viene usato per creare
una singola libreria condivisa del client. Si usa quando si compilano
le demo. Applica la patch seguente per decommentare la definizione di
<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>Avvio di &oracle;</title>
<para>Se hai seguito le istruzioni, dovresti essere in grado di avviare
<application>&oracle;</application> proprio come se fosse su
Linux.</para>
</sect2>
</sect1>
<sect1 id="sapr3">
<sect1info>
<authorgroup>
<author>
<firstname>Holger</firstname>
<surname>Kipp</surname>
<contrib>Contributo di </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Valentino</firstname>
<surname>Vaschetto</surname>
<contrib>Versione originale convertita in SGML da </contrib>
</author>
</authorgroup>
</sect1info>
<title>Installazione di &sap.r3;</title>
<indexterm>
<primary>applicazioni</primary>
<secondary><application>SAP R/3</application></secondary>
</indexterm>
<para>Le installazioni di sistemi <application>&sap;</application> usando
FreeBSD non sono supportate dal team di supporto &sap; &mdash; offrono
supporto solo per piattaforme certificate.</para>
<sect2 id="preface">
<title>Prefazione</title>
<para>Questo documento descrive un modo possibile per installare un
sistema <application>&sap.r3;</application> con un database
<application>&oracle;</application> per Linux su una macchina FreeBSD,
inclusa l'installazione di FreeBSD e
<application>&oracle;</application>.
Sono descritte due diverse configurazioni:</para>
<itemizedlist>
<listitem>
<para><application>&sap.r3; 4.6B (IDES)</application> con
<application>&oracle; 8.0.5</application> su &os; 4.3-STABLE</para>
</listitem>
<listitem>
<para><application>&sap.r3; 4.6C</application> con
<application>&oracle; 8.1.7</application> su &os; 4.5-STABLE</para>
</listitem>
</itemizedlist>
<para>Anche se questo documento tenta di descrivere tutti i passi
importanti in dettaglio, non è insteso come un sostituto delle
guide di installazione di <application>&oracle;</application> e
<application>&sap.r3;</application>.</para>
<para>Per favore, controlla la documentazione unita all'edizione Linux di
<application>&sap.r3;</application> per questioni specifiche su
<application>&sap;</application> e <application>&oracle;</application>, e
anche le risorse da <application>&oracle;</application> e
<application>&sap; OSS</application>.</para>
</sect2>
<sect2 id="software">
<title>Software</title>
<para>Sono stati usati i seguenti CD-ROM per le installazioni di
<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>Nome</entry>
<entry>Numero</entry>
<entry>Descrizione</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 / Disco 1 di 6</entry>
</row>
<row>
<entry>EXPORT2</entry>
<entry>51010209</entry>
<entry>IDES / DB-Export / Disco 2 di 6</entry>
</row>
<row>
<entry>EXPORT3</entry>
<entry>51010210</entry>
<entry>IDES / DB-Export / Disco 3 di 6</entry>
</row>
<row>
<entry>EXPORT4</entry>
<entry>51010211</entry>
<entry>IDES / DB-Export / Disco 4 di 6</entry>
</row>
<row>
<entry>EXPORT5</entry>
<entry>51010212</entry>
<entry>IDES / DB-Export / Disco 5 di 6</entry>
</row>
<row>
<entry>EXPORT6</entry>
<entry>51010213</entry>
<entry>IDES / DB-Export / Disco 6 di 6</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Abbiamo usato anche il CD di <application>&oracle; 8
Server</application> (versione preproduzione 8.0.5 per Linux,
versione del kernel 2.0.33) che non è non strettamente
necessario, e
FreeBSD 4.3-STABLE (uscita pochi giorni dopo 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>Nome</entry>
<entry>Numero</entry>
<entry>Descrizione</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 / Disco 1 di 4</entry>
</row>
<row>
<entry>EXPORT1</entry>
<entry>51013953</entry>
<entry>Release 4.6C SR2 / Export / Disco 2 di 4</entry>
</row>
<row>
<entry>EXPORT1</entry>
<entry>51013953</entry>
<entry>Release 4.6C SR2 / Export / Disco 3 di 4</entry>
</row>
<row>
<entry>EXPORT1</entry>
<entry>51013953</entry>
<entry>Release 4.6C SR2 / Export / Disco 4 di 4</entry>
</row>
<row>
<entry>LANG1</entry>
<entry>51013954</entry>
<entry>Release 4.6C SR2 / Language / DE, EN, FR / Disco 1 di
3</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Dipendentemente dalle lingue che vuoi installare, potrebbero
essere necessari altri CD per le lingue. Qui usiamo solo DE e EN,
così da utilizzare solo il primo CD per le lingue. Come
piccola nota, i numeri per tutti i quattro CD EXPORT sono uguali.
Tutti e tre
i CD per le lingue hanno pure lo stesso numero (diversamente dalla
numerazione della release 4.6B IDES). Mentre stiamo scrivendo,
questa installazione sta girando su &os; 4.5-STABLE
(20.03.2002).</para>
</sect3>
</sect2>
<sect2 id="sap-notes">
<title>Note di &sap;</title>
<para>Le seguenti note dovrebbero essere lette prima di installare
<application>&sap.r3;</application> e dovrebbero tornare utili durante
l'installazione:</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>Numero</entry>
<entry>Titolo</entry>
</row>
</thead>
<tbody>
<row>
<entry>0171356</entry>
<entry>Software SAP su Linux: Commenti Essenziali</entry>
</row>
<row>
<entry>0201147</entry>
<entry>INST: 4.6C R/3 Inst. su UNIX - Oracle</entry>
</row>
<row>
<entry>0373203</entry>
<entry>Aggiornamento / Migrazione Oracle 8.0.5 --&gt;
8.0.6/8.1.6 LINUX</entry>
</row>
<row>
<entry>0072984</entry>
<entry>Rilascio di Digital UNIX 4.0B per Oracle</entry>
</row>
<row>
<entry>0130581</entry>
<entry>R3SETUP passo DIPGNTAB termina</entry>
</row>
<row>
<entry>0144978</entry>
<entry>Il tuo sistema non è stato installato
correttamente</entry>
</row>
<row>
<entry>0162266</entry>
<entry>Domande e suggerimenti per R3SETUP su 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>Numero</entry>
<entry>Titolo</entry>
</row>
</thead>
<tbody>
<row>
<entry>0015023</entry>
<entry>Inizializzazione della tabella TCPDB (RSXP0004)
(EBCDIC)</entry>
</row>
<row>
<entry>0045619</entry>
<entry>R/3 con molti linguaggi o caratteri</entry>
</row>
<row>
<entry>0171356</entry>
<entry>Software SAP su Linux: Commenti Essenziali</entry>
</row>
<row>
<entry>0195603</entry>
<entry>RedHat 6.1 Enterprise version: Problemi
Conosciuti</entry>
</row>
<row>
<entry>0212876</entry>
<entry>Il nuovo strumento di archiviazione SAPCAR</entry>
</row>
<row>
<entry>0300900</entry>
<entry>Linux: Hardware DELL Rilasciato</entry>
</row>
<row>
<entry>0377187</entry>
<entry>RedHat 6.2: Note importanti</entry>
</row>
<row>
<entry>0387074</entry>
<entry>INST: R/3 4.6C SR2 Installazione su UNIX</entry>
</row>
<row>
<entry>0387077</entry>
<entry>INST: R/3 4.6C SR2 Inst. su UNIX - Oracle</entry>
</row>
<row>
<entry>0387078</entry>
<entry>Software SAP su UNIX: Dipendenze del SO per 4.6C
SR2</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect3>
</sect2>
<sect2 id="hardware-requirements">
<title>Requisiti Hardware</title>
<para>La strumentazione che segue è sufficiente per
l'installazione di un sistema <application>&sap.r3;</application>. Per
un uso in produzione, è necessario un dimensionamento più
preciso:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>Componente</entry>
<entry>4.6B</entry>
<entry>4.6C</entry>
</row>
</thead>
<tbody>
<row>
<entry>Processore</entry>
<entry>2 x 800MHz &pentium; III</entry>
<entry>2 x 800MHz &pentium; III</entry>
</row>
<row>
<entry>Memoria</entry>
<entry>1GB ECC</entry>
<entry>2GB ECC</entry>
</row>
<row>
<entry>Spazio sul Disco Fisso</entry>
<entry>50-60GB (IDES)</entry>
<entry>50-60GB (IDES)</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Per l'uso in produzione si raccomandano processori &xeon;,
con una grande cache, dischi ad accesso ad alta velocità (SCSI,
controller hardware RAID), sono raccomandati USV e ECC-RAM. La grande
quantità di spazio sul disco fisso è dovuta al sistema
IDES preconfigurato, che, durante l'installazione, crea 27&nbsp;GB di
file per il database. Questo spazio è sufficiente per sistemi
in produzione e per i dati delle applicazioni iniziali.</para>
<sect3 id="hardware-46b">
<title>&sap.r3; 4.6B, &oracle; 8.0.5</title>
<para>È stato usato il seguente hardware in disuso:
una scheda biprocessore con 2 processori &pentium;&nbsp;III da
800&nbsp;MHz, adattatore SCSI &adaptec; 29160 Ultra160 (per accedere
ad un unità nastro DLT da 40/80&nbsp;GB e al CDROM),
&mylex; &acceleraid; (2 canali, firmware 6.00-1-00 con 32&nbsp;MB
RAM). Al controller RAID &mylex; sono attaccati due dischi fissi da
17&nbsp;GB (mirrored) e quattro dischi fissi da 36&nbsp;GB
(RAID 5).</para>
</sect3>
<sect3 id="hardware-46c">
<title>&sap.r3; 4.6C, &oracle; 8.1.7</title>
<para>Per questa installazione è stato usato un &dell;
&poweredge; 2500: una scheda biprocessore con due processori
&pentium;&nbsp;III da
1000&nbsp;MHz (256&nbsp;kB di cache), 2&nbsp;GB PC133 ECC SDRAM,
controller RAID PERC/3 DC PCI con 128&nbsp;MB, e un drive EIDE
DVD-ROM.
Al controller RAID controller sono attaccati due dischi fissi da
18&nbsp;GB (mirrored) e quattro dischi fissi da 36&nbsp;GB
(RAID 5).</para>
</sect3>
</sect2>
<sect2 id="installation">
<title>Installazione di FreeBSD</title>
<para>Prima devi installare FreeBSD. Ci sono molti modi per farlo,
per maggiori informazioni leggi la <xref
linkend="install-diff-media"/>.</para>
<sect3 id="disk-layout">
<title>Layuot del Disco</title>
<para>Per farla semplice, abbiamo usato lo stesso layout del disco sia
per l'installazione di <application>&sap.r3; 46B</application> che di
<application>&sap.r3; 46C SR2</application>. Cambiano solo i nomi dei
dispositivi, dal momento che le installazioni sono state eseguite
su hardware differenti (rispettivamente <filename>/dev/da</filename>
e <filename>/dev/amr</filename>, così se si usa un AMI
&megaraid;, si vedrà <filename>/dev/amr0s1a</filename> invece
che <filename>/dev/da0s1a</filename>):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="4">
<thead>
<row>
<entry>File system</entry>
<entry>Dimensione (1k-blocks)</entry>
<entry>Dimensione (GB)</entry>
<entry>Montato su</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>Configura in anticipo e inizializza i due drive
logici con il software &mylex; o PERC/3 RAID. Il software può
essere lanciato durante la fase di avvio del
<acronym>BIOS</acronym>.</para>
<para>Nota che il layout di questo disco differisce leggermente dalle
raccomandazioni di &sap;, giacché &sap; suggerisce di montare
le sottodirectory di <application>&oracle;</application> (e qualche
altra) separatamente &mdash; abbiamo deciso di crearle come vere
sottodirectory per semplicità.</para>
</sect3>
<sect3 id="makeworldandnewkernel">
<title><command>make world</command> e il Nuovo Kernel</title>
<para>Scarica gli ultimi sorgenti -STABLE. Ricompila world e il tuo
kernel personalizzato dopo averne modificato il file di
configurazione.
In questo dovresti includere anche i
<link linkend="kerneltuning">parametri del kernel</link> che sono
richiesti sia per <application>&sap.r3;</application> che per
<application>&oracle;</application>.</para>
</sect3>
</sect2>
<sect2 id="installingthelinuxenviornment">
<title>Installazione dell'Ambiente Linux</title>
<sect3 id="installinglinuxbase-system">
<title>Installazione del Sistema Linux di Base</title>
<para>Per primo bisogna installare il port
<link linkend="linuxemu-libs-port">linux_base</link> (come
<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>Installazione dell'Ambiente di Sviluppo di Linux</title>
<para>È richiesto l'ambiente di sviluppo di linux, se vuoi
installare <application>&oracle;</application> su FreeBSD secondo la
<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>L'ambiente di sviluppo di Linux è stato installato solo
durante l'installazione di <application>&sap.r3; 46B
IDES</application>.
Non è necessario, se <application>&oracle; DB</application>
non è ricollegata sul sistema FreeBSD. Questo è il
caso se stai usando il tarball di <application>&oracle;</application>
da un sistema Linux.</para>
</sect3>
<sect3 id="installingnecessaryrpms">
<title>Installazione degli RPM necessari</title>
<indexterm><primary>RPM</primary></indexterm>
<para>Per avviare il programma <command>R3SETUP</command>, c'è
bisogno del supporto PAM. Durante la prima installazione di
<application>&sap;</application> su FreeBSD 4.3-STABLE abbiamo tentato
di installare PAM con tutti i pacchetti richiesti: alla fine abbiamo
forzato l'installazione del pacchetto di PAM, ed ha funzionato. Per
<application>&sap.r3; 4.6C SR2</application> abbiamo subito forzato
l'installazione degli RPM di PAM, ed ha pure funzionato, sembra quindi
che i pacchetti dipendenti non siano necessari:</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>Per fare in modo che <application>&oracle; 8.0.5</application>
avvii l'intelligent agent, dobbiamo anche installare il paccheto Tcl
di RedHat <filename>tcl-8.0.5-30.i386.rpm</filename> (altrimenti il
ricollegamento durante l'installazione di
<application>&oracle;</application> non funzionerà).
Ci sono altri punti riguardanti il ricollegamento di
<application>&oracle;</application>, ma è un problema di
<application>&oracle;</application> per Linux, non specifico di
FreeBSD.</para>
</sect3>
<sect3 id="linuxprocandfallbackelfbrand">
<title>Alcuni Suggerimenti</title>
<para>Potrebbe essere una buona idea aggiungere
<literal>linprocfs</literal>
a <filename>/etc/fstab</filename>, per maggiori informazioni guarda
la pagina del manuale di &man.linprocfs.5;. Un altro parametro da
impostare è <literal>kern.fallback_elf_brand=3</literal>, da
fare nel file <filename>/etc/sysctl.conf</filename>.</para>
</sect3>
</sect2>
<sect2 id="creatingsapr3env">
<title>Creazione dell'Ambiente &sap.r3;</title>
<sect3 id="filesystemsandmountpoints">
<title>Creazione dei File System Necessari e dei Punti di Mount</title>
<para>Per una installazione semplice è sufficiente creare i
seguenti file system:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>punto di mount</entry>
<entry>dimensione in GB</entry>
</row>
</thead>
<tbody>
<row>
<entry><filename>/compat/linux/oracle</filename></entry>
<entry>45 GB</entry>
</row>
<row>
<entry><filename>/compat/linux/sapmnt</filename></entry>
<entry>2 GB</entry>
</row>
<row>
<entry><filename>/compat/linux/usr/sap</filename></entry>
<entry>2 GB</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>È necessario anche creare qualche collegamento, altrimenti
l'installer di <application>&sap;</application> si lamenterà,
perché controlla i collegamenti creati:</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>Possibili messaggi d'errore durante l'installazione (qui con
il sistema <emphasis>PRD</emphasis> e l'installazione di
<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>Creazione degli Utenti e delle Directory</title>
<para><application>&sap.r3;</application> ha bisogno di due utenti e
tre gruppi. I nomi degli utenti dipendono dal
<application>&sap;</application> system ID (SID) che consta di tre
lettere. Alcuni di questi SID sono riservati da
<application>&sap;</application> (per esempio <literal>SAP</literal> e
<literal>NIX</literal>. Per una lista completa controlla la
documentazione <application>&sap;</application>). Per
l'installazione di IDES abbiamo usato <literal>IDS</literal>, per
l'installazione di 4.6C SR2 <literal>PRD</literal>, poiché quel
sistema è inteso per l'uso in produzione. Abbiamo quindi i
seguenti gruppi (gli ID dei gruppi potrebbero differire, questi sono
solo i valori che abbiamo usato nella nostra installazione):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>ID del gruppo</entry>
<entry>nome del gruppo</entry>
<entry>descrizione</entry>
</row>
</thead>
<tbody>
<row>
<entry>100</entry>
<entry>dba</entry>
<entry>Amministratore del Database</entry>
</row>
<row>
<entry>101</entry>
<entry>sapsys</entry>
<entry>Sistema &sap;</entry>
</row>
<row>
<entry>102</entry>
<entry>oper</entry>
<entry>Operatore del Database</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>In una installazione normale di
<application>&oracle;</application>, si usa solo il gruppo
<groupname>dba</groupname>. Come gruppo <groupname>oper</groupname>,
si usa anche il gruppo <groupname>dba</groupname> (per maggiori
informazioni, vedi la documentazione di
<application>&oracle;</application> e di
<application>&sap;</application>).</para>
<para>Abbiamo bisogno anche dei seguenti utenti:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="6">
<thead>
<row>
<entry>ID utente</entry>
<entry>nome utente</entry>
<entry>nome generico</entry>
<entry>gruppo</entry>
<entry>gruppi addizionali</entry>
<entry>descrizione</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>Amministratore &sap;</entry>
</row>
<row>
<entry>1002</entry>
<entry>oraids/oraprd</entry>
<entry>ora<replaceable>sid</replaceable></entry>
<entry>dba</entry>
<entry>oper</entry>
<entry>Amministratore &oracle;</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Aggiungere gli utenti con &man.adduser.8; richiede l'inserimento
di questo per l'<quote>Amministratore &sap;</quote> (notare la shell
e la directory 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>e per l'<quote>Amministratore &oracle;</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>Questo dovrebbe includere anche il gruppo
<groupname>oper</groupname> nel caso tu stia usando entrambi i
gruppi <groupname>dba</groupname> e
<groupname>oper</groupname>.</para>
</sect3>
<sect3 id="creatingdirectories">
<title>Creazione delle Directory</title>
<para>Queste directory solitamente sono create come file system
separati, dipende esclusivamente dalle tue necessità.
Noi abbiamo scelto di crearle come semplici directory, dal momento
che, comunque, si trovano sullo stesso RAID 5:</para>
<para>Prima impostiamo le appartenenze ed i diritti per alcune
directory (come utente <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>Successivamente creiamo le directory come utente
<username>ora<replaceable>sid</replaceable></username>. Queste
saranno tutte le sottodirectory di
<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>Per l'installazione di <application>&oracle; 8.1.7</application>
sono necessarie alcune altre directory:</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>La directory <filename>client/80x_32</filename> è usata
esattamente con questo nome. Non rimpiazzare la
<emphasis>x</emphasis> con dei numeri o altro.</para>
</note>
<para>Nel terzo passo creiamo le directory come
<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>Definizioni in <filename>/etc/services</filename></title>
<para><application>&sap.r3;</application> richiede alcune definizioni
nel file <filename>/etc/services</filename>, che non sono impostate
correttamente durante l'installazione sotto FreeBSD. Aggiungi le
seguenti righe (hai bisogno almeno di queste definizioni,
corrispondenti al numero di istanza &mdash; in questo caso,
<literal>00</literal>. Non fa danni aggiungere tutte le definizioni
da <literal>00</literal> a <literal>99</literal> per
<literal>dp</literal>, <literal>gw</literal>, <literal>sp</literal> e
<literal>ms</literal>). Se userai un
<application>SAProuter</application> o avrai bisogno di accedere a
<application>&sap;</application> OSS, hai bisogno di
<literal>99</literal>, dal momento che la porta 3299 è
normalmente utilizzata per il processo
<application>SAProuter</application> sul sistema target:</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>Internazionalizzazioni Necessarie</title>
<indexterm><primary>internazionalizzazione</primary></indexterm>
<para><application>&sap;</application> richiede almeno due
internazionalizzazioni che non fanno parte dell'installazione
standard di RedHat. &sap; offre gli RPM richiesti, scaricabili dal
loro server FTP (che è accessibile solo se sei un cliente
con accesso OSS). Vedi la nota 0171356 per una lista degli RPM di
cui hai bisogno.</para>
<para>È pure possibile creare solamente i collegamenti
appropriati (per esempio da <emphasis>de_DE</emphasis> e
<emphasis>en_US</emphasis> ), ma non lo raccomandiamo per un sistema
in produzione (anche se ha funzionato con il sistema IDES senza
alcun problema). Le seguenti internazionalizzazioni sono
necessarie:</para>
<programlisting>de_DE.ISO-8859-1
en_US.ISO-8859-1</programlisting>
<para>Crea i collegamenti come questi:</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>Se non sono presenti, ci sarà qualche problema durante
l'installazione. Se vengono ignorati (impostando
<literal>STATUS</literal> dei punti con errore a
<literal>OK</literal> nel file <filename>CENTRDB.R3S</filename>),
sarà impossibile autenticarsi nel sistema
<application>&sap;</application> senza qualche ulteriore
sforzo.</para>
</sect3>
<sect3 id="kerneltuning">
<title>Affinamento del Kernel</title>
<indexterm><primary>affinamento del kernel</primary></indexterm>
<para>I sistemi <application>&sap.r3;</application> necessitano di
molte risorse. Di conseguenza abbiamo aggiunto i seguenti parametri
al file di configurazione del kernel:</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>I valori minimi sono specificati nella documentazione fornita
con &sap;. Dal momento che non v'è alcuna descrizione per
Linux, vedi nella sezione HP-UX (32-bit) per ulteriori informazioni.
Siccome il sistema per l'installazione di 4.6C SR2 ha più
memoria principale, il segmento condiviso può essere
più grande sia per <application>&sap;</application> che per
<application>&oracle;</application>, quindi scegli un numero maggiore
di pagine di memoria condivisa.</para>
<note>
<para>Con l'installazione di default di FreeBSD su &i386;,
lascia <literal>MAXDSIZ</literal> e <literal>DFLDSIZ</literal> ad un
massimo di 1&nbsp;GB. In caso contrario potrebbero accadere strani
errori, come <errorname>ORA-27102: out of memory</errorname> e
<errorname>Linux Error: 12: Cannot allocate
memory</errorname>.</para>
</note>
</sect3>
</sect2>
<sect2 id="installingsapr3">
<title>Installazione di &sap.r3;</title>
<sect3 id="preparingsapcdroms">
<title>Preparazione dei CD-ROM di &sap;</title>
<para>Ci sono molti CD-ROM da montare e smontare durante
l'installazione. Ad avere abbastanza drive CD-ROM, puoi montarli
tutti. Abbiamo deciso di copiare i contenuti dei CD-ROM nelle
directory corrispondenti:</para>
<programlisting>/oracle/<replaceable>SID</replaceable>/sapreorg/<replaceable>cd-name</replaceable></programlisting>
<para>dove <replaceable>cd-name</replaceable> era uno tra
<filename>KERNEL</filename>,
<filename>RDBMS</filename>, <filename>EXPORT1</filename>,
<filename>EXPORT2</filename>, <filename>EXPORT3</filename>,
<filename>EXPORT4</filename>, <filename>EXPORT5</filename> e
<filename>EXPORT6</filename> per l'installazione di 4.6B/IDES,
e <filename>KERNEL</filename>, <filename>RDBMS</filename>,
<filename>DISK1</filename>, <filename>DISK2</filename>,
<filename>DISK3</filename>, <filename>DISK4</filename> e
<filename>LANG</filename> per l'installazione di 4.6C SR2. Tutti i
nomi dei file sui CD montati dovrebbero essere in lettere maiuscole.
In caso contrario usa l'opzione <option>-g</option> per montare,
cioè usa questi comandi:</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>Avvio dello Script di Installazione</title>
<para>Per prima cosa devi creare una directory <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>Quindi viene lanciato lo script di installazione, che copia
quasi tutti i file rilevanti dentro alla directory <filename
class="directory">install</filename>:</para>
<screen>&prompt.root; <userinput>/oracle/<replaceable>SID</replaceable>/sapreorg/KERNEL/UNIX/INSTTOOL.SH</userinput></screen>
<para>L'installazione (4.6B) è data con un sistema di
dimostrazione &sap.r3; completamente personalizzato, per questo ci
sono sei CD EXPORT invece che tre. A questo punto il modello
<filename>CENTRDB.R3S</filename> serve per l'installazione di una
istanza centrale standard (<application>&r3;</application> e
database), non l'instanza centrale IDES, quindi bisogna copiare il
corrispondente <filename>CENTRDB.R3S</filename> dalla directory
<filename class="directory">EXPORT1</filename>, altrimenti
<command>R3SETUP</command>
chiederà solo tre CD EXPORT.</para>
<para>La nuova distribuzione di
<application>&sap; 4.6C SR2</application> viene venduta con quattro
CD EXPORT. Il file che controlla i passi dell'installazione è
<filename>CENTRAL.R3S</filename>. Contrariamente alle versioni
precedenti non ci sono modelli di installazione per una istanza
centrale con o senza database. <application>&sap;</application> usa
un modello diverso per l'installazione del database. Per riavviare
l'installazione in un secondo momento, è comunque sufficiente
riavviare con il file originale.</para>
<para>Durante e dopo l'installazione, <application>&sap;</application>
richiede <command>hostname</command> per restituire solamente
il nome del computer, non il nome completo del dominio. Quindi
imposta l'hostname in questo modo, oppure imposta un alias con
<command>alias hostname='hostname -s'</command> per entrambi
<username>ora<replaceable>sid</replaceable></username> e
<username><replaceable>sid</replaceable>adm</username> (e per
<username>root</username> almeno per i punti eseguiti come
<username>root</username>). È anche possibile modificare i file
<filename>.profile</filename> e <filename>.login</filename> installati
di entrambi gli utenti creati durante l'installazione di
<application>&sap;</application>.</para>
</sect3>
<sect3 id="startr3setup-46B">
<title>Avviare <command>R3SETUP</command> 4.6B</title>
<para>Assicurati che <envar>LD_LIBRARY_PATH</envar> sia impostato
correttamente:</para>
<screen>&prompt.root; <userinput>export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/lib</userinput></screen>
<para>Avvia <command>R3SETUP</command> come <username>root</username>
dalla directory di installazione:</para>
<screen>&prompt.root; <userinput>cd /oracle/IDS/sapreorg/install</userinput>
&prompt.root; <userinput>./R3SETUP -f CENTRDB.R3S</userinput></screen>
<para>Lo script, quindi, fa alcune domande (i default sono tra
parentesi, seguite dal vero input):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>Domanda</entry>
<entry>Default</entry>
<entry>Input</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>Se non hai copiato i CD in posizioni diverse, l'installer di
<application>&sap;</application> non può tyrovare i CD
necessari (identificati dal file <filename>LABEL.ASC</filename>
sul CD) e quindi ti chiederà di inserire e montare il CD
e di confermare o di inserire il path al mount.</para>
<para><filename>CENTRDB.R3S</filename> potrebbe non essere scevro di
errori. Nel nostro caso, ha richiesto il CD EXPORT4 un'altra volta
ma indicando la chiave corretta (6_LOCATION, quindi 7_LOCATION,
ecc.), così bisogna continuare ad inserire i valori
corretti.</para>
<para>A parte alcuni problemi sopra menzionati, ogni cosa dovrebbe
andare bene fino al punto dove bisogna installare il database
&oracle;.</para>
</sect3>
<sect3 id="startr3setup-46C">
<title>Avviare <command>R3SETUP</command> 4.6C SR2</title>
<para>Assicurati che <envar>LD_LIBRARY_PATH</envar> sia impostato
correttamente. Ha un valore diverso dall'installazione di 4.6B con
<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>Avvia <command>R3SETUP</command> come <username>root</username>
dalla directory di installazione:</para>
<screen>&prompt.root; <userinput>cd /oracle/PRD/sapreorg/install</userinput>
&prompt.root; <userinput>./R3SETUP -f CENTRAL.R3S</userinput></screen>
<para>Lo script, quindi, fa alcune domande (i default sono tra
parentesi, seguite dal vero input):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
<entry>Domanda</entry>
<entry>Default</entry>
<entry>Input</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>Al momento la creazione degli utenti genera un errore durante
l'installazione nelle fasi OSUSERDBSID_IND_ORA (nel creare l'utente
<username>ora<replaceable>sid</replaceable></username>) e
OSUSERSIDADM_IND_ORA (nel creare l'utente
<username><replaceable>sid</replaceable>adm</username>).</para>
<para>A parte qualche problema descritto sopra, tutto dovrebbe andare
liscio fino al punto dove bisogna installare il database
&oracle;.</para>
</sect3>
</sect2>
<sect2 id="installingoracle805">
<title>Installazione di &oracle; 8.0.5</title>
<para>Per favore, leggi le corrispondenti note di &sap; e i
<filename>Readme</filename> di &oracle; riguardanti
Linux e <application>&oracle; DB</application> per possibili problemi.
Molti, se non tutti, i problemi nascono da librerie
incompatibili.</para>
<para>Per maggiori informazioni riguardo all'installazione di
<application>&oracle;</application>, riferirsi al <link
linkend="linuxemu-oracle">capitolo Installare &oracle;</link>.</para>
<sect3 id="installingtheoracle805withorainst">
<title>Installazione di &oracle; 8.0.5 con
<command>orainst</command></title>
<para>Se bisogna usare <application>&oracle; 8.0.5</application>,
sono richeste alcune librerie in più per un ricollegamento
funzionante, perché <application>&oracle; 8.0.5</application>
è stata collegata con una vecchia glibc (RedHat 6.0), anche
se RedHat 6.1 già usa una nuova glibc. Per questo devi
installare i seguenti pacchetti per essere sicuro che il collegamento
funzioni:</para>
<para><filename>compat-libs-5.2-2.i386.rpm</filename></para>
<para><filename>compat-glibc-5.2-2.0.7.2.i386.rpm</filename></para>
<para><filename>compat-egcs-5.2-1.0.3a.1.i386.rpm</filename></para>
<para><filename>compat-egcs-c++-5.2-1.0.3a.1.i386.rpm</filename></para>
<para><filename>compat-binutils-5.2-2.9.1.0.23.1.i386.rpm</filename></para>
<para>Per maggiori informazioni, leggi le corrispondenti note di &sap;
o i <filename>Readme</filename> di &oracle;. Se non hai questa
opzione (al momento dell'installazione non abbiamo avuto abbastanza
tempo per controllare), si possono usare i binari originali, oppure
usare i binari ricollegati da un sistema RedHat originale.</para>
<para>Per compilare l'intelligent agent, bisogna installare il
pacchetto Tcl di RedHat. Se non puoi recuperare
<filename>tcl-8.0.3-20.i386.rpm</filename>, dovrebbe funzionare
uno più nuovo come
<filename>tcl-8.0.5-30.i386.rpm</filename> da RedHat 6.1.</para>
<para>A parte il ricollegamento, l'installazione è
diretta:</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>Conferma tutti i comandi con <keycap>Enter</keycap> fino a che
il software non è installato, a parte il
<emphasis>&oracle; On-Line Text Viewer</emphasis>, che non è
disponibile per Linux. <application>&oracle;</application>, quindi,
si ricolleghi con <command>i386-glibc20-linux-gcc</command>
invece dei disponibili <command>gcc</command>,
<command>egcs</command> o <command>i386-redhat-linux-gcc
</command>.</para>
<para>A causa di limitazioni di tempo, abbiamo deciso di usare i binari
da una distribuzione di
<application>&oracle; 8.0.5 PreProduction</application>, dopo il
primo tentativo, fallito, di far funzionare la versione dal CD del
RDBMS, e trovare e accedere agli RPM corretti era un incubo in quel
momento.</para>
</sect3>
<sect3 id="installingtheoracle805preproduction">
<title>Installzione della Distribuzione &oracle; 8.0.5 Pre-production
per Linux (Kernel 2.0.33)</title>
<para>Questa installazione è piuttosto semplice. Monta il CD e
avvia l'installer. Ti chiederà l'ubicazione della directory
home di &oracle; e vi copierà i file. Noi, comunque, Non
abbiamo cancellato ciò che è rimasto dei precedenti
tentativi di installazione del RDBMS.</para>
<para>Subito dopo, il database <application>&oracle;</application>
può essere lanciato senza problemi.</para>
</sect3>
</sect2>
<sect2 id="installingoracle817">
<title>Installazione del Tarball di &oracle; 8.1.7 per Linux</title>
<para>Prendi il tarball <filename>oracle81732.tgz</filename> che
hai prodotto dalla directory di installazione su un sistema Linux e
estrailo in
<filename>/oracle/<replaceable>SID</replaceable>/817_32/</filename>.</para>
</sect2>
<sect2 id="continuewithsapr4installation">
<title>Continuare con l'Installazione di &sap.r3;</title>
<para>Prima controlla le impostazioni d'ambiente degli utenti
<username>idsamd</username> (<replaceable>sid</replaceable>adm) e
<username>oraids</username> (ora<replaceable>sid</replaceable>).
Ora dovrebbero avere i file <filename>.profile</filename>,
<filename>.login</filename> e <filename>.cshrc</filename>
che usano tutti <command>hostname</command>. Nel caso l'hostname
del sistema sia il nome completamente qualificato, devi cambiare
<command>hostname</command> in <command>hostname
-s</command> dentro a tutti i file.</para>
<sect3 id="databaseload">
<title>Caricamento del Database</title>
<para>Dopo di ciò, <command>R3SETUP</command> può
essere riavviato o continuato (a seconda che se ne sia usciti o
no). <command>R3SETUP</command>, quindi, crea le tabelle e carica
i dati nel database con <command>R3load</command> (per 46B IDES,
da EXPORT1 a EXPORT6, per 46C da DISK1 a DISK4).</para>
<para>Quando il caricamento del database è finito (potrebbe
richiedere qualche ora), vengono richieste alcune password.
Per installazioni di prova, si possono usare le ben note
password di default (usane di diverse se la sicurezza è un
problema!):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Domanda</entry>
<entry>Input</entry>
</row>
</thead>
<tbody>
<row>
<entry>Enter Password for sapr3</entry>
<entry>sap<keycap>Enter</keycap></entry>
</row>
<row>
<entry>Confirum Password for sapr3</entry>
<entry>sap<keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter Password for sys</entry>
<entry>change_on_install<keycap>Enter</keycap></entry>
</row>
<row>
<entry>Confirm Password for sys</entry>
<entry>change_on_install<keycap>Enter</keycap></entry>
</row>
<row>
<entry>Enter Password for system</entry>
<entry>manager<keycap>Enter</keycap></entry>
</row>
<row>
<entry>Confirm Password for system</entry>
<entry>manager<keycap>Enter</keycap></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>A questo punto abbiamo avuto qualche problema con
<command>dipgntab</command> durante l'installazione di 4.6B.</para>
</sect3>
<sect3 id="listener">
<title>Listener</title>
<para>Avvia il listener di <application>&oracle;</application> come
utente <username>ora<replaceable>sid</replaceable></username> come
segue:</para>
<screen>&prompt.user; <userinput>umask 0; lsnrctl start</userinput></screen>
<para>Altrimenti potresti incorrere nell'errore
<errorcode>ORA-12546</errorcode> poiché i socket non hanno i
permessi giusti. Vedi la nota di &sap; 072984.</para>
</sect3>
<sect3 id="mnlstables">
<title>Aggiornare le Tabelle MNLS</title>
<para>Se pensi di importare le lingue non-Latin-1 nel sistema
<application>&sap;</application>, devi aggiornare le tabelle Multi
National Language Support. Questo è descritto nelle note di
&sap; OSS 15023 e 45619. Altrimenti puoi saltare questa domanda
durante l'installazione di <application>&sap;</application>.</para>
<note>
<para>Se non hai bisogno del MNLS, è comunque necessario
controllare la tabella TCPDB e inizializzarla se ancora non è
stato fatto. Per maggiori informazioni, vedi le note di &sap;
0015023 e 0045619.</para>
</note>
</sect3>
</sect2>
<sect2 id="postinstallationsteps">
<title>Dopo l'Installazione</title>
<sect3 id="requestsapr3licensekey">
<title>Richiesta della Chiave di Licenza di &sap.r3;</title>
<para>Devi richiedere la tua chiave di licenza per
<application>&sap.r3;</application>. È necessaria,
dal momento che la licenza temporanea che è stata usata durante
l'installazione era valida solo per quattro settimane. Prima di tutto
recupera la chiave hardware. Autenticati come utente
<username>idsadm</username> e lancia
<command>saplicense</command>:</para>
<screen>&prompt.root; <userinput>/sapmnt/IDS/exe/saplicense -get</userinput></screen>
<para>Lanciando <command>saplicense</command> senza paramentri, viene
restituita una lista di opzioni. Quando si riceve la chiave di
licenza, può essere installata usando:</para>
<screen>&prompt.root; <userinput>/sapmnt/IDS/exe/saplicense -install</userinput></screen>
<para>Ti viene richiesto di inserire i seguenti valori:</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>Creazione degli Utenti</title>
<para>Crea un utente dentro il client 000 (richiesto per qualche
azione da eseguire dentro al client 000, ma con un utente diverso
dagli utenti <username>sap*</username> e
<username>ddic</username>). Come nome utente, noi solitamente
scegliamo <username>wartung</username> (o
<username>servizio</username> in italiano). I profili richiesti
sono <literal>sap_new</literal> e <literal>sap_all</literal>.
Per maggiore sicurezza, le password degli utenti di default dentro
a tutti i client dovrebbero essere cambiate (compresi gli utenti
<username>sap*</username> e <username>ddic</username>).</para>
</sect3>
<sect3 id="configtranssysprofileopermodesetc">
<title>Configurare il Sistema di Trasporto, il Profilo, i Modi di
Operare, Ecc.</title>
<para>Dentro al client 000, per gli utenti diversi da
<username>ddic</username> e <username>sap*</username>,
fai almeno questo:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Azione</entry>
<entry>Transazione</entry>
</row>
</thead>
<tbody>
<row>
<entry>Configura il Sistema di Trasporto, p.e. come
<emphasis>Stand-Alone
Transport Domain Entity</emphasis></entry>
<entry>STMS</entry>
</row>
<row>
<entry>Crea / Modifica il Profilo per il Sistema</entry>
<entry>RZ10</entry>
</row>
<row>
<entry>Controlla le Istanze e i Modi di Operare</entry>
<entry>RZ04</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Questi e tutti gli altri punti dopo l'installazione sono
estesamente descritti nelle guide di installazione di
<application>&sap;</application>.</para>
</sect3>
<sect3 id="editintsidsap">
<title>Modificare
<filename>init<replaceable>sid</replaceable>.sap</filename>
(<filename>initIDS.sap</filename>)</title>
<para>Il file <filename>/oracle/IDS/dbs/initIDS.sap</filename>
contiene il profilo di backup di <application>&sap;</application>.
Qui la dimensione del nastro da usare, il tipo di compressione e
tutto il resto sono da definire. Per farlo funzionare con
<command>sapdba</command> / <command>brbackup</command>, abbiamo
cambiato i seguenti valori:</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>Spiegazioni:</para>
<para><varname>compress</varname>: Il nastro che usiamo
è un HP DLT1 che ha compressione hardware .</para>
<para><varname>archive_function</varname>: Questa definisce il
comportamento normale per salvare i log dell'archivio di &oracle;:
i nuovi file di log sono salvati sul nastro, quelli già
salvati sono salvati ancora e poi cancellati. Questo previene molti
problemi se devi recuperare il database e uno dei nastri d'archivio
si è rovinato.</para>
<para><varname>cpio_flags</varname>: Di default si usa
<option>-B</option> che imposta la dimensione dei blocchi a
5120&nbsp;Bytes. Per i nastri DLT, HP raccomanda una dimensione dei
blocchi di almeno 32&nbsp;K, per cui abbiamo usato
<option>--block-size=128</option> per 64&nbsp;K.
<option>--format=newc</option> è necessaria perché
abbiamo un numero di inode maggiore di 65535. L'ultima opzione
<option>--quiet</option> è necessaria perché altrimenti
<command>brbackup</command> si lamenta non appena
<command>cpio</command> restituisce il numero di blocchi
salvato.</para>
<para><varname>cpio_in_flags</varname>: Etichetta necessaria
per caricare i dati dal nastro. Il formato è riconosciuto
automaticamente.</para>
<para><varname>tape_size</varname>: Solitamente questo indica
la capacità di archiviazione del nastro. Per ragioni di
sicurezza (usiamo la compressione hardware), il valore è
leggermente più bassp del valore reale.</para>
<para><varname>tape_address</varname>: Il dispositivo non
riavvolgibile da usare con <command>cpio</command>.</para>
<para><varname>tape_address_rew</varname>: Il dispositivo
riavvolgibile da usare con <command>cpio</command>.</para>
</sect3>
<sect3>
<title>Configurazione dopo l'Installazione</title>
<para>I seguenti parametri di <application>&sap;</application>
dovrebbero essere rivisti dopo l'installazione (esempi per IDES 46B,
con 1&nbsp;GB di memoria):</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Nome</entry>
<entry>Valore</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>Nota &sap; 0013026:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Nome</entry>
<entry>Valore</entry>
</row>
</thead>
<tbody>
<row>
<entry>ztta/dynpro_area</entry>
<entry>2500000</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Nota &sap; 0157246:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>Nome</entry>
<entry>Valore</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>Con i parametri descritti, su un sistema con 1&nbsp;gigabyte
di memoria, si troverà un consumo di memoria simile a:</para>
<programlisting>Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K Free</programlisting>
</note>
</sect3>
</sect2>
<sect2 id="problemsduringinstallation">
<title>Problemi Durante l'Installazione</title>
<sect3 id="restartr3setup">
<title>Riavviare <command>R3SETUP</command> dopo la Risoluzione di un
Problema</title>
<para><command>R3SETUP</command> si ferma se incorre in un errore.
Se hai guardato al file di log corrispondente e corretto l'errore,
devi riavviare <command>R3SETUP</command>, solitamente
selezionando REPEAT come opzione per l'ultimo passo
per cui <command>R3SETUP</command> si è lamentato.</para>
<para>Per riavviare <command>R3SETUP</command>, avvialo con il
corrispondente file <filename>R3S</filename>:</para>
<screen>&prompt.root; <userinput>./R3SETUP -f CENTRDB.R3S</userinput></screen>
<para>per 4.6B, oppure con</para>
<screen>&prompt.root; <userinput>./R3SETUP -f CENTRAL.R3S</userinput></screen>
<para>per 4.6C, non importa che errore sia accaduto con
<filename>CENTRAL.R3S</filename> o
<filename>DATABASE.R3S</filename>.</para>
<note>
<para>In alcuni punti, <command>R3SETUP</command> assume che sia
il database che i processi di <application>&sap;</application>
stiano girando (come fossero passi già completati).
Se dovessero accadere errori e, per esempio, il database non fosse
avviato, dovresti avviare sia il database che
<application>&sap;</application> a mano, dopo aver corretto gli
errori e prima di avviare ancora <command>R3SETUP</command>.</para>
<para>Non dimenticarti di avviare ancora il listener di
<application>&oracle;</application> (come
<username>ora<replaceable>sid</replaceable></username> con
<command>umask 0; lsnrctl start</command>) se è stato fermato
(per esempio a causa di un reboot necessario del sistema).</para>
</note>
</sect3>
<sect3 id="indoraduringduringr3setup">
<title>OSUSERSIDADM_IND_ORA Durante <command>R3SETUP</command></title>
<para>Se <command>R3SETUP</command> si lamentasse a questo punto,
modifica il file modello <command>R3SETUP</command> usato prima
(<filename>CENTRDB.R3S</filename> (4.6B) o anche
<filename>CENTRAL.R3S</filename> o <filename>DATABASE.R3S</filename>
(4.6C)). Individua <literal>[OSUSERSIDADM_IND_ORA]</literal> o cerca
solo la definizione <literal>STATUS=ERROR</literal> e modificala con i
seguenti valori:</para>
<programlisting>HOME=/home/<replaceable>sid</replaceable>adm (era vuota)
STATUS=OK (era uguale a ERROR)</programlisting>
<para>Quindi puoi riavviare ancora <command>R3SETUP</command>.</para>
</sect3>
<sect3 id="indoraduringr3setup">
<title>OSUSERDBSID_IND_ORA Durante <command>R3SETUP</command></title>
<para><command>R3SETUP</command> potrebbe anche lamentarsi a questo
punto. L'errore, qui, è simile a quello nella fase
OSUSERSIDADM_IND_ORA. Modifica il file modello
<command>R3SETUP</command> usato allora
(<filename>CENTRDB.R3S</filename>
(4.6B) oppure <filename>CENTRAL.R3S</filename> o
<filename>DATABASE.R3S</filename> (4.6C)). Individua
<literal>[OSUSERDBSID_IND_ORA]</literal> o cerca solo la definizione
<literal>STATUS=ERROR</literal> e modifica questi valori in quella
sezione:</para>
<programlisting>STATUS=OK</programlisting>
<para>Riavvia, quindi, <command>R3SETUP</command>.</para>
</sect3>
<sect3 id="oraviewvrffilenotfound">
<title><errorname>oraview.vrf FILE NOT FOUND</errorname> Durante
l'Installazione di &oracle;</title>
<para>Non hai deselezionato
<emphasis>&oracle; On-Line Text Viewer</emphasis> prima di cominciare
l'installazione. Questo è contrassegnato per l'installazine
anche se l'opzione non è disponibile per Linux. Deseleziona
questo prodotto nel menù di installazione di
<application>&oracle;</application> e riavvia l'installazione.</para>
</sect3>
<sect3 id="textenvincalid">
<title><errorname>TEXTENV_INVALID</errorname> Durante
<command>R3SETUP</command>, RFC o l'Avvio di SAPgui</title>
<para>Se si incorre in questo errore, allora manca la corretta
internazionalizzazione. La nota di &sap; 0171356 elenca gli RPM
necessari da installare (p.e. <filename>saplocales-1.0-3</filename>,
<filename>saposcheck-1.0-1</filename> per RedHat 6.1). Nel caso
tu abbia ignorato tutti i relativi errori ed impostato lo
<literal>STATUS</literal> corrispondente da <literal>ERROR</literal>
a <literal>OK</literal> (in <filename>CENTRDB.R3S</filename>)
ogni volta che <command>R3SETUP</command> si è lamentato e
riavviato <command>R3SETUP</command>, il sistema
<application>&sap;</application> non sarà configurato
correttamente e non sarai in grado di connetterti al sistema tramite
una <application>SAPgui</application>, anche se il sistema può
essere avviato. Provando a connetterci con la vecchia
<application>SAPgui</application> abbiamo avuto questi
messaggi:</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>Questo comportamento è imputabile a
<application>&sap.r3;</application> che non è in grado di
assegnare correttamente una internazionalizzazione e che non è ben
configurato (definizioni mancanti in alcune tabelle del database).
Per essere in grado di connettersi a <application>&sap;</application>,
aggiungi queste definizioni nel file <filename>DEFAULT.PFL</filename>
(vedi nota 0043288):</para>
<programlisting>abap/set_etct_env_at_new_mode = 0
install/collate/active = 0
rscp/TCP0B = TCP0B</programlisting>
<para>Riavvia il sistema <application>&sap;</application>. Ora puoi
connetterti al sistema, anche se le impostazioni della lingua
specifiche per il paese potrebbero non funzionare come desiderato.
Dopo aver corretto le impostazioni del paese (e aver fornito le
internazionalizzazioni esatte), queste definizioni possono essere
riomsse da <filename>DEFAULT.PFL</filename> e il sistema
<application>&sap;</application> può essere riavviato.</para>
</sect3>
<sect3 id="ora-00001">
<title><errorcode>ORA-00001</errorcode></title>
<para>Questo errore è accaduto solo con
<application>&oracle; 8.1.7</application> su FreeBSD.
La ragione era che il database <application>&oracle;</application>
non poteva inizializzarsi correttamente e andava in crash, lasciando
i semafori e la memoria condivisa sul sistema. Il tentativo
successivo di lanciare il database, ritornava
<errorcode>ORA-00001</errorcode>.</para>
<para>Trovali con <command>ipcs -a</command> e rimuovili con
<command>ipcrm</command>.</para>
</sect3>
<sect3 id="ora-00445pmon">
<title><errorcode>ORA-00445</errorcode> (Background Process PMON Did
Not Start)</title>
<para>Questo errore è accaduto con <application>&oracle;
8.1.7</application>. Viene riportato se il database è avviato
con il solito script <command>startsap</command> (per esempio
<command>startsap_majestix_00</command>) come utente
<username>prdadm</username>.</para>
<para>Un modo per aggirarlo è lanciare il database come utente
<username>oraprd</username>, con <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> (Start Listener with Correct
Permissions)</title>
<para>Avvia il listener di <application>&oracle;</application>
come utente <username>oraids</username> con i seguenti
comandi:</para>
<screen>&prompt.root; <userinput>umask 0; lsnrctl start</userinput></screen>
<para>Altrimenti potresti ottenere <errorcode>ORA-12546</errorcode>
poiché i socket non hanno i permessi corretti. Vedi la nota
di &sap; 0072984.</para>
</sect3>
<sect3 id="ora-27102">
<title><errorcode>ORA-27102</errorcode> (Out of Memory)</title>
<para>Questo errore è accaduto mentre tentavamo di usare i valori
per <literal>MAXDSIZ</literal>e <literal>DFLDSIZ</literal> maggiori di
1&nbsp;GB (1024x1024x1024). In più ci siamo ritrovati
<errorname>Linux Error 12: Cannot allocate memory</errorname>.</para>
</sect3>
<sect3 id="dipgntabindind">
<title>[DIPGNTAB_IND_IND] Durante <command>R3SETUP</command></title>
<para>In generale, vedi la nota di &sap; 0130581 (il punto
<command>R3SETUP</command> termina <literal>DIPGNTAB</literal>). Per
qualche ragione, durante l'installazione specifica per IDES, il
processo di installazione non usava il giusto nome <quote>IDS</quote>
del sistema &sap;, ma piuttosto la stringa vuota
<literal>""</literal>. Questo porta a qualche piccolo problema con
l'accesso alle directory, dal momento che i path sono generati
dinamicamente usando <replaceable>SID</replaceable>
(in questo caso IDS). Quindi, invece di accedere a:</para>
<programlisting>/usr/sap/IDS/SYS/...
/usr/sap/IDS/DVMGS00</programlisting>
<para>venivano usati questi path:</para>
<programlisting>/usr/sap//SYS/...
/usr/sap/D00</programlisting>
<para>Per continuare con l'installazione, abbiamo creato un
collegamento e una direcotry addizionale:</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>Abbiamo trovato note di &sap; che descrivono questo comportamento
(0029227 e 0008401). Non siamo incorsi in alcuno di questi problemi
installando <application>&sap; 4.6C</application>.</para>
</sect3>
<sect3 id="rfcrswboiniindind">
<title>[RFCRSWBOINI_IND_IND] Durante <command>R3SETUP</command></title>
<para>Durante l'installazione di <application>&sap; 4.6C</application>,
questo errore era la conseguenza di un altro errore avvenuto in
precedenza. In questo caso, controlla nei file di log e correggi il
vero problema.</para>
<para>Se dopo aver guardato nei log questo errore è
effettivamente quello corretto (controlla le note di &sap;), puoi
impostare lo <literal>STATUS</literal> dei punti sbagliati da
<literal>ERROR</literal> a <literal>OK</literal> (file
<filename>CENTRDB.R3S</filename>) e riavviare
<command>R3SETUP</command>.
Dopo l'installazione, devi eseguire il rapporto
<literal>RSWBOINS</literal> dalla transazione SE38. Per maggiori
informazioni sulle fasi <literal>RFCRSWBOINI</literal> e
<literal>RFCRADDBDIF</literal>, vedi la nota di &sap;
0162266.</para>
</sect3>
<sect3 id="rfcraddbdifindind">
<title>[RFCRADDBDIF_IND_IND] durante <command>R3SETUP</command></title>
<para>Qui si applicano le stesse restrizioni: assicurati di controllare
nei file di log che questo errore non sia causato da qualche problema
precedente.</para>
<para>Se puoi confermare ciò che dice la nota 0162266 di &sap;,
imposta lo <literal>STATUS</literal> del punto errato da
<literal>ERROR</literal> a <literal>OK</literal> (file
<filename>CENTRDB.R3S</filename>) e riavvia
<command>R3SETUP</command>. Dopo l'installazione, devi eseguire
il rapporto <literal>RADDBDIF</literal> dalla transazione
SE38.</para>
</sect3>
<sect3 id="sigactionsig31">
<title><errorcode>sigaction sig31: File size limit
exceeded</errorcode></title>
<para>Questo errore è avvenuto all'avvio dei processi
<application>&sap;</application> <emphasis>disp+work</emphasis>. Se
si sta avviando <application>&sap;</application> con lo script
<command>startsap</command>, i sottoprocessi avviati si staccano e
fanno il lavoro sporco di avviare tutti gli altri processi
<application>&sap;</application>. Come risultato, lo script stesso
non noterà se qualcosa sia andato storto.</para>
<para>Per controllare se i processi <application>&sap;</application>
non sono partiti correttamente, dai un'occhiata al loro stato
con <command>ps ax | grep <replaceable>SID</replaceable></command>,
che ti darà una lista di tutti i processi
<application>&oracle;</application> e
<application>&sap;</application>.
Se ti sembra che qualche processo manchi o se non puoi connetterti al
sistema <application>&sap;</application>, guarda nei log
corrispondenti che possono essere trovati in
<filename>/usr/sap/<replaceable>SID</replaceable>/DVEBMGS<replaceable>nr</replaceable>/work/</filename>.
I file in cui guardare sono <filename>dev_ms</filename> e
<filename>dev_disp</filename>.</para>
<para>Il segnale 31 avviene qui se la quantità di memoria
condivisa utilizzata da <application>&oracle;</application> e
<application>&sap;</application> supera quella definita nel file di
configurazione del kernel e può essere risolto usando un valore
maggiore:</para>
<programlisting># larger value for 46C production systems:
options SHMMAXPGS=393216
# smaller value sufficient for 46B:
#options SHMMAXPGS=262144</programlisting>
</sect3>
<sect3 id="saposcolfails">
<title>Fallimento dell'avvio di <command>saposcol</command></title>
<para>Ci sono alcuni problemi con il programma
<command>saposcol</command> (versione 4.6D).
Il sistema <application>&sap;</application> usa
<command>saposcol</command> per raccogliere dati a proposito delle
prestazioni del sistema. Questo programma non è necessario per
usare il sistema <application>&sap;</application>, quindi può
essere considerato un problema minore. La versione più
vecchia (4.6B) funziona, ma non raccoglie tutti i dati (molte
chiamate ritorneranno 0, per esempio l'utilizzo della CPU).</para>
</sect3>
</sect2>
</sect1>
<sect1 id="linuxemu-advanced">
<title>Argomenti Avanzati</title>
<para>Se sei curioso di come funziona la compatibilità con i binari
di Linux, questa è la sezione da leggere. Molto di ciò
che segue è basato pesantemente su una email scritta a &a.chat;
da Terry Lambert <email>tlambert@primenet.com</email> (ID del messaggio:
<literal>&lt;199906020108.SAA07001@usr09.primenet.com&gt;</literal>).</para>
<sect2>
<title>Come Funziona?</title>
<indexterm>
<primary>loader della classe di esecuzione</primary>
</indexterm>
<para>FreeBSD ha una astrazione chiamata un <quote>loader della classe di
esecuzione</quote>. Questo &grave; un cuneo nella chiamata di sistema
&man.execve.2;.</para>
<para>Cosa succede è che FreeBSD ha una lista di loader,
piuttosto che un singolo loader con un ritorno nel loader
<literal>#!</literal>, per lanciare qualunque inteprete o script
della shell.</para>
<para>Storicamente, l'unico loader nella piattaforma &unix; esaminava il
numero magico (generalmente i primi 4 o 8 byte del file) per vedere se
il binario fosse conosciuto dal sistema e, nel caso, invocava il loader
del binario.</para>
<para>Se non era un tipo di binario per il sistea, la chiamata
&man.execve.2; ritornava un errore, e la shell tentava di avviare
eseguendolo come comando della shell.</para>
<para>L'assunzione era un default, <quote>qualunque fosse la
shell</quote>.</para>
<para>Più tardi, è stato fatto un hack per &man.sh.1; per
esaminare i primi due caratteri. Se erano <literal>:\n</literal>,
allora invocava la shell &man.csh.1; (crediamo sia stata SCO a fare per
prima questo hack).</para>
<para>Ciò che ora fa FreeBSD è scorrere una lista di
loader, con un loader <literal>#!</literal> generico che riconosce
gli interpreti dai caratteri che seguono lo spazio successivo vicino
alla fine, seguito da un ritorno a <filename>/bin/sh</filename>.</para>
<indexterm><primary>ELF</primary></indexterm>
<para>Per il supporto alle ABI di Linux, FreeBSD vede il numero magico
come un binario ELF (a questo punto non fa distinzione tra FreeBSD,
&solaris;, Linux, o qualunque altro SO che ha un tipo di immagine
ELF).</para>
<indexterm><primary>Solaris</primary></indexterm>
<para>Il loader di ELF cerca un <emphasis>marchio</emphasis>
specializzato, che &grave; una sezione di commento nell'immagine ELF e
che non è presente sui binari ELF SVR4/&solaris;.</para>
<para>I binari di Linux, per funzionare, devono essere
<emphasis>marchiati</emphasis> come tipo <literal>Linux</literal>
da &man.brandelf.1;:</para>
<screen>&prompt.root; <userinput>brandelf -t Linux file</userinput></screen>
<para>Quando viene fatto questo, il loader ELF vedrà il marchio
di <literal>Linux</literal> sul file.</para>
<indexterm>
<primary>ELF</primary>
<secondary>marchiatura</secondary>
</indexterm>
<para>Quando il loader ELF vede il marchio di <literal>Linux</literal>,
il loader sostituisce un puntatore nella struttura
<literal>proc</literal>.
Tutte le chiamate di sistema sono indicizzate attraverso questo
puntatore (in un sistema &unix; tradizionale questo sarebbe l'array di
strutture <literal>sysent[]</literal>, contentente le chiamate di
sistema).
In aggiunta;, il processo è etichettato per un trattamento
speciale del vettore trappola per il codice del segnale di lancio,
e molti altri (minori) aggiustamenti che sono gestiti dal modulo Linux
del kernel.</para>
<para>Il vettore delle chiamate di sistema di Linux contiene, tra le
altre cose, una lista di valori <literal>sysent[]</literal> i cui
indirizzi risiedono nel modulo del kernel.</para>
<para>Quando una chiamata di sistema è fatta dal binario di
Linux, il codice trappola derefereizia il puntatore alla funzione della
chiamata di sistema dalla struttura <literal>proc</literal>, e prende
i punti di ingresso delle chiamate di sistema di Linux, non di
FreeBSD.</para>
<para>In più, la modalità Linux
<emphasis>ridefinisce la root</emphasis> dinamicamente; questo, in
effetti, è quello che fa l'opzione <option>union</option> al
montaggio del file system (<emphasis>non</emphasis> il tipo di file
system <literal>unionfs</literal>!). Un tentativo viene prima fatto per
cercare il file nella directory
<filename>/compat/linux/<replaceable>original-path</replaceable></filename>,
<emphasis>quindi</emphasis>, solo se fallisce, la ricerca &grave; fatta
nella directory
<filename>/<replaceable>original-path</replaceable></filename>.
Questo assicura che possano funzionare i binari che per richiedono altri
binari (p.e., la toolchain di Linux può funzionare tutta sotto il
supporto ABI di Linux). Questo significa anche che i binari di Linux
possono caricare ed eseguire binari di FreeBSD, se non sono presenti i
corrispondenti binari di Linux, e che puoi mettere un comando
&man.uname.1; nell'albero della directory
<filename>/compat/linux</filename> per essere
sicuro che i binari di Linux non possano capire che non stanno girando
sotto Linux.</para>
<para>In effeti c'è un kernel Linux nel kernel FreeBSD;
le varie funzioni sottostanti che implementano tutti i servizi forniti
dal kernel sono identiche sia nelle definizioni delle tabelle delle
chiamate di sistema di FreeBSD che di Linux: le operazioni sul file
system,
le operazioni nella memoria virtuale, la consegna dei segnali, le IPC
System V, ecc&hellip; L'unica differenza è che i binari di
FreeBSD prendono le funzioni <emphasis>colla</emphasis> di FreeBSD, e i
binari di Linux prendono le funzioni <emphasis>colla</emphasis> di Linux
(molti dei vecchi SO hanno solo le loro funzioni
<emphasis>colla</emphasis>: gli indirizzi delle funzioni in un array di
strutture <literal>sysent[]</literal> statico globale, invece che
indirizzi di funzioni dereferenziate da un puntatore inizializzato
dinamicamente nella struttura <literal>proc</literal> del processo che
fa la chiamata).</para>
<para>Qual è la ABI nativa per FreeBSD? Non importa.
Essenzialmente l'unica differenza è che (attualmente: questo
potrebbe facilmente essere cambiato in distribuzioni future, e
probabilmente sarà fatto) le funzioni <emphasis>colla</emphasis>
di FreeBSD sono collegate staticamente nel kernel, e le funzioni
<emphasis>colla</emphasis> di Linux possono essere collegate
staticamente o vi si può accedere attraverso un modulo del
kernel.</para>
<para>Si, ma è davvero emulazione? No. è
implementazione delle ABI, non emulazione. Non è
coinvolto nessun emulatore (o simulatore, per evitare la prossima
domanda).</para>
<para>Allora perché talvolta viene chiamata
<quote>emulazione Linux</quote>? Per rendere difficile vendere FreeBSD!
Seriamente, è perché l'implementazione storica è
stata fatta in un momento in cui non c'era altro termine per descrivere
ciò che stava succedendo; dire che FreeBSD lanciava i binari di
Linux non era vero, se non compilavi il codice o caricavi un modulo,
e c'era bisogno di un termine per descrivere cosa veniva
caricato&mdash; da qui <quote>l'emulatore Linux</quote>.</para>
</sect2>
</sect1>
</chapter>