[Guida] Installare un programma compilando il codice sorgente
Di recente, noi della redazione, ci siamo trovati a confrontarci con alcuni utenti del mondo Linux, e nel parlare di quelle che sono le tipiche difficoltà dei neofiti (ma anche di persone non proprio alle prime armi) è emerso il fatto che compilare ed installare un programma a partire dal codice sorgente risulta spesso eccessivamente complicato e porta chi si cimenta nell’impresa a desistere e a fare a meno del software desiderato.
Quella che vi proponiamo oggi è una semplice guida che speriamo possa aiutare gli utenti a superare questa difficoltà e ad utilizzare in modo meno impacciato e più consapevole il proprio sistema. Come al solito, prima di cominciare è bene fare le dovute considerazioni:
Numero 1: il sistema di riferimento utilizzato è ancora una volta Debian 8.3, ma i passaggi che vedremo dovrebbero essere replicabili senza problemi su qualunque altra distro.
Numero 2: per estrarre l’archivio compresso che utilizzeremo durante la guida utilizzo, per semplicità, i comandi integrati in KDE, ma che dovrebbero essere presenti in forma piuttosto simile anche in altri desktop environment o possono essere eseguiti da terminale. Quest’ultima opzione però non sarà trattata in questa guida, ma verrà discussa in modo dettagliato più avanti con un articolo interamente dedicato ad essa.
Numero 3: purtroppo i passaggi che andremo a vedere non sono generali in senso assoluto, non tutti i programmi si compilano a partire dal codice sorgente nello stesso identico modo, ma vedremo comunque il caso che si presenta (almeno nella mia personale esperienza) più di frequente e ne discuteremo brevemente un altro che si vede altrettanto spesso, così da coprire la maggior parte delle possibilità.
Numero 4: come al solito, l’autore di questa guida non si assume responsabilità per eventuali malfunzionamenti derivati da un utilizzo scorretto della stessa. Detto ciò, possiamo cominciare:
Passo 1: Procurarsi l’archivio contenente i sorgenti.
La prima cosa da fare, ovviamente, è procurarsi il codice da compilare. Di solito il codice sorgente dei programmi viene reso disponibile al download tramite archivi compressi che possono avere diverse estensioni, come ad esempio: .tar.bz2, .tar.gz, .tar.xz, .tar.lz, .tar.Z ed altre. Spesso nel gergo dell’ambiente Linux (ma anche informatico in generale) ci si riferisce a questi archivi col nome di tarball. Nell’esempio di oggi il programma che andremo ad installare è il noto editor audio open-source Audacity, di cui ci siamo procurati l’archivio con il codici sorgente scaricandolo dal sito ufficiale, salvandolo nella nostra home:
Passo 2: Estrarre l’archivio
La naturale continuazione del passo precedente è l’estrazione dell’archivio appena scaricato. Come abbiamo spiegato all’inizio, questa operazione potrebbe essere effettuata tramite un comando apposito da terminale (che in questo caso specifico sarebbe: tar xJf audacity-minsrc-2.1.2.tar.xz
), ma non approfondiamo l’argomento in quanto, come già anticipato, pubblicheremo in seguito una guida dettagliata sulla gestione degli archivi compressi e sul comando tar, quindi ci limitiamo ad estrarre il contenuto del nostro file utilizzando il comando apposito menu contestuale del nostro DE:
Una volta completata l’estrazione dovremmo notare una nuova cartella con lo stesso nome dell’archivio nella destinazione da noi scelta (che qui per semplicità abbiamo mantenuto la cartella home):
Passo 3: Verificare se ci sono istruzioni per la compilazione
Non ci resta altro da fare che entrare nella cartella che abbiamo appena estratto dall’archivio e controllarne i contenuti. Una volta all’interno è buona prassi controllare subito se è presente un file di testo che porta il nome di “README.txt” e, in caso affermativo, aprirlo ed andare alla ricerca delle istruzioni per la compilazione e l’installazione. In questo caso siamo stati fortunati ed il suddetto file era presente:
Una volta aperto, dopo un po’ di scrolling selvaggio abbiamo trovato le istruzioni cercate:
NOTA BENE: purtroppo il suddetto file non è sempre presente oppure non fornisce le istruzioni per compilare ed installare il programma e ciò porta spesso gli utenti meno testardi lasciar perdere. Ed è qui che vogliamo cercare di dare una svolta alle cose: se il file citato in precedenza non fosse presente, ci si possono presentare due situazioni diverse, vediamo insieme come gestirle:
Caso 1: Nella cartella è presente uno script bash chiamato “configure” ed in questo caso ci basta seguire la guida così com’è.
Caso 2: Lo script precedente non c’è, ma ne vediamo un altro chiamato “autogen.sh“. Tutto quello che è necessario fare consiste nel lanciarlo e verificare che dopo l’esecuzione di tale script sia presente il file “configure” del caso 1 e proseguire con i passi successivi.
Passo 4: Provare a compilare e risolvere le dipendenze
La prossima operazione richiede un minimo di preparazione. Compilare programmi dal codice sorgente richiede sempre, o quasi, che vengano risolte le dipendenze richieste da diversi pacchetti. Un buon modo per togliersene di torno diverse è quello di installare, tramite il proprio gestore, il pacchetto build-essential, il quale ci permette di avere una buona collezione di software che altrimenti ci verrebbero richiesti più avanti.
Per gli utenti Debian/Ubuntu il comando è il seguente:
$ sudo apt-get install build-essential
A questo punto tutto quello che dobbiamo fare è aprire il terminale nella nostra cartella di lavoro e lanciare il comando:
$ ./configure
Se tutte le dipendenze sono soddisfatte in pochi secondi lo script concluderà la sua esecuzione e potremo passare oltre, ma se così non fosse (come è successo a noi) troveremo un messaggio di errore o di segnalazione della mancanza di alcuni pacchetti necessari.
Sarà quindi nostra premura installarli per poter andare avanti. Questa è la fase che purtroppo non ha mai una procedura standard, infatti i pacchetti mancanti potrebbero essere installabili semplicemente tramite il gestore dei pacchetti oppure potrebbe essere necessario installarli a mano. In ogni caso è buona prassi effettuare una breve ricerca su google per capire precisamente cosa installare e tenere conto che lo script ci comunica sempre tutto quello che serve, e che se fosse necessario installare qualcosa compilandone il codice sorgente adesso avete una guida su come fare 😉 . Una volta soddisfatte tutte le dipendenze basterà lanciare nuovamente lo script “configure” e questa volta tutto dovrebbe funzionare a dovere.
Passo 5: Compilare
Il penultimo passo da affrontare è quello della compilazione vera e propria. Come abbiamo visto nei passi precedenti tutto quello che dobbiamo fare è lanciare il comando:
$ make
Se tutto va secondo i piani make compilerà tutto, operazione che potrebbe richiedere anche diversi minuti. In caso contrario basterà risolvere uno alla volta i vari errori googlando ed installando il software richiesto.
Passo 6: Installare
Una volta conclusa la procedura di compilazione l’ultima cosa che resta da fare è l’installazione. Possiamo effettuarla tramite questo comando:
$ sudo make install
Salvo imprevisti a questo punto il nostro programma dovrebbe essere installato e pronto all’uso. Se invece qualcosa durante l’esecuzione del comando non dovesse funzionare, possiamo cercare all’interno della cartella uno script col nome del programma e, se presente, possiamo utilizzarlo per lanciare il nostro software.
La nostra guida si conclude qui. Speriamo di esservi stati utili e di avervi fornito un metodo il più generale possibile per poter compilare ed installare i vostri programmi preferiti anche manualmente. Vi ricordiamo che questa guida non ha la pretesa di essere esaustiva in senso assoluto, ma dovrebbe comunque coprire una grossa fetta delle casistiche possibili. Se avete dubbi o domande da porci non esitate a lasciarci un commento!