Matlab, come posso installarlo su Linux?

Ultima modifica: 8 Settembre 2007 05:10 am
Autore: Giuseppe Fiorelli

Preambolo

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.

tip E' da poco uscito Matlab 7.4 ( R2007a), è molto più semplice da installare bisogna eseguire solo lo script di installazione ( install_matlab ) e il gioco è fatto.
Personalmente l'ho provato, è vero, è 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 è INUTILIZZABILE!!!)

In questo articolo vengono presentate in dettaglio le procedure da seguire per riuscire ad installare matlab su le seguenti distribuzioni:

  1. Fedora core 6
  2. Fedora core 5
  3. Fedora core 4
  4. Debian Etch/Ubuntu

Appunto per cercare di aiutare tutti coloro che hanno intenzione di effetture questo "salto" ho deciso di illustrare l'esperienza accumulata sul campo nell'installare questo benedetto software su differenti distribuzioni.

note Se volete lasciare commenti, descrivere la propria esperienza, oppure richiedere un'ulteriore aiuto, registratevi al nostro forum. Tenteremo, nel limite delle nostre possibiltà, di darvi una mano.
Lista dei principali bug risolti:
  1. libmwm_ir.so;
  2. libmaple.so;
  3. libXft.so.1;
  4. libqt-mt.so.3;
  5. alcuni problemi con le openGL.
Ovviamente in quest'articolo troverete TANTISSIME altre informazioni e soluzioni!!!
Grazie per l'attenzione e buona lettura!!!

A mio avviso i migliori risultati sono stati ottenuti sotto Fedora core 5, mentre con le distribuzioni debian based ( da parte mia ho provato Debian Etch ) ho rilevato alcuni piccoli difettucci che non sto qui a menzionare.

note Le prove di installazione sono state effettuate su un notebook acer TravelMate 250, pentium 4 2.8Ghz e 256MB di ram e la versione di Matlab utilizzata è la: Matlab 7 R14

FEDORA CORE 6

Finalmente, lo sò che è tardi, sono riuscito ad installare la mia R14 anche su fedora core 6. Come prima cosa ricordatevi di installare java seguendo la procedura illustrata sul nostro sito. Fatto ciò non ci resta che iniziare:

  1. Per prima cosa bisognerà creare una directory all'interno del nostro sistema /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);
  2. Prima di far eseguire lo script install ( ricordatevi di effettuare questa operazione da super utente ), presente nel primo cd-rom ricordatevi di disabilitare SELinux.

    Per disabilitare e abilitare SELinux basterà eseguire in successione i seguenti comandi :

    disabilita SELinux: setenforce 0
    abilitare SELinux: setenforce 1

    N.B. Al termine dell'installazione SELinux può essere riattivato.

  3. Una volta disabilitato SELinux si può procedere tranquillamente con l'installazione dei tre cd-rom in nostro possesso.

    Inserite il primo cd-rom ed avviate lo scipt install.

  4. Arrivati a questo punto non ci resta che avviare lo script install_matlab presente all'interno della directory matlab7, quella dove voi avete deciso di installare matlab, nel mio caso ( e di tutti coloro che hanno seguito questa piccola guida ):

    # /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 )

  5. In caso all'avvio di matlab si riceva un warning che indichi che il programma in questione non ha accesso alle openGL bisognerà digitare da terminale i seguenti comandi:

    # cd ${MATLAB_ROOT}/sys/os/glnx86
    # mv libgcc_s.so.1 libgcc_s.so.1_orig
    # ln -sf /lib/libgcc_s.so.1 ./
  6. Simulink con fedora core 6 mi ha dato qualche problema, se al primo avvio vi darà un'errore del genere ( è all'inizio della lista di errori che vi si presenterà di fronte ):
    ??? 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
  7. Se Matlab si chiude improvvisamente quando provate ad interagire con i grafici che avete generato, e compareun errore legato a questa libreria: libmwm_ir.so.
    Allora provate a seguire la procedura descritta qui, dovrebbe fare a caso vostro!!!.
note LIBMAPLE.SO
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")

  1. scompattate il file;
  2. aprite una finestra di terminale, ed entrate come super utente;
  3. spostatevi nella cartella /usr/local/matlab7/bin/glnx86: ( N.B. /usr/local/matlab7/ rappresenta il percorso dove si trova la vostra directory di installazione)
    # cd /usr/local/matlab7/bin/glnx86
  4. create una copia di backup del file libmaple.so:
    # mv libmaple.so libmaple.so_b
  5. copiateci dentro il nuovo file (quello che avete scaricato e scompattato):
    # 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

FEDORA CORE 5

L'installazione in se è molto semplice basta seguire i seguenti accorgimenti:
Prima di tutto bisogna aver installato sulla propria macchina java sun seguendo la procedura illustrata sul nostro sito.

Una volta finita l'installazione di Java si può procedere con l'installazione del nostro ben amato matlab:

  1. Per prima cosa bisognerà creare una directory all'interno del nostro sistema /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);
  2. Prima di far eseguire lo script install ( ricordatevi di effettuare questa operazione da super utente ), presente nel primo cd-rom ricordatevi di disabilitare SELinux.

    Per disabilitare e abilitare SELinux basterà eseguire in successione i seguenti comandi :

    disabilita SELinux: setenforce 0
    abilitare SELinux: setenforce 1

    N.B. Al termine dell'installazione SELinux può essere riattivato.

  3. Una volta disabilitato SELinux si può procedere tranquillamente con l'installazione dei tre cd-rom in nostro possesso.

    Inserite il primo cd-rom ed avviate lo scipt install.

    note

    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 campio di cd, smontate il cd-rom presente nel vostro lettore e montate quello nuovo.

  4. Alla fine dell'installazione copiate il file license.lic nella directory /usr/local/matlab7/etc
  5. Ricordate di dare al nostro utente i “diritti” di accesso al file license.lic:
    # chown giuseppe /usr/local/matlab7/etc/license.lic
  6. Arrivati a questo punto non ci resta che avviare lo script install_matlab presente all'interno della directory matlab7, quella dove voi avete deciso di installare matlab, nel mio caso ( e di tutti coloro che hanno seguito questa piccola guida ):

    # /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 )

  7. Dopo tutto questo al primo avvio di matlab non si riesce ad avviare simulink, ricevendo un errore simile a questo:

    ??? 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
  8. Un altro problema che sarete chiamati a risolvere riguarda le opengl. Per risolvere questo problema occorre, prima di tutto, creare un'apposita cartella, ad esempio:

    # mkdir /usr/local/matlab-support

    All'interno di questa directory bisognerà lincarvi i due file presenti nella sottodirectory qui riportata (ricoradati 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/.
  9. Per facilitare l'avvio di Matlab vi consiglio di realizzare sul desktop un file di testo ( ad esempio usando gedit o kate) e all'interno copiateci questo script:

    #! /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

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 e contattatemi via email o tramite il forum...

FEDORA CORE 4

Fino al punto 5 installare matlab su Fedora 4 e Fedora 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 matworks...in funzione degli errori riscontrati durante le prime settimane di utilizzo ):

  1. In caso all'avvio di matlab si riceva un warning che indichi che il programma in questione non ha accesso alle openGL bisogna digitare da terminale i seguenti comandi:

    # cd ${MATLAB_ROOT}/sys/os/glnx86
    # mv libgcc_s.so.1 libgcc_s.so.1_orig
    # ln -sf /lib/libgcc_s.so.1 ./
  2. Per consentire a matlab di funzionare correttamente, prima di eseguire il programma ( basta una volta per sessione ) ricordati di disabilitare SELinux (setenforce 0, come visto al punto 2 riguardante Fedora 5) e digitare, rigorosamente da utente "normale", le seguenti istruzioni:

    $ export LD_ASSUME_KERNEL=2.4.1
    $ matlab

    oppure:

    $ LD_ASSUME_KERNEL=2.4.1 matlab

note

VALIDO PER FEDORA 4,FEDORA 5 e FEDORA 6
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:
  1. rinomina il seguente file: /usr/local/matlab7/bin/glnx86/libmwm_ir.so

    # cd /usr/local/matlab7/bin/glnx86
    # mv libmwm_ir.so libmwm_ir.so.old
  2. scarica il seguente file da Mathworks: libmwm_ir.so
  3. posiziona la libreria scaricata in /usr/local/matlab7/bin/glnx86/ e il gioco è fatto.

Procedura di installazione Debian Etch/Ubuntu:

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.

  1. Create la directory dove verrà installato Matlab:
    # mkdir /usr/local/matlab7

    e, al suo interno copiateci il file fornito con la licenza acquistata ( lincense.dat ).

  2. Lo script install presente sul primo cd-rom non può essere avviato così com'è ma dovrà essere modificato opportunamente visto che in Debian come in molte distribuzioni debian based ( vedi ubuntu ) libc6 non è eseguibile. Prima di modificare lo script dobbiamo creare una cartella nella nostra home e copiarci al suo interno tutto il contenuto del primo cd-rom in modo da poter editare lo script in question..

    Editiamo lo script install sostituendo la seguente riga:

    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.

  3. Aprite un "terminale" e verificate che objdump sia un comando riconosciuto, in caso questo comando non venga trovato bisognerà installare il pacchetto binutils:

    # apt-get install binutils
    note

    Probabilmente il vostro utente è quello che detiene il server X, per concedere a tutti glli altri utenti ( root compreso ) di accedere al server X digitate:

    $ xhost +

    accediamo ad una nuova console, e acquisite i privilegi di superutente ( 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".

  4. Avviate l'installazione eseguendo da root lo script "install" precedentemente modificato:

    # /...directory_temporanea.../install
  5. Finita l'installazione del primo cd-rom, quello copiato sull'HD, potete proseguire installazione direttamente da cd-rom.

  6. Per permettere che Matlab venga eseguito correttamente dobbiamo editare lo script oscheck:
    # 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.

  7. Alla fine dell'installazione copiate il file license.lic nella directory /usr/local/matlab7/etc

  8. Ricordate di dare al nostro utente i “diritti” di accesso al file license.lic:
    # chown giuseppe /usr/local/matlab7/etc/license.lic
  9. Per completare l'installazione modificate anche lo script /usr/local/matlab7/install_matlab sostituendo sempre la medesima riga:

    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 GLIBCci sia un solo TAB.

  10. Avviate lo script appena modificato:
    # /usr/local/matlab7/install_matlab
  11. In caso all'avvio di matlab si riceva un warning che indichi che il programma in questione non ha accesso alle openGL bisogna digitare da terminale i seguenti comandi:

    # cd ${MATLAB_ROOT}/sys/os/glnx86
    # mv libgcc_s.so.1 libgcc_s.so.1_orig
    # ln -sf /lib/libgcc_s.so.1 ./
  12. Se si desidera avviare matlab per mezzo di un'icona d'avvio:

    setsid /usr/local/matlab7/bin/matlab -desktop

    N.B. Le immagini da utilizzare come icone sono presenti nella sottodirectory: /usr/local/matlab7/X11/icons

Con questo ho esaurito tutto ciò che avevo da dire riguardo l'installazione di Matlab su Linux, sperando che tutto ciò sia servito a convincere quelle persone che volevano passare a linux ma Matlab le aveva fermate.....

I contenuti pubblicati sulle pagine di Fioreltech.net non possono essere replicati su altri siti Web, mailing list, newsletter, riviste cartacee e cdrom senza la preventiva autorizzazione dei curatori di Fioreltech.net, indipendentemente dalle finalità di lucro. È altresì concessa la produzione di opere derivate, purché queste abbiano una forma originale ed estendano quanto riportato in Fioreltech.net (NON la solita parafrasi anti-copyright), che deve essere comunque visibilmente citato tra le fonti. I curatori di Fioreltech.net non si assumono alcuna responsabilità per eventuali danni causati, direttamente o indirittamente, dai gadget presenti sulle proprie pagine e/o dall'applicazione di certe procedure descritte negli articoli. Eventuali marchi registrati possono essere citati in Fioreltech.net per scopo informativo, pur non avendo su di essi alcun diritto.