Installare Software

Installare software sotto GNU/Linux è abbastanza differente rispetto al metodo al quale siete probabilmente abituati con Microsoft Windows. Questo è dovuto a motivi filosofici :). GNU/Linux è un sistema operativo gratuito (nonché libero). Anche la maggior parte del software è libero. Quindi i programmi possono meglio cooperare a vicenda ed allo stesso tempo si appoggiano spesso uno all'altro per portare a termine un lavoro.

Installare dai pacchetti

I pacchetti sono l'equivalente Linux dei file d'installazione (.EXE) di Windows. Ad ogni modo sono disponibili diversi formati di pacchetti. Le differenze fra questi formati non costituiscono l'argomento dell'articolo, ma è comunque bene sapere che esistono. I più popolari sono i seguenti tre:

  • RMP, inizialmente apparso su Red Hat Linux, è attualmente utilizzato da molte distribuzioni come Suse, Mandriva, Fedora Core, Yoper o PLD Linux
  • DEB, un formato dei pacchetti di Debian, ora utilizzato da molte distribuzioni derivate da Debian, ad esempio Ubuntu, MEPIS, Xandros e Knoppix
  • TGZ, un formato tradizionale utilizzato su Slackware, nonché (in una versione modificata) su ArchLinux, Frugalware, KateOS ed altre distribuzioni.

Per installare del software a partire dai pacchetti basta solitamente un semplice doppio-clic su un file con estensione DEB o RPM che abbiamo appena scaricato. I singoli pacchetti possono anche essere installati manualmente. Per i pacchetti RPM, il comando magico è:

rpm -Uvh nome_pacchetto.rpm

Per i pacchetti DEB è altrettanto semplice:

dpkg -i nome_pacchetto.deb

Installare i pacchetti manualmente risulta abbastanza problematico se il pacchetto scaricato ha alcune dipendenze. In tal caso, usare un gestore di pacchetti (vedere la sezione seguente), è una scelta molto più intelligente.

Installare software dai repository

Per rendere l'installazione del software più facile, le distribuzioni di Linux forniscono i cosiddetti repository (depositi di software) - server centrali in cui i pacchetti sono immagazzinati (applicazioni, librerie, driver o parti di documentazione) e rimangono disponibili per consentire un'installazione immediata. Grazie ai repository, tantissime applicazioni possono essere installate in un modo standard, usando un singolo programma denominato gestore di pacchetti (o gestore del software). Ogni distribuzione usa il proprio gestore di pacchetti. I più popolari sono: APT (sistemi Debian), Yast (Suse) e Smart (Mandriva, Yoper, ecc). L'approcio utilizzato dai repository è veramente rivoluzionario. Il modo tradizionale di installare software (proprietario) prevede: una ricerca sul web, scaricare il programma, farci doppio-clic sopra, sperare che non contenga del malware, cliccare su "Avanti" un centinaio di volte, usarlo. Con Linux, un singolo comando è sufficiente a scaricare automaticamente il programma, installarlo e persino pre-configurarlo. Niente male?
La maggior parte delle distribuzioni fornisce una propria applicazione per eseguire l'installazione del software dai repository. Le caratteristiche fornite da questi gestori di pacchetti sono solitamente cercare, installare, rimuovere ed a volte configurare i pacchetti. Quasi tutti i gestori di pacchetti sono dotati di una riga di comando e di un'interfaccia grafica. La riga di comando è utile per l'installazione rapida del software quando sappiamo già che cosa vogliamo. Per esempio, il seguente comando, installerà il browser di Mozilla Firefox in Debian o in Ubuntu:

apt-get install firefox

Ed il seguente comando cercherà i pacchetti che contengono qualsiasi tipo di codec:

apt-cache search codecs

In Mandriva, c'è urpmi o smart, in Fedora Core c'è yum, in Arch Linux pacman, ma ognuno di loro ha caratteristiche molto simili. Il frontend grafico più popolare per l'installazione dei programmi è Synaptic, disponibile sia per pacchetti DEB che RPM.

