Di tanto in tanto, potresti voler o aver bisogno di compilare un software/programma dal codice sorgente. Ciò comporta la compilazione di codice C o C++ in qualcosa che possiamo eseguire in Linux. A seconda del software che desideri compilare, spesso non è necessario farlo. Questo perché la tua distribuzione avrà probabilmente la forma binaria del programma già nei repository del software.
In effetti, dovresti scegliere i pacchetti binari rispetto alla compilazione dal sorgente. Uno dei motivi è che potrebbe potenzialmente introdurre problemi per il tuo sistema. Tuttavia, se mai dovesse arrivare il momento in cui è necessario compilare dal sorgente, questa guida ti fornirà alcuni suggerimenti di base.
Un tipico esempio
Prendiamo un programma scritto in C o C++. Il download del codice sorgente spesso implica il download e la decompressione di un pacchetto (spesso un tarball) o la clonazione di un repository git. Il tipico metodo di funzionamento è l'esecuzione di questi tre comandi:$
./configure $ make $ sudo make install
Il primo comando esegue lo script configure che analizza le librerie installate nel sistema. Se una libreria richiesta non è installata, la segnalerà e sarà necessario installarla. Non solo avrai bisogno della libreria installata, ma anche dei file di sviluppo devono essere presenti. I file del codice sorgente utilizzano la funzionalità che si trova in queste librerie.
Dopo aver eseguito il comando configure, dovresti avere un Makefile presente. Eseguendo "make", leggerà il Makefile nella directory corrente e inizierà a eseguire il compilatore (gcc per C o g++ per C++) per compilare il software.
Il terzo comando non è strettamente essenziale ma è consigliato per l'accesso a livello di sistema, ovvero eseguire l'eseguibile da qualsiasi punto del terminale. Questo comando dice a "make" di eseguire le istruzioni per l'installazione del programma sul sistema.
I file INSTALL o README
Potrebbero esserci istruzioni aggiuntive che devono essere completate prima che la compilazione possa iniziare. La lettura di questo file (di solito INSTALL) dovrebbe anche rivelare quali librerie di sviluppo potrebbero dover essere installate per prime. Tali pacchetti conterranno il suffisso “-dev” per indicare che questi sono gli header di sviluppo e devono essere installati. Lo script di configurazione potrebbe anche richiedere parametri aggiuntivi. README conterrà qualsiasi altra informazione.
Potresti anche scoprire che nessuno dei tre comandi viene eseguito durante l'intero processo. Al loro posto potrebbero essere utilizzate anche variazioni di make come qmake (per i progetti Qt) o cmake.
Installa un programma GitHub
Iniziamo installando un editor di testo chiamato wxMEdit, che si trova su GitHub. Qui mostro come installare un programma compilando dal sorgente. Questo è un esempio quasi tipico dello scopo di questa guida. Se visiti il repository GitHub, vedrai che il file readme contiene dettagli sull'applicazione. Non ci sono istruzioni di compilazione, quindi si applica la sequenza standard, con una differenza: autogen.sh.
Per prima cosa, cambiamo la posizione in cui desideriamo archiviare il repository nel terminale e clonarlo:
$ cd wherever $ git clone git://github.com/wxMEdit/wxMEdit.git
Autogen.sh
Se trovi questo file nel codice sorgente, dovresti eseguirlo prima di "./configure" poiché ciò eseguirà attività che ti permetteranno di compilare correttamente il software. Se ciò ha esito positivo, puoi eseguire "./configure", "make" e quindi "sudo make install" e qualsiasi altra cosa sia necessaria per eseguire (in questo caso, nient'altro).
$ ./autogen.sh
$ ./configure
$ make
Non dovresti vedere errori nell'output make.
$ sudo make install
Risoluzione dei problemi
Se lo fai regolarmente, potresti riscontrare alcuni problemi durante la compilazione dal sorgente.
Biblioteche mancanti
Ricorda, non è sufficiente installare le librerie binarie; anche i file sorgente o le intestazioni di sviluppo devono essere installati. Lo script di configurazione, insieme alla documentazione, di solito ti avviserà di eventuali librerie (intestazioni di sviluppo) che devi installare per una corretta compilazione. Assicurati che siano installati sul tuo sistema.
Sono installati e si verificano altri errori
Conclusione
Compilazione di software può essere abbastanza semplice o abbastanza doloroso. Fortunatamente, molte distribuzioni Linux forniscono pacchetti binari pronti per l'installazione, quindi la compilazione dal sorgente di solito non è necessaria. È meglio attenersi ai pacchetti binari forniti dai repository software forniti dalla tua distribuzione, se disponibili.