installare mono 2.4.3 per opensim
Mono e’ il motore che permette al simulatore opensim di funzionare.
La configurazione suggerita per cyberlandia ha come sistema operativo Ubuntu e la maggior parte delle isole sono installate su macchine a basso costo di diversi provvider (ovh, linode) solitamente macchine virtuali (vengono simulate da un server fisico, e’ tutto un giro di simulatori questo metamondo
Mono attualmente e’ alla versione 2.4.3 – su cyberlandia siamo alla versione 2.2. Con questo post vi insegnero ad aggiornarlo.
La versione 2.4.3 e’ piu performante e diminuisce di molto i crash. Per le versioni recenti di OpenSim e’ praticamente obbligatorio utilizzarlo.
Al solito vi elenco i comandi per ottenere mono funzionante.
ci posizioniamo come utente root nella cartella opensim
cd /home/opensim
creiamo una cartella e ci entriamo
mkdir mono-2.4
cd mono-2.4
effettuaiamo il download di libgdiplus e di mono dai sorgenti
wget http://mono.ximian.com/monobuild/snapshot/snapshot_sources/libgdiplus/libgdiplus-140293.tar.bz2
wget http://mono.ximian.com/monobuild/snapshot/snapshot_sources/mono/mono-142439.tar.bz2
scompattiamo
tar -xjf libgdiplus-140293.tar.bz2
tar -xjf mono-142439.tar.bz2
vengono create due cartelle: libgdiplus-140293 e mono-142439
dove dobbiamo procedere con la compilazione:
cd libgdiplus-140293
./configure
make
make install
i comandi make e make install durano diversi minuti … aspettare che finisca
passiamo ora a compilare mono, purtroppo un bug non ancora corretto da dei problemi durante i teleport, nel caso si utilizzino delle macchine con piu schede di rete, bisogna prima della compilazione di mono correggere un file:
cd ..
cd mono-142439/mcs/class/System/System.Net.NetworkInformation/
editare il file NetworkInterface.cs usare vi o nano oppure scaricarlo in locale con filezilla,
individuare le righe:
————————
if (((int)sockaddrll.sll_halen) > sockaddrll.sll_addr.Length){
Console.Error.WriteLine (”Got a bad hardware address length for an AF_PACKET {0} {1}”,
sockaddrll.sll_halen, sockaddrll.sll_addr.Length);
continue;
——————
e sostituirle con
if (((int)sockaddrll.sll_halen) > sockaddrll.sll_addr.Length){
Console.Error.WriteLine (”Got a bad hardware address length for an AF_PACKET {0} {1}”,
sockaddrll.sll_halen, sockaddrll.sll_addr.Length);
next = addr.ifa_next;
continue;
salvare il file o sostituirlo quindi si puo procedere con la compilazione di mono:
./configure
make
make install
a questo punto il vostro mono e’ aggiornato alla 2.4.3
e si possono riavviare le isole con la nuova versione.






Bravo Carlos, il tutorial è ottimo come al solito… ho aggiornato da poco mono alla versione 2.4.3 con le dovute modifiche al file NetworkInterface.cs e sembra andare tutto bene.
suggerirei cmq, dopo aver modificato quel file e prima di compilare mono, di digitare il seguente comando:
cd /home/opensim/mono-2.4/mono-142439/
per tornare nella directory di mono e proseguire con la sua compilazione.
un saluto a tutti!
Grazie Carlos, ma una domanda da ignorante totale: che ne faccio della vecchia cartella mono 2.2? La elimino? Posso? Grazie
si Hashanty, puoi eliminarla tranquillamente