Installare software dai repository è il metodo consigliato per la maggior parte delle distribuzioni, principalmente perché i gestori dei pacchetti si prendono cura delle dipendenze in modo automatico. Soltanto se il pacchetto che state cercando non è disponibile tra i repository aggiuntivi (che possono essere facilmente cercati ed aggiunti) può essere utilizzato un metodo di installazione alternativo. A tal proposito, per maggiori dettagli, leggete i prossimi paragrafi.

Installare dai binari

E' il metodo per installare software comune ai sistemi Microsoft. Alcune applicazioni, solitamente a causa di licenze proprietarie (tipo i driver NVIDIA ed ATI), non sono disponibili come pacchetti standard di Linux (anche se alcune distribuzioni creano dei pacchetti “simili" che includono i driver binari, ma non è questo il punto). Quando il produttore del software non rilascia il codice sorgente della propria applicazione, l'unico modo è di installarlo "alla cieca" (non sapete cosa c'è all'interno, vi limitate ad eseguire il programma ed a sperare che funzioni).

Si noti che gli installer binari possono danneggiare il vostro sistema se li eseguite come amministratore (il che è in genere richiesto per poterci fare qualcosa di utile), poiché nessuno conosce cosa ci sia all'interno, tranne le persone che gli hanno sviluppati. Usateli a vostro rischio e pericolo. Siete stati avvertiti.

L'installazione di programmi a partire dai file binari è semplicissima in quanto basta un doppio-clic sul file d'installazione. Per poter eseguire un'applicazione su un sistema UNIX è necessario avere i permessi di esecuzione. Bisogna quindi assegnare questo permesso al file scaricato: è possibile farlo sia da un file manager che da riga di comando. Ecco come fare:

chmod u+x the_file

Quando il file diventa eseguibile possiamo lanciarlo col comando:

./the_file

Si noti che è presente il prefisso ./ il quale è usato in UNIX per eseguire applicazioni situate nella cartella corrente. Se desiderate fare funzionare un'applicazione situata in un'altra cartella, dovrete scrivere ./percorso/della/cartella_contenente/il_file (con un punto all'inizio).

Compilazione ed installazione manuale

La compilazione manuale dei programmi è il modo tradizionale per installare software su Linux. Le applicazioni sotto licenza GPL sono disponibili con il loro codice sorgente che possiamo quindi manualmente compilare ed installare sul nostro sistema. Questo metodo di installazione del software è il preferito da alcune distribuzioni (come Gentoo) nonché dalla maggior parte dei sistemi BSD. Se scegliamo accuratamente i flag per la compilazione, possiamo far raggiungere maggior velocità ed efficienza alle nostre applicazioni. D'altra parte, la compilazione manuale, è lontana dall'essere semplice da usare poiché solitamente comporta la gestione manuale delle dipendenze (installare a loro volta i programmi richiesti dall'applicazione che desideriamo installare) e richiede tempo (la compilazione di KDE o di OpenOffice.org può durare persino alcuni giorni!).

Per compilare qualche cosa abbiamo bisogno di un compilatore. Possiamo controllare se ne abbiamo uno installato sul nostro sistema lanciando questo comando:

gcc --version

Se il compilatore GCC non è presente, dobbiamo installarlo (preferibilmente usando il gestore dei pacchetti). In alcune distribuzioni, tutte le applicazioni solitamente utili per compilare a partire dal sorgente, sono riunite in un meta-pacchetto. In Ubuntu il nome di questo pacchetto è build-essential.

Un metodo standard per installare programmi a partire dai codici sorgenti è presentato di seguito. Si noti che i comandi devono essere lanciati dalla cartella contenente il codice sorgente (non impacchettato) dell'applicazione che si vuole installare.

./configure
make
make install

Ora il software può essere installato sul nostro sistema. Se compaiono degli errori, dobbiamo leggere con attenzione i messaggi, e probabilmente installare dei pacchetti addizionali richiesti per compilare il programma voluto. La lista delle dipendenze solitamente si trova all'interno di un file testuale README o INSTALL che viene rilasciato assieme ai sorgenti.

Come già anticipato, ci sono delle distribuzioni tipo Gentoo che hanno fatto della compilazione dai codici sorgenti il loro metodo standard per installare nuovi programmi. Il sistema Portage fornisce un grande repository di pacchetti di codici sorgenti che permette una semplice installazione. E' praticamente molto simile ad un'installazione fatta tramite APT o urpmi. Il comando usato in Gentoo è emerge. Quindi, per esempio, dando il seguente comando:

emerge mozilla-firefox

si avvia automaticamente lo scaricamento dei codici sorgenti di Firefox, la compilazione e l'installazione sul nostro sistema. Anche tutte le dipendenze vengono scaricate e compilare, l'unico inconveniente è costituito dal tempo (alcune volte compilare può richiedere veramente molto tempo).

Compilare dai sorgenti comporta anche un importate vantaggio a cui, fino ad ora, non abbiamo accennato. Quando compiliate il vostro pacchetto, potete adattare il programma alle vostre esigenze. Potreste voler rimuovere alcune caratteristiche che ritenete inutili oppure persino aggiungerne di nuove (che non sono attivate di default o che non vengono utilizzate dai pacchetti standard). Quindi, a volte, rappresenta l'unica soluzione se desiderate qualche caratteristica speciale, solitamente sperimentale, che non è disponibile nei pacchetti di default della vostra distribuzione.

Cosa sono le dipendenze?

Allora, cosa sono queste dipendenze? In breve, una dipendenza significa che un pacchetto, per poter funzionare, necessita di un altro programma. Perché accade questo? La risposta ha radici profonde nella storia di Linux e del software libero. GNU/Linux è un sistema interamente costruito su moduli. Ci sono molti programmi sviluppati per uno specifico scopo che eseguono bene. Questi programmi sono collegati a vicenda e possono utilizzare le rispettive funzionalità tramite una programmazione API aperta. In tal modo molti programmi utilizzano lo stesso codice per compiere operazioni tipiche (tipo masterizzazione di cd), ma forniscono un'interfaccia diversa oppure, rendono disponibile qualche complessa funzionalità indipendente dalle altre applicazioni. Non deve essere quindi scritto alcun codice ripetitivo, risparmiando così tempo sia ai programmatori che agli utenti.

Esiste un'alternativa alla gestione delle dipendenze, chiamata static packaging. In breve, significa che una singola applicazione contiene tutte le dipendenze necessarie, direttamente all'interno del pacchetto. E' quindi semplice da installare (non c'è bisogno di installare dipendenze) ma richiede molto più spazio sul disco e, chiaramente, non è il miglior modo per gestire il software (può infatti capitare che una stessa applicazione venga installata sul nostro sistema 10 volte diverse, da diversi pacchetti software). E' per questo motivo che il dynamic packaging è generalmente preferito dagli sviluppatori di Linux, pur con tutti i suoi difetti (incluso quello definito “l'inferno delle dipendenze”). Quando viene utilizzato un buon gestore di pacchetti, l'inferno delle dipendenze non rappresenta un gran problema in quanto il sistema avrà cura di gestirle al posto nostro. L'unico sistema operativo popolare che utilizzi lo static packaging è PC-BSD, con il proprio formato di pacchetti PBI.

Il programma è installato. Ora come lo eseguo?

E' semplice! I programmi, dopo l'installazione, solitamente non creano dei collegamenti non richiesti sul desktop. Se li volete dovete crearveli voi stessi (il che, con Gnome e KDE, è semplicissimo). Se avete installato un programma tramite un pacchetto, in genere questo aggiunge un collegamento nel menù di sistema, sotto una categoria intuitiva. Se, per una qualche ragione, questo non dovesse accadere, potete sempre creare un menù od eseguire il programma direttamente dalla riga di comando.

Di default, gli eseguibili dei programmi installati si trovano in una delle due cartelle di sistema. Le applicazioni installate tramite un gestore di pacchetti si possono trovare in:

/usr/bin

Per le applicazioni compilate manualmente ed installate tramite make install guardate invece in:

/usr/local/bin

Per poter eseguire un'applicazione, dovete digitarne il nome nel terminale. Ovviamente potete raggiungere il medesimo risultato utilizzando i collegamenti sul desktop oppure il menù principale.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.