Ho letto diversi post in giro per la rete (molti dei quali sul blog di Telperion), fatti con toni particolarmente tendenti al lamento, nel quale si afferma che sarebbe meglio se, nelle distribuzioni Linux, i programmi fossero compilati staticamente Come esempio viene riportato Firefox dove il tarball per il pinguino, rilasciato da mozilla.com, grazie alla compilazione statica funziona ovunque. Ma sarà vero? Giudicate voi da questa immagine (Cliccateci sopra per ingrandirla):
L’immagine è chiara, Firefox non parte perchè sul sistema sono installate le GTK 2.8, mentre Firefox 3.0.1 ha bisogno delle GTK 2.10. Preciso che il sistema è una macchina virtuale con installata Debian 4.0r4. Ora, i binari statici non dovrebbero funzionare ovunque? Si, ma i traball di Firefox non sono compilati staticamente:
fabio@pippin:~/firefox$ file firefox-bin
firefox-bin: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
In effetti, fino allo scorso anno anche la libstdc++5 doveva essere installata nel sistema, per far funzionare Firefox 2.0, ora invece sono incluse nel tarball.
Dopo questo esempio su firefox, ecco un po’ di concetti che non approfondisco qui, giusto per smentire un po’ di voci infondate:
- La compilazione dinamica è quella più utilizzata, programmi compilati dinamicamente si trovano sia su Windows che su tutti gli Unix, quindi anche Linux e Mac OS X.
- Tra i vantaggi vi sono un minore consumo di Memoria centrale, la possibilità di aggiornare i programmi più facilmente
- Non è vero che la presenza di librerie dinamiche porta al rischio della perdita di controllo dello sviluppo delle distribuzioni, se non altro perchè qualsiasi distro si dota di strumenti di sviluppo per tenere traccia delle dipendenze, in Debian ad esempio si ha il Debian Package Tracking System.
- Il fatto che per usare un programma non serva un installer, o che sia contenuto in un tarball non vuol dire che il programma sia compilato staticamente.
In futuro mi propongo di approfondire questi concetti generali.
PS: Se volete installare Firefox 3 (rilasciato da Mozilla) su etch, provate a seguire questa guida.



