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.

Ci sono però due-tre accortezze da seguire per far si che ogni aggiornamento vada a buon fine. Sono cose che dico perché, anche se sono messe in grassetto sul manuale di sidux in pochi le leggono (non le ho lette nemmeno io al primo dist-upgrade XD), specie se abituati a Ubuntu e Debian Stable in cui gli aggiornamenti sono molto soft.

Per prima cosa installate il pacchetto sidux-hermes. Questo programma è una semplice icona che si piazza nella system-tray e vi segnale se il dist-upgrade può dare problemi.

Se l’icona è verde potetre aggiornare senza problemi. Se l’icona è arancione dovete fare attenzione ad alcune cose. Se l’icona è rossa allora vi conviene aspettare. :)

La seconda accortezza è quella di non eseguire un dist-upgrade con X attivo. Seguite quindi questa procedura:

  • Chiudere la sessione attiva.
  • Ctrl+Shift+F1 per andare nella console.
  • Loggare come root.
  • Dare i comandi:
    # init 3
    # apt-get update
    # apt-get dist-upgrade
    # init 5 && exit
  • Riloggare.

Se terrete d’occhio questi due consigli potrete dormire sonni tranquilli. :)

Buon Upgrade. :)

 
Unix Logo

Unix Logo

Ultimamente passo decisamente troppi problemi. Troppi casini tutti insieme mi hanno e mi stanno mettendo alla prova i nervi.

Comunque, nei momenti di lucidità le mie deformazioni professionali prendono il sopravvento. Quindi festeggio questo momento di distensione mentale con un altro tassello al muro di slashcode.

Cominciamo quindi a parlare della programmazione di sistema. In questa sede ci occuperemo della programmzaione in ambito Unix. Il motivo è semplice: è quella che conosco meglio e di cui (grazie alle numerose implementazioni aperte) è possibile studiare più in dettaglio il funzionamento. Citerò solamente il nome della funzione analoga per Windows in modo che chi sia interessato possa evere un punto di partenza per ricerche autonome.

Il nostro percorso inizia dai processi.

Continue reading »

© 2008-2012 SlashCode Suffusion theme by Sayontan Sinha