Imparare a compilare un sorgente (metodo generale)

Oggi per la sezione difficoltà alta imparerete a compilare i sorgenti di un software open-source…

Spaventati dal linguaggio che ho usato??😉 Cerchiamo di capirci qualcosa !!

Vediamo passo passo i seguenti termini:

CompilazioneIn informatica, un compilatore è un programma che traduce una serie di istruzioni scritte in un determinato linguaggio di programmazione (codice sorgente) in istruzioni di un altro linguaggio (codice oggetto). Questo processo di traduzione si chiama compilazione.

Se ancora non ci avete capito un acca, vi spiego in parole povere: Attraverso dei comandi bash (dal terminale) andremo a convertire il codice sorgente di un programma a codice oggetto ovvero un codice che ci permetterà di installare sul nostro PC il programma in questione.

Sorgenti Software: Il codice sorgente (spesso abbreviato sorgente) è un insieme di istruzioni appartenenti ad un determinato linguaggio di programmazione, utilizzato per realizzare un programma o un qualunque software per computer. Lo scopo del codice sorgente di un linguaggio di programmazione è quello di essere eseguito, cioè di far compiere al computer le azioni descritte nel codice sorgente. Questo viene fatto in modo diverso a seconda che il linguaggio sia interpretato o compilato.

Adesso che abbiamo capito questi termini la frase iniziale vi sarà più chiara!

Dopo aver capito il senso della frase allora ci viene spontaneo chiederci, perchè mai dovrei compilare da solo qualcosa che posso trovare in rete già fatto da altri? La risposta è semplice, ogni computer ovviamente ha le sue caratteristiche che possono essere affini o no a quelle di altri pc. Nella maggior parte dei casi non ci sono problemi di compatibilità tra la compilazione fatta su un tipo di PC e adottata su un altro. Ma può capitare che ci siano dei parametri che non funzionano sul nostro pc e allora dobbiamo armarci degli strumenti che il Big Linux ci fornisce.

Altro esempio può essere un programma che non è ancora stato “pacchettizzato” per la nostra versione di Linux e allora dobbiamo pensarci noi! (vedi articolo aMule)

Dopo questa introduzione passiamo subito al tutorial vero e proprio!

How to?

In questo tutorial vedremo come compilare un sorgente con i metodi standard. Nella prossima puntata vedremo invece come usare gli strumenti che Ubuntu ci fornisce. I comandi che useremo saranno tre:

  1. ./configure
  2. make
  3. sudo make install

Più avanti vedremo come usarli…

1. Scaricare il sorgente

Innanzi tutto abbiamo bisogno di scaricare il codice sorgente che ci servirà per compiere la compilazione. Per questo tutorial usiamo come esempio un gioco chiamato Frozen Bubble, alternativa per Linux a Puzzle Bubble. Il gioco volendo è già disponibile nei repository di Ubuntu, ma è molto indicato per i tutorial in quanto non ha complicazioni.

Andiamo dunque sulla sezione Download del gioco e scarichiamo il Codice sorgente (19 Mbye circa): http://www.frozen-bubble.org/data/frozen-bubble-2.2.0.tar.bz2

Salviamolo in una nuova cartella nella Home come ad esempio “Compilazione”.

Una volta scaricato il sorgente inizia la vera parte della compilazione

2. Lettura del file README e INSTALL

Questo è il passo numero 1 durante il processo di compilazione, perchè all’interno di questi due file (che possiamo trovare assieme oppure uno dei due) sono presenti le dipendenze di cui abbiamo bisogno per compilare con successo il sorgente.

Andiamo quindi a spacchettare l’archivio del sorgente.

Apriamo il terminale e spostiamoci sulla cartella con:

cd Compilazione

se avevamo dato un altro nome alla cartella mettiamo al posto di Compilazione il nome della cartella.

ora estraiamo il pacchetto con

tar xjvf frozen*.tar.bz2

e spostiamoci nella cartella appena creata

cd frozen*

apriamo allora con un programma di editor testi (di default gedit) i file Install e/o Readme (per farlo aprite da Risorse–>Cartella Home la cartella compilazione e poi quella relativa a Frozen Bubble).

Come notate nel file INSTALL all’inizio dice che perchè la compilazione abbia successo sono necessarie delle librerie in questo caso:

  • SDL_mixer >= 1.2.2 (cioè almeno la versione 1.2.2)
  • SDL perl >= 1.19.0
  • SDL_Pango >= 0.1.2 with FB API patch

Preso nota delle dipendenze apriamo il gestore dei pacchetti Synaptic (Sistema–>Amministrazione) e cerchiamo le librerie.

ATTENZIONE: SCARICATE LE LIBRERIE CHE CONTENGONO NEL NOME LA PAROLA “dev” SERVONO INFATTI QUELLE PER LA COMPILAZIONE, LA PAROLA “DEV” STA PER “DEVELOPMENT”

Schermata-Gestore di pacchetti

E se non trovo una dipendenza? Ci sono due strade

  1. Andare sul sito http://packages.ubuntu.com/ e in fondo alla pagina digitare la dipendenza non trovata e ci verrà restituito un report col pacchetto in cui è contenuta la dipendenza, noi lo copiamo nel campo di ricerca synaptic oppure da terminale sudo apt-get install nomedelladipendenza
  2. Cercarla in rete (come ho dovuto fare io con aMule) e compilarla da me, quindi prima la compilo con i 3 famosi comandi e poi procedo alla compilazione del programma che la richiede.

Ora che abbiamo tutte le dipendenze inizia la compilazione

3. Compilazione: ./configure ; make ; sudo make install

Riapriamo quel terminale che avevamo abbandonato, che era posizionato sulla cartella di Frozen Bubble.

Schermata-arka94@arka94-laptop: ~-Compilazione-frozen-bubble-2.2.0cominciamo conn la compilazione:

In questo caso specifico se diamo il comando ./configure ci verrà restituito il messaggio: bash: ./configure: Nessun file o directory, Questo perchè Frozen Bubble non ha bisogno del configure, ma quasi tutti gli altri programmi necessitano questo comando, nel caso dandolo riceveremo degli errori, leggiamoli bene, quasi sempre si tratta di una libreria/dipendenza non installata quindi procediamo all’installazione e poi ridiamo ./configure fino che la compilazione non ha successo.

Superato questo comando diamo sempre da terminale

make

Questo processo è uno dei più importanti perchè dopo questo passeremo all’installazione del programma quindi attenzione che tutto vada per il meglio!

Schermata-arka94@arka94-laptop: ~-Compilazione-frozen-bubble-2.2.0-1ora arriva l’ultimo comando, in genere se tutto è andato bene, non dovreste avere mai problemi, diamo allora sempre dal terminale:

sudo make install

Ricordo che sudo serve per prendere i privilegi di amministratore (dovrete infatti mettere la password) andate a modificare i file all’interno del file system (in questo caso creando una cartella chiamate frozen bubble, con dentro il gioco, creando ecc..)

Ecco fatto! Ora il vostro programma si troverà nella cartella

usr/local/share (solo per quanto riguarda questo caso, infatti basta leggere il testo generato dal make install per vedere dove è stato creato il programma!

4. Per la serie: «Credevate fosse finita…» Come creare il pacchetto d’installazione .deb

Ora che abbiamo dato il comando make install possiamo anche creare un pacchetto .deb che ci servirà nel caso la prossima volta non vogliate ricompilare tutto o vogliate passare il gioco ad un amico.

Per questo ci servirà il comando checkinstall che dobbiamo scaricare da synaptic o da terminale con

sudo apt-get install checkinstall

fatto ciò siamo pronti a creare il nostro pacchetto .deb

Apriamo il terminale e spostiamoci coi comandi che abbiamo visto prima sulla cartella Frozen Bubble

e diamo semplicemente

sudo checkinstall

Ora inizierà un processo nel quale dovrete inserire la descrizione del pacchetto che comparirà nel momento dell’installazione. Dopodichè date 3 volte INVIO.

Ecco che il pacchetto .deb prima verrà installato sul vostro pc e poi verrà creato nella cartella Frozen Bubble!

Ecco fatto! Finalmente abbiamo finito!

Vado a riposarmi che ho le mani distrutte! Ciao😀

Tag:, ,

2 responses to “Imparare a compilare un sorgente (metodo generale)”

  1. vaino says :

    Ciao Lippol ora che ho installato sidux devo imparare a compilare se un giorno hai tempo e voglia compiliamo aurorae per sidux a 32bit thanks

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: