Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "AmministrazioneSistema/InstallareProgrammi/DaSorgenti"
Differenze tra le versioni 51 e 63 (in 12 versioni)
Versione 51 del 04/03/2008 10.02.21
Dimensione: 5312
Commento: revisionata
Versione 63 del 05/01/2017 17.42.47
Dimensione: 8267
Autore: leuci-giulio
Commento: ripristino procedura estesa cmake
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
#format wiki #format wiki 
Linea 3: Linea 3:
[[BR]]
||<tablestyle="float:right; font-size: 0.9em; width:35%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice''' [[BR]] [[TableOfContents]]||
<<BR>>
<<Indice(depth=2)>>
<<Informazioni(forum=''http://forum.ubuntu-it.org/viewtopic.php?f=46&t=614576''; rilasci="16.04 14.04")>>
Linea 8: Linea 9:
I programmi ''open source'' possono sempre essere scaricati sotto forma di ''pacchetto sorgente'' (file che hanno spesso estensione `.tar.gz` o `.tar.bz2`), cioè un archivio contenente file di testo (scritti in un linguaggio di programmazione) ed eventuali altri file necessari al programma (per esempio immagini e suoni). Prima di poter usare i programmi così ottenuti, è necessario tradurre i ''file sorgenti'' (scritti in un linguaggio comprensibile dall'uomo) in file comprensibili ed eseguibili dal computer, cioè ''file binari''. Questa operazione è detta ''compilazione'', ed è accompagnata dall'installazione, cioè la copia dei file del programma nelle loro corrette posizioni all'interno del filesystem. Una peculiarità dei programmi ''open source'' è che ne viene sempre reso disponibile il [[https://it.wikipedia.org/wiki/Codice_sorgente|codice sorgente]], scaricabile sotto forma di [[AmministrazioneSistema/FormatiDiCompressione|archivio compresso]] con estensione `.tar.gz`, `.tar.bz2` o `.zip`. Tale archivio contiene file di testo scritti in un [[https://it.wikipedia.org/wiki/Linguaggio_di_programmazione|linguaggio di programmazione]], detti ''file sorgente'', e altri eventuali file necessari al programma, come immagini e suoni.

Per poter utilizzare un programma ottenuto in questa forma è necessario tradurre i ''file sorgente'' in ''file binari'', cioè file comprensibili ed eseguibili da un computer. Questa operazione è detta '''compilazione''' e si basa sulle istruzioni contenute nel '''makefile'''. Completata la compilazione è possibile eseguire l'effettiva '''installazione''' del programma, ovvero la copia dei file nella corretta posizione all'interno del [[AmministrazioneSistema/Filesystem|file system]].
Linea 12: Linea 15:
La compilazione richiede alcuni strumenti che non sono inclusi in Ubuntu, ma sono presenti nel [:Repository/Componenti:componente] '''main''' dei [:Repository:repository] ufficiali di Ubuntu. È sufficiente installare il pacchetto '''build-essential''', che fornisce tutti gli strumenti necessari: {{{
sudo apt-get install build-essential
 * [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://build-essential | build-essential]].
 * Per programmi basati su '''[[https://it.wikipedia.org/wiki/KDE|KDE]]''' o '''[[https://it.wikipedia.org/wiki/Qt_(toolkit)|Qt]]''', [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://cmake |cmake]].
 * [[AmministrazioneSistema/FormatiDiCompressione#decomprimere|Estrarre]] il pacchetto dei sorgenti nella propria '''Home'''.

 ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Grandi/info.png,,center)>> ||<style="padding:0.5em; border:none;">Per mantenere ordinata la propria '''Home''' è consigliabile creare una sottocartella specifica per le compilazioni. ||

= Generazione del makefile =

Il '''makefile''' è un file il cui contenuto dipende dalla configurazione del sistema in cui si intende installare il programma. Proprio per questo motivo, tale file non può essere distribuito insieme ai sorgenti ma va generato direttamente sul sistema di destinazione.

Le istruzioni che seguono descrivono i due metodi più comuni per generare il '''makefile''', ovvero mediante lo '''script di configurazione''' o del programma '''Cmake'''. Tuttavia le istruzioni specifiche per ogni programma sono contenute in un file di testo, solitamente chiamato `INSTALL` o `README`, distribuito insieme ai sorgenti.

== Script di configurazione ==

 0. [[AmministrazioneSistema/ComandiBase#cd|Spostarsi tramite riga di comando]] nella cartella dove sono stati estratti i sorgerti.
 0. Avviare lo [[Programmazione/LinguaggioBash|script]] di configurazione digitando nel [[AmministrazioneSistema/RigaDiComando|terminale]] il seguente comando:{{{
./configure
Linea 15: Linea 33:
 ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Grandi/info.png,,center)>> ||<style="padding:0.5em; border:none;">Per ottenere un elenco delle opzioni messe a disposizione dallo script digitare l'opzione ''-h''. ||
||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Se la generazione del '''makefile''' dovesse interrompersi a causa di una [[AmministrazioneSistema/Pacchetti#Dipendenze|dipendenza]] non presente nel sistema, consultare il paragrafo [[#Installazione_dipendenze|Installazione dipendenze]]. Per una più semplice gestione delle dipendenze è possibile avvalersi del programma '''[[Programmazione/Checkinstall|auto-apt]]'''''||
Linea 16: Linea 36:
= Compilazione e installazione = == Cmake ==
Linea 18: Linea 38:
== Scompattare il pacchetto dei sorgenti == Per programmi basati su '''[[https://it.wikipedia.org/wiki/KDE|KDE]]''' o '''[[https://it.wikipedia.org/wiki/Qt_(toolkit)|Qt]]''' la generazione del '''makefile''' è generalmente affidata al programma '''Cmake''', come spiegato di seguito:
 0. [[AmministrazioneSistema/ComandiBase#cd|Spostarsi tramite riga di comando]] nella cartella dove sono stati estratti i sorgerti.
 0. Creare la cartella `build` digitando nel [[AmministrazioneSistema/RigaDiComando|terminale]] il seguente comando:{{{
mkdir build
}}}
 0. Spostarsi nella cartella appena creata digitando nel [[AmministrazioneSistema/RigaDiComando|terminale]] il seguente comando:{{{
cd build
}}}
 0. Compilare i sorgenti digitando nel [[AmministrazioneSistema/RigaDiComando|terminale]] il seguente comando:{{{
cmake ..
}}}
||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Se la generazione del '''makefile''' dovesse interrompersi a causa di una [[AmministrazioneSistema/Pacchetti#Dipendenze|dipendenza]] non presente nel sistema, consultare il paragrafo [[#Installazione_dipendenze|Installazione dipendenze]].''||
##||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Grandi/info.png,,center)>> ||<style="padding:0.5em; border:none;">Il programma '''Cmake''' è utilizzabile anche tramite interfaccia grafica. Per maggiori informazioni consultare la pagina [[wilecoyote/provawccmakegui|CMake-Gui]]||
Linea 20: Linea 52:
La prima cosa da fare è scompattare il pacchetto sorgente, in modo da ottenere una cartella che contiene l' ''albero dei sorgenti''. Dopo aver aperto una finestra di terminale, spostarsi nella cartella contenente il pacchetto sorgente e lanciare il comando adatto al [:FormatiDiCompressione:formato di compressione] del pacchetto: == Installazione dipendenze ==
Linea 22: Linea 54:
 * pacchetto `.tar.bz2`: {{{
   tar -jxvf nomepacchetto.tar.bz2
}}}
Se la creazione del '''makefile''' si interrompe a causa di una dipendenza mancante, verrà generato un messaggio d'errore che ne riporta il nome. Sarà dunque necessario installarla manualmente come spiegato di seguito:
 0. Avviare il [[AmministrazioneSistema/InstallareProgrammi/GestorePacchetti|gestore pacchetti]]
 0. [[AmministrazioneSistema/InstallareProgrammi/GestorePacchetti#Cercare_un_pacchetto|Cercare]] il nome del pacchetto, solitamente una libreria con suffisso `-dev`.
 0. [[AmministrazioneSistema/InstallareProgrammi/GestorePacchetti#Installare_un_pacchetto|Installare]] il pacchetto.
 ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Se sono presenti più versioni dello stesso pacchetto, installare quella del [[Repository |repository]] main.'' ||
 0. Riavviare la generazione del '''makefile''' mediante lo [[#Script_di_configurazione|script di configurazione]] o il programma [[#Cmake|Cmake]].
Sarà necessario ripetere questa procedura ogni volta che la generazione del '''makefile''' viene interrotta da una dipendenza mancante.
Linea 26: Linea 62:
 * pacchetto `.tar.gz` o `.tgz`: {{{
   tar -zxvf nomepacchetto.tar.gz
}}}
= Compilazione =
Linea 30: Linea 64:
A questo punto si potrà entrare nella cartella appena scompattata e leggere i file, solitamente chiamati `README` o `INSTALL`, contenenti le istruzionni necessarie alla configurazione e alla installazione.

== Configurazione ==

Spostarsi nella cartella in cui si trova il programma appena scompattato con un comando simile al seguente:
{{{
cd nomeprogramma
}}}

Il sistema attualmente più usato per compilare e installare si basa sul programma '''make''', il quale si aspetta di trovare nella cartella radice dell'albero (e opzionalmente nelle sottocartelle) le istruzioni sulla procedura di compilazione. Queste istruzioni variano in base alla configurazione scelta e ad altri parametri come la disponibilità di librerie opzionali nel sistema. Il metodo attualmente più usato per ottenere queste informazioni fa ricorso ad uno [:Programmazione/LinguaggioBash:script bash] chiamato '''configure''' presente nella cartella radice dell'albero dei sorgenti. Le varie opzioni disponibili in fase di configurazione sono descritte nel file `README` (o `INSTALL`) e vanno passate, sotto forma di opzioni, allo script sopra citato.

Il primo comando da digitare è quindi '''configure''' seguito dalle eventuali opzioni, come nel seguente esempio:
{{{
./configure --prefix=/usr
}}}

L'opzione passata in questo caso serve a richiedere che il programma venga installato nella cartella `/usr` invece che nella cartella `/usr/local`, che rappresenta solitamente l'impostazione predefinita.

Se nel sistema non è presente una libreria necessaria al programma, lo script '''configure''' si bloccherà restituendo un errore, dal quale si potrà risalire al nome della libreria mancante e installarla, per poi rieseguire lo script.

== Compilazione e installazione ==

Una volta configurate le istruzioni da passare al comando '''make''', si può procedere con la compilazione vera e propria. Aprire una finestra di terminale e digitare il seguente comando:
{{{
Dgitare nel [[AmministrazioneSistema/RigaDiComando|terminale]] il seguente comando:{{{
Linea 57: Linea 68:
A questo punto il programma è stato compilato e non resta che installarlo nel sistema con il segunete comando:
{{{
= Installazione =

 0. Digitare nel [[AmministrazioneSistema/RigaDiComando|terminale]] il seguente comando:{{{
Linea 62: Linea 74:
Ora che i file compilati sono stati ''copiati'' nelle cartelle che gli competono, è possibile ''pulire'' la cartella dei sorgenti per liberare un po' di spazio su disco:
{{{
 0. Una volta installato il programma, è possibile rimuovere i file compilati dalla cartella dei sorgenti digitando nel [[AmministrazioneSistema/RigaDiComando|terminale]] il seguente comando:{{{
Linea 67: Linea 78:
Solitamente è utile conservare l'albero dei sorgenti con la configurazione fatta poc'anzi, in quanto l'unico modo per disinstallare con sicurezza tutti i file del programma (eccetto le configurazioni personali nelle cartelle '''Home''' degli utenti) è entrare nella cartella radice dell'albero e digitare il seguente comando:
{{{
||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Non eliminare la cartella dei sorgenti né il suo contenuto, in quanto necessari per poter disinstallare il programma come spiegato nel paragrafo [[#Disinstallazione|Disinstallazione]]. In alternativa è possibile eseguire l'installazione servendosi di [[Programmazione/Checkinstall|CheckInstall]], il quale permette una differente e più semplice disinstallazione.''||

= Disinstallazione =

 * Digitare nel [[AmministrazioneSistema/RigaDiComando|terminale]] il seguente comando:{{{
Linea 72: Linea 86:
||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Questo ultimo comando funziona solo se il file'' `Makefile` ''contenuto nei sorgenti mette a disposizione la relativa opzione'' «uninstall». ||

Per un uso personale, al posto dei comandi '''make''' e '''sudo make install''' è consigliato utilizzare [:Programmazione/Checkinstall:Checkinstall].
||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Questo metodo di disinstallazione è utilizzabile solo se il '''Makefile''' mette a disposizione la relativa opzione '''uninstall'''.'' ||
Linea 78: Linea 90:
 * [:AmministrazioneSistema/ComandiBase:Comandi di base per il terminale]
 * [:Programmazione/Checkinstall:Guida all'uso di checkinstall per creare un pacchetto .deb a partire dai sorgenti]
 * [[AmministrazioneSistema/ComandiBase|Comandi di base per il terminale]]
 * [[Programmazione/Checkinstall|Guida all'uso di CheckInstall per creare un pacchetto .deb a partire dai sorgenti]]


Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Una peculiarità dei programmi open source è che ne viene sempre reso disponibile il codice sorgente, scaricabile sotto forma di archivio compresso con estensione .tar.gz, .tar.bz2 o .zip. Tale archivio contiene file di testo scritti in un linguaggio di programmazione, detti file sorgente, e altri eventuali file necessari al programma, come immagini e suoni.

Per poter utilizzare un programma ottenuto in questa forma è necessario tradurre i file sorgente in file binari, cioè file comprensibili ed eseguibili da un computer. Questa operazione è detta compilazione e si basa sulle istruzioni contenute nel makefile. Completata la compilazione è possibile eseguire l'effettiva installazione del programma, ovvero la copia dei file nella corretta posizione all'interno del file system.

Preparativi

  • Installare il pacchetto build-essential.

  • Per programmi basati su KDE o Qt, installare il pacchetto cmake.

  • Estrarre il pacchetto dei sorgenti nella propria Home.

    Per mantenere ordinata la propria Home è consigliabile creare una sottocartella specifica per le compilazioni.

Generazione del makefile

Il makefile è un file il cui contenuto dipende dalla configurazione del sistema in cui si intende installare il programma. Proprio per questo motivo, tale file non può essere distribuito insieme ai sorgenti ma va generato direttamente sul sistema di destinazione.

Le istruzioni che seguono descrivono i due metodi più comuni per generare il makefile, ovvero mediante lo script di configurazione o del programma Cmake. Tuttavia le istruzioni specifiche per ogni programma sono contenute in un file di testo, solitamente chiamato INSTALL o README, distribuito insieme ai sorgenti.

Script di configurazione

  1. Spostarsi tramite riga di comando nella cartella dove sono stati estratti i sorgerti.

  2. Avviare lo script di configurazione digitando nel terminale il seguente comando:

    ./configure

    Per ottenere un elenco delle opzioni messe a disposizione dallo script digitare l'opzione -h.

Se la generazione del makefile dovesse interrompersi a causa di una dipendenza non presente nel sistema, consultare il paragrafo Installazione dipendenze. Per una più semplice gestione delle dipendenze è possibile avvalersi del programma auto-apt

Cmake

Per programmi basati su KDE o Qt la generazione del makefile è generalmente affidata al programma Cmake, come spiegato di seguito:

  1. Spostarsi tramite riga di comando nella cartella dove sono stati estratti i sorgerti.

  2. Creare la cartella build digitando nel terminale il seguente comando:

    mkdir build
  3. Spostarsi nella cartella appena creata digitando nel terminale il seguente comando:

    cd build
  4. Compilare i sorgenti digitando nel terminale il seguente comando:

    cmake ..

Se la generazione del makefile dovesse interrompersi a causa di una dipendenza non presente nel sistema, consultare il paragrafo Installazione dipendenze.

Installazione dipendenze

Se la creazione del makefile si interrompe a causa di una dipendenza mancante, verrà generato un messaggio d'errore che ne riporta il nome. Sarà dunque necessario installarla manualmente come spiegato di seguito:

  1. Avviare il gestore pacchetti

  2. Cercare il nome del pacchetto, solitamente una libreria con suffisso -dev.

  3. Installare il pacchetto.

    Se sono presenti più versioni dello stesso pacchetto, installare quella del repository main.

  4. Riavviare la generazione del makefile mediante lo script di configurazione o il programma Cmake.

Sarà necessario ripetere questa procedura ogni volta che la generazione del makefile viene interrotta da una dipendenza mancante.

Compilazione

Dgitare nel terminale il seguente comando:

make

Installazione

  1. Digitare nel terminale il seguente comando:

    sudo make install
  2. Una volta installato il programma, è possibile rimuovere i file compilati dalla cartella dei sorgenti digitando nel terminale il seguente comando:

    make clean

Non eliminare la cartella dei sorgenti né il suo contenuto, in quanto necessari per poter disinstallare il programma come spiegato nel paragrafo Disinstallazione. In alternativa è possibile eseguire l'installazione servendosi di CheckInstall, il quale permette una differente e più semplice disinstallazione.

Disinstallazione

  • Digitare nel terminale il seguente comando:

    sudo make uninstall

Questo metodo di disinstallazione è utilizzabile solo se il Makefile mette a disposizione la relativa opzione uninstall.

Ulteriori risorse


CategoryAmministrazione CategoryProgrammazione