Per chi come me utilizza spesso, per gioia o per costrizione, Matlab si sarà accorto che su Ubuntu 11.04 il suddetto programma stenta un po’ ad ingranare. Innanzitutto, una volta avviato, ci becchiamo questo warning:
/matlab/bin/util/oscheck.sh: 605: /lib/libc.so.6: not found
Il motivo è semplice. Dalla versione 11.04 di Ubuntu (nonché in Debian Sid) c’è in corso una ristrutturazione dei percordi delle librerie di sistema per permettere di installare delle librerie multiarchitettura permettendo, ad esempio, di utilizzare plugin per browser 32bit in sistemi a 64bit senza l’utilizzo di layer aggiuntivi (come ia32-libs).
Questa migrazione ha però sconvolto un gran numero di programmi come CMake per il quale è attualmente quasi impossibile compilare programmi Gtk e, appunto, Matlab.
Matlab infatti cerca la libreria libc.so.6 all’interno dei percorsi standard (/lib e /usr/lib) e non in quello modificato. Per risolvere il problema ci basta fare un link simbolico in questo modo:
sudo ln -s /lib64/x86_64-linux-gnu/libc-2.13.so /lib64/libc.so.6
Per la versione 64bit e
sudo ln -s /lib/i386-linux-gnu/libc-2.13.so /lib/libc.so.6
per la versione 32bit.
Il problema più grave però coinvolge MEX il tool di matlab per la compilazione. In Ubuntu infatti è stato abbandonato il supporto a GCC 4.3 e precedenti, versione per cui è progettato MEX. Se provate a compilare riceverete sfilze di errori caratterizzati da un sonoro:
version `GLIBCXX_3.4.11' not found
Esiste però un workaround semplice che ci permetterà di utilizzare GCC 4.4 senza problemi.
Per prima cosa installiamo la versione 4.4 dei tools di compilazione:
$ sudo apt-get install gcc-4.4 g++-4.4 gfortran-4.4
Secondo, apriamo il file ~/.matlab/R2011a/mexopts.sh con un editor a piacere e modifichiamo tutte le occorrenze di gcc con gcc-4.4, g++ con g++-4.4 e gfortran con gfortran-4.4.
A questo punto vi basta salvare il file e avviare nuovamente Matlab. Tutto dovrebbe funzionare correttamente.
Thanks to this blog for the info. You saved my day.

Sidux, non mi stancherò mai di ripeterlo, è una distribuzione basata su Debian Sid e, come tale, è potenzialmente instabile. Il team di Sidux si occupa di mantenerla sempre funzionale grazie a repository aggiuntivi ma il 90% dei pacchetti sono sempre di Sid.
Recent Comments