this is a draft
Prima o poi nella vita di un “aspirante ingegnere”, PURTROPPO occorrerà utilizzare Matlab… questo fatto, oltre al pochissimo tempo libero, ha fatto in modo che molte persone, fra cui alcuni miei conoscenti, non abbiano avuto modo di fare il GRANDE salto e passare a LINUX.
install_matlab) e il gioco è fatto.
Personalmente l'ho provato: è vero che è più semplice da installare, ma è anche vero che risulta essere estremamente PESANTE. (Se il vostro PC ha poca RAM e non è molto potente lasciate perdere, perché è INUTILIZZABILE!!!)
Appunto per cercare di aiutare tutti coloro che hanno intenzione di effettuare questo “salto” ho deciso di illustrare l'esperienza accumulata sul campo nell'installare questo benedetto software su differenti distribuzioni.
Lista dei principali bug risolti:
libmwm_ir.so;libmaple.so;libXft.so.1;libqt-mt.so.3;A mio avviso i migliori risultati sono stati ottenuti sotto Fedora core 5, mentre con le distribuzioni Debian based (ho provato Debian Etch) ho rilevato alcuni piccoli difettucci che non sto qui a menzionare.
Ovviamente in quest'articolo troverete TANTISSIME altre informazioni e soluzioni!!!
Grazie per l'attenzione e buona lettura!!!
Finalmente, lo so che è tardi, sono riuscito ad installare la mia R14 anche su Fedora Core 6. Come prima cosa ricordatevi di installare Java SE seguendo la procedura illustrata sul nostro sito. Fatto ciò non ci resta che iniziare:
/usr/local/matlab7 (entrando in modalità super-utente): $ su - Parola d'ordine: <hidden password> # mkdir /usr/local/matlab7
all'interno di questa directory bisognerà copiarci il file license.dat (il file che vi viene fornito con l'acquisto della licenza).
setenforce 0 # disabilita SELinux setenforce 1 # abilita SELinux
N.B. Al termine dell'installazione SELinux può essere riattivato.
# /usr/local/matlab7/install_matlab
avviando questo script da super utente e rispondendo alle varie domande lo script sistemerà quasi tutto…. (lo devo ammettere io ho risposto a tutto Yes….senza troppi complimenti)
# cd ${MATLAB_ROOT}/sys/os/glnx86
# mv libgcc_s.so.1 libgcc_s.so.1_orig
# ln -sf /lib/libgcc_s.so.1 ./
??? Can't load '/usr/local/matlab/bin/glnx86/libmwsimulink.so': libXft.so.1: cannot open shared object file: No such file or directory undefined symbol: FcPatternInsertElt
Aprite una finestra del terminale, entrate come super-utente (su -), e digitate i seguenti comandi:
# updatedb && locate libXft.so /usr/lib/libXft.so /usr/lib/libXft.so.1.1 /usr/lib/libXft.so.2 /usr/lib/libXft.so.2.1.2 # ln -s /usr/lib/libXft.so.2 /usr/lib/libXft.so.1
Riavviando matlab e rieseguendo Simulink questa volta vi dovrebbe dare il seguente errore:
??? Can't load '/usr/local/matlab/bin/glnx86/libmwsimulink.so': /usr/local/matlab/bin/glnx86/libqt-mt.so.3: undefined symbol: XftFreeTypeOpen
Per risolvere anche questo problema digitate i seguenti comandi:
# yum install qt (solo se ancora non sono state installate sul proprio sistema ) # mv /usr/local/matlab7/bin/glnx86/libqt-mt.so.3 /usr/local/matlab7/bin/glnx86/libqt-mt.so.3_backup (in maniera da preservare la copia originale) # ln -s /usr/lib/qt-3.3/lib/libqt-mt.so.3 /usr/local/matlab7/bin/glnx86/libqt-mt.so.3
Avviate Matlab ed eseguite questi due comandi:
syms x taylor(exp(-x))
quasi certamente riceverete quest'errore:
Unable to load mex file: /usr/local/matlab7/toolbox/symbolic/maplemex.mexglx. /usr/local/matlab7/bin/glnx86/libmaple.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference ??? Invalid MEX-file '/usr/local/matlab7/toolbox/symbolic/maplemex.mexglx': .
La soluzione è disponibile sul sito della mathworks.
In pratica dovete scaricarvi il file presente il fondo alla pagina linkata (questo): libmaple.zip ( state attenti … il link dà problemi. Ricordate, tasto destro del mouse “Salva destinazione con nome…” e rinominate il file da “attachment.html” in “libmaple.zip”)
/usr/local/matlab7/ rappresenta il percorso dove si trova la vostra directory di installazione) # cd /usr/local/matlab7/bin/glnx86
# mv libmaple.so libmaple.so_b
# mv /<directory dove si trova il file>/libmaple.so .
ri-eseguite i due comandi Matlab menzionati all'inizio e otterrete: 1-x+1/2*x^2-1/6*x^3+1/24*x^4-1/120*x^5
L'installazione in se è molto semplice: basta seguire alcuni accorgimenti. Prima di tutto bisogna aver installato sulla propria macchina Java SE seguendo la procedura illustrata sul nostro sito.
Una volta finita l'installazione di Java si può procedere con l'installazione del nostro beneamato Matlab:
$ su - Parola d'ordine: <hidden password> # mkdir /usr/local/matlab7
all'interno di questa directory bisognerà copiarci il file license.dat (il file che vi viene fornito con l'acquisto della licenza).
setenforce 0 # disabilita SELinux setenforce 1 # abilita SELinux
N.B. Al termine dell'installazione SELinux può essere riattivato.
Fate molta attenzione a non saltare nessun cd-rom. Ancora oggi, ogni volta che installo Matlab, non riesco a capire l'utilità del tasto Skip presente all'interno della finestra di installazione.
Quindi, quando il sistema vi avvertirà di effettuare il cambio di CD, smontate il cd-rom presente nel vostro lettore e montate il successivo. </note>
# chown giuseppe /usr/local/matlab7/etc/license.lic
# /usr/local/matlab7/install_matlab
avviando questo script da super utente e rispondendo alle varie domande lo script sistemerà quasi tutto…. (lo devo ammettere io ho risposto a tutto Yes….senza troppi complimenti)
??? Can't load '/usr/local/matlab/bin/glnx86/libmwsimulink.so': /usr/lib/libXft.so.1
Per risolvere questo problema, procuratevi il seguente pacchetto: xorg-x11-libs-6.8.2-37.FC4.49.2.1.i386.rpm. Non vi resta che scompattate il pacchetto (tasto destro del mouse → estrai), entrare nella directory del file appena scompattato e recarvi nella sottodirectory /usr/X11R6/lib e cercate il file libXft.so.1.1. Copiate questa libreria all'interno della directory /usr/lib/ presente nel vostro sistema e create il seguente link simbolico:
# ln -s /usr/lib/libXft.so.1.1 /usr/lib/libXft.so.1
# mkdir /usr/local/matlab-support
All'interno di questa directory bisognerà linkarvi i due file presenti nella sottodirectory qui riportata (ricordati che il percorso /usr/local/matlab7/ rappresenta il TUO percorso di installazione):
# cd /usr/local/matlab7/sys/opengl/lib/glnx86 # ln -s libGL.so /usr/local/matlab-support/ # ln -s libGLU.so /usr/local/matlab-support/
#! /bin/sh # # Script di avvio di Matlab LD_LIBRARY_PATH=/usr/local/matlab-support/:$LD_LIBRARY_PATH /usr/local/matlab7/bin/matlab -desktop
Fornite i permessi di esecuzione a questo script:
$ chmod +x /.......( nome e percorso dello script creato )...
<note>
E' ovvio che non è obbligatorio realizzare lo script basta copiare in una finestra del terminale la seguente riga e premere “invio”:
LD_LIBRARY_PATH=/usr/local/matlab-support/:$LD_LIBRARY_PATH /usr/local/matlab7/bin/matlab -desktop
</note> Vi posso tranquillamente comunicare che avviando lo script scritto in precedenza ( punto 9 ) dovreste essere in grado di utilizzare Matlab senza problemi…
In caso di problemi ( spero che non ne abbiate perché sarà molto difficile darvi una mano… specie con questi programmi precompilati è un “casino”, ci sono troppe variabili in gioco ), o in caso vogliate rilasciare un parere, un appunto per sviluppare questa sezione, non esitate a contattarci via email o tramite i commenti…
Fino al punto 5 installare Matlab su Fedora Core 4 e Fedora Core 5 è identico, compresa l'installazione di Java che deve essere presente e ben funzionante. In Fedora Core 4 per far funzionare il tutto effettuate le seguenti operazioni (comandi trovati sul sito di Mathworks…in funzione degli errori riscontrati durante le prime settimane di utilizzo):
# cd ${MATLAB_ROOT}/sys/os/glnx86
# mv libgcc_s.so.1 libgcc_s.so.1_orig
# ln -sf /lib/libgcc_s.so.1 ./
$ export LD_ASSUME_KERNEL=2.4.1 $ matlab oppure: $ LD_ASSUME_KERNEL=2.4.1 matlab
Se durante il normale utilizzo di Matlab, in particolare, svolgendo alcune operazioni come “Figure Properties…” oppure generando delle figure a partire da un M-file, in uscita si otterrà un errore simile a questo:
Configuration: MATLAB Version: 7.0.0.19901 (R14) Operating System: Linux 2.4.21-4.ELsmp #1 SMP Fri Oct 3 17:52:56 EDT 2003 i686 Window System: The XFree86 Project, Inc (40300000), display :0.0 Current Visual: 0x23 (class 4, depth 24) Processor ID: x86 Family 15 Model 2 Stepping 9, GenuineIntel Virtual Machine: Java 1.4.2_02 with Sun Microsystems Inc. Java HotSpot(TM) Client VM (mixed mode) Default Charset: UTF-8 Register State: eax = 00000000 ebx = b65fa480 ecx = 00000000 edx = a4fab858 esi = a4fac428 edi = 08723d70 ebp = bfff4a18 esp = bfff49d0 eip = b65bb733 flg = 00210286 Stack Trace: [0] libmwm_ir.so:mps_sweep_term_pools(0x08723cd4, 0xa4fac428, 0x08e95d60 "high, just return input.\n y ", 0xb614cc0a) + 211 bytes [1] libmwm_interpreter.so:in_delete_ir_record(_ir_context*, _ir_record*)(0x08723cd4, 0xbfff4cc0, 0xbfff4c30, 0xbfff4ad0) + 117 bytes [2] libmwm_interpreter.so:Mfh_mp::inCompileMfile(char const*)(0x08506810, 0x08dd14d5 "/usr/local/matlab/toolbox/matlab..", 0, 0xb70e64b9) + 2106 bytes [3] libmwm_interpreter.so:Mfh_mp::inCompileMOrLoadPFile()(0x08506810, 0xb7377660, 0xb7280600, 0) + 1350 bytes [4] libmwm_interpreter.so:Mlm_mp::load_file()(0xb4b8f300, 1, 0xbfff6018, 0xb73593fe) + 51 bytes [5] libmwm_dispatcher.so:Mlm_file::load_mf()(0xb4b8f300, 0x9b1fc150, 0xbfff6068, 0xb73278e6) + 127 bytes
SOLUZIONE:
# cd /usr/local/matlab7/bin/glnx86 # mv libmwm_ir.so libmwm_ir.so.old
Accertatevi di aver installato Java: digitate su un terminale java -version, se non risulta essere installato seguite le istruzioni presenti sul nostro sito per procedere all'installazione di Sun Java.
$ xhost +
accediamo ad una nuova console, e acquisite i privilegi di super-utente ( su - etc… ), e, per avviare l'installazione:
# export DISPLAY=:0.0
N.B. un'alternativa potrebbe essere quella di avviare, dalla barra delle “Applicazioni”, un “Terminale di root”.
# mkdir /usr/local/matlab7
e, al suo interno copiateci il file fornito con la licenza acquistata (lincense.dat).
ver=`/lib/libc.so.6 | head -1 | sed -e "s/^[^0-9]*//" -e "s/[ ,].*$//"`
con
ver=`objdump -x /lib/libc.so.6|egrep "GLIBC_"|tail -1|awk -F_ '{print $2}'`
Fate molta attenzione che tra egrep” e GLIBC ci sia un solo un TAB. In caso durante l'avvio dello script o di matlab si riscontrino degli strani errori ricontrollate che ci sia un solo TAB.
# apt-get install binutils
# /...directory_temporanea.../install
# cd /usr/local/matlab7/bin/util/ # vi oscheck.sh
e sostituite la riga seguente:
ver=`/lib/libc.so.6 | head -1 | sed -e "s/^[^0-9]*//" -e "s/[ ,].*$//"`
con
ver=`objdump -x /lib/libc.so.6|egrep" GLIBC_"|tail -1|awk -F_ '{print $2}'`
ricordati ancora una volta che tra egrep” e GLIBC ci sia un solo TAB.
# chown giuseppe /usr/local/matlab7/etc/license.lic
ver=`/lib/libc.so.6 | head -1 | sed -e "s/^[^0-9]*//" -e "s/[ ,].*$//"`
con
ver=`objdump -x /lib/libc.so.6|egrep" GLIBC_"|tail -1|awk -F_ '{print $2}'`
ricordando ancora che tra egrep” e GLIBC ci sia un solo TAB
# /usr/local/matlab7/install_matlab
# cd ${MATLAB_ROOT}/sys/os/glnx86
# mv libgcc_s.so.1 libgcc_s.so.1_orig
# ln -sf /lib/libgcc_s.so.1 ./
setsid /usr/local/matlab7/bin/matlab -desktop
N.B. Le immagini da utilizzare come icone sono presenti nella sottodirectory: /usr/local/matlab7/X11/icons