5147
Commento:
|
← Versione 73 del 07/12/2022 17.29.51 ⇥
10999
Revisione
|
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]] [[Indice(depth=1)]] |
<<BR>> <<Indice(depth=2)>> <<Informazioni(forum=''http://forum.ubuntu-it.org/viewtopic.php?f=46&t=614576''; rilasci="22.04 20.04 18.04 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'' è il fatto che 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. |
Linea 10: | Linea 11: |
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]]. <<Anchor(preparativi)>> |
|
Linea 12: | Linea 16: |
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 [apt://build-essential], che fornisce tutti gli strumenti necessari: | 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://build-essential | build-essential]].<<BR>>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]]. 0. [[AmministrazioneSistema/FormatiDiCompressione#decomprimere|Estrarre]] il pacchetto dei sorgenti nella propria '''Home'''. 0. Se si desidera utilizzare il metodo che scarica e installa automaticamente le dipendenze di configurazione, occorre installare il pacchetto [[apt://auto-apt|auto-apt]] (opzionale).<<BR>>Dopo l'installazione è necessario eseguire la configurazione. A tale scopo digitare nel [[AmministrazioneSistema/Terminale|terminale]] i seguenti comandi:{{{ sudo auto-apt update sudo auto-apt updatedb sudo auto-apt update-local }}} L'esecuzione richiederà un po' di tempo per completarsi. |
Linea 14: | Linea 25: |
= Compilazione e installazione = == Scompattare il pacchetto dei sorgenti == 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 [:AmministrazioneSistema/FormatiDiCompressione:formato di compressione] del pacchetto: * pacchetto `.tar.bz2`: {{{ tar -jxvf nomepacchetto.tar.bz2 |
{{{#!wiki tip Per mantenere ordinata la propria '''Home''' è consigliabile creare una sottocartella specifica per le compilazioni. |
Linea 24: | Linea 29: |
* pacchetto `.tar.gz` o `.tgz`: {{{ tar -zxvf nomepacchetto.tar.gz |
= 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. Di seguito sono descritti, in linea generale, i due metodi più comuni per generare il '''makefile''', ovvero mediante lo '''scritp di configurazione''' o del programma '''Cmake'''. Attenersi alle istruzioni specifiche per ogni programma, di solito contenute in file di testo allegati e/o distribuiti insieme ai sorgenti, denominati `INSTALL`, `README`, `readme.md` o altri nomi simili. == Script di configurazione == 0. Aprire il [[AmministrazioneSistema/Terminale|terminale]] e [[AmministrazioneSistema/ComandiBase#cd|spostarsi]] nella cartella in cui sono stati estratti i sorgenti digitando il seguente comando:{{{ cd ~/nomecartella }}} sostituendo «`nomecartella`» con il nome della cartella in cui sono stati estratti i sorgenti. Eventuali sottocartelle devono essere separate dal carattere '''/'''. 0. Dare i [[AmministrazioneSistema/PermessiFile#Assegnare_i_permessi_di_esecuzione|permessi di esecuzione]] allo script di configurazione digitando il seguente comando:{{{ chmod +x configure }}} 0. Avviare lo [[Programmazione/LinguaggioBash|script]] di configurazione digitando il seguente comando:{{{ ./configure |
Linea 28: | Linea 48: |
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. | {{{#!wiki tip Spesso per migliorare la compressione [[AmministrazioneSistema/FormatiDiCompressione|dell'archivio compresso]] contenente il [[https://it.wikipedia.org/wiki/Codice_sorgente|codice sorgente]], lo [[Programmazione/LinguaggioBash|script]] di configurazione `configure` e il file `Makefile` vanno creati eseguendo prima lo script `autogen.sh` con il comando:`./autogen.sh`}}} |
Linea 30: | Linea 51: |
== Configurazione == Spostarsi nella cartella in cui si trova il programma appena scompattato con un comando simile al seguente: {{{ cd nomeprogramma |
{{{#!wiki tip Quasi sempre lo script di configurazione mette a disposizione l'opzione `--prefix=path` che permette di scegliere in quale directory allocare il programma che si va compilando. Nell'uso più frequente di questa opzione il comando diventa:`./configure --prefix=/usr`. |
Linea 37: | Linea 55: |
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 |
{{{#!wiki tip Per ottenere un elenco delle ulteriori opzioni messe a disposizione dallo script digitare l'opzione `-h` oppure consultare i file `INSTALL` o `README` forniti con il sorgente. |
Linea 44: | Linea 59: |
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. | {{{#!wiki note 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]]. }}} |
Linea 46: | Linea 63: |
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. | == Script di configurazione con auto installazione dipendenze == 0. Assicurarsi di aver installato il pacchetto opzionale ''auto-apt'' come indicato in questo [[#preparativi|paragrafo]]. 0. Aprire il [[AmministrazioneSistema/Terminale|terminale]] e spostarsi nella cartella in cui sono stati estratti i sorgenti digitando il seguente comando:{{{ cd ~/nomecartella }}} sostituendo «`nomecartella`» con il nome della cartella in cui sono stati estratti i sorgenti. Eventuali sottocartelle devono essere separate dal carattere '''/'''. 0. Avviare lo [[Programmazione/LinguaggioBash|script]] di configurazione digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ sudo auto-apt run ./configure }}} |
Linea 48: | Linea 74: |
== Compilazione e installazione == | {{{#!wiki tip Quasi sempre lo script di configurazione mette a disposizione l'opzione `--prefix=path` che permette di scegliere in quale directory allocare il programma che si va compilando. Nell'uso più frequente di questa opzione il comando diventa: `sudo auto-apt run ./configure --prefix=/usr`}}} |
Linea 50: | Linea 77: |
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: {{{ |
{{{#!wiki tip Per ottenere un elenco delle ulteriori opzioni messe a disposizione dallo script digitare l'opzione `-h` oppure consultare i file `INSTALL` o `README` forniti con il sorgente.}}} <<Anchor(cmake)>> == Cmake == 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'''. 0. Aprire il [[AmministrazioneSistema/Terminale|terminale]] e spostarsi nella cartella in cui sono stati estratti i sorgenti digitando il seguente comando:{{{ cd ~/nomecartella }}} sostituendo «`nomecartella`» con il nome della cartella in cui sono stati estratti i sorgenti. Eventuali sottocartelle devono essere separate dal carattere '''/'''. 0. Creare la cartella `build` digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ mkdir build }}} 0. Spostarsi nella cartella appena creata digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ cd build }}} 0. Compilare i sorgenti digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ cmake .. }}} {{{#!wiki note Se la generazione del '''makefile''' dovesse interrompersi a causa di una [[AmministrazioneSistema/Pacchetti#Dipendenze|dipendenza]] non presente nel sistema, consultare questo [[#Installazione_dipendenze|paragrafo]]. }}} {{{#!wiki tip Il programma '''Cmake''' è utilizzabile anche tramite interfaccia grafica. Per maggiori informazioni consultare la pagina [[Programmazione/CMakeGui|CMakeGui]]. }}} == Installazione dipendenze == Se la creazione del '''makefile''' si interrompe a causa di una dipendenza mancante, verrà generato un messaggio di errore che riporta le dipendenze mancanti. Sarà dunque necessario installarle manualmente, differenziando tra il caso in cui il nome del pacchetto non è individuabile e si dispone solo del nome del file e il caso in cui il nome del pacchetto è individuabile. === Con il nome del file === 0. Installare il pacchetto [[apt://apt-file|apt-file]]. 0. Aprire il [[AmministrazioneSistema/Terminale|terminale]]. 0. Creare il database con il comando:{{{ apt-file update }}} Il comando può richiedere del tempo per terminare. 0. Cercare adesso il pacchetto ignoto con il comando:{{{ apt-file search <nomefile> }}} Il pacchetto richiesto è quello che fornisce il file con il nome esatto. Per installare il suddetto pacchetto seguire la procedura successiva. === Con nome del pacchetto === 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. {{{#!wiki note Se sono presenti più versioni dello stesso pacchetto, installare quella del [[Repository |repository]] main.<<BR>> Nel caso il file richiesto sia fornito da due o più pacchetti selezionare quello con «-dev» nel nome. }}} 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. = Compilazione = Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ |
Linea 55: | Linea 143: |
A questo punto il programma è stato compilato e non resta che installarlo nel sistema con il segunete comando: {{{ |
= Installazione = 0. Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ |
Linea 60: | Linea 149: |
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/Terminale|terminale]] il seguente comando:{{{ |
Linea 65: | Linea 153: |
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: {{{ |
{{{#!wiki note 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 = {{{#!wiki note Questo metodo di disinstallazione è utilizzabile solo se il '''Makefile''' mette a disposizione la relativa opzione '''uninstall'''. }}} Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ |
Linea 70: | Linea 166: |
||<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]. |
|
Linea 76: | Linea 169: |
* [: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]] |
Guida verificata con Ubuntu: 20.04 22.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Una peculiarità dei programmi open source è il fatto che 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.
Se si desidera utilizzare il metodo che scarica e installa automaticamente le dipendenze di configurazione, occorre installare il pacchetto auto-apt (opzionale).
Dopo l'installazione è necessario eseguire la configurazione. A tale scopo digitare nel terminale i seguenti comandi:sudo auto-apt update sudo auto-apt updatedb sudo auto-apt update-local
L'esecuzione richiederà un po' di tempo per completarsi.
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.
Di seguito sono descritti, in linea generale, i due metodi più comuni per generare il makefile, ovvero mediante lo scritp di configurazione o del programma Cmake. Attenersi alle istruzioni specifiche per ogni programma, di solito contenute in file di testo allegati e/o distribuiti insieme ai sorgenti, denominati INSTALL, README, readme.md o altri nomi simili.
Script di configurazione
Aprire il terminale e spostarsi nella cartella in cui sono stati estratti i sorgenti digitando il seguente comando:
cd ~/nomecartella
sostituendo «nomecartella» con il nome della cartella in cui sono stati estratti i sorgenti. Eventuali sottocartelle devono essere separate dal carattere /.
Dare i permessi di esecuzione allo script di configurazione digitando il seguente comando:
chmod +x configure
Avviare lo script di configurazione digitando il seguente comando:
./configure
Spesso per migliorare la compressione dell'archivio compresso contenente il codice sorgente, lo script di configurazione configure e il file Makefile vanno creati eseguendo prima lo script autogen.sh con il comando:./autogen.sh
Quasi sempre lo script di configurazione mette a disposizione l'opzione --prefix=path che permette di scegliere in quale directory allocare il programma che si va compilando. Nell'uso più frequente di questa opzione il comando diventa:./configure --prefix=/usr.
Per ottenere un elenco delle ulteriori opzioni messe a disposizione dallo script digitare l'opzione -h oppure consultare i file INSTALL o README forniti con il sorgente.
Se la generazione del makefile dovesse interrompersi a causa di una dipendenza non presente nel sistema, consultare il paragrafo Installazione dipendenze.
Script di configurazione con auto installazione dipendenze
Assicurarsi di aver installato il pacchetto opzionale auto-apt come indicato in questo paragrafo.
Aprire il terminale e spostarsi nella cartella in cui sono stati estratti i sorgenti digitando il seguente comando:
cd ~/nomecartella
sostituendo «nomecartella» con il nome della cartella in cui sono stati estratti i sorgenti. Eventuali sottocartelle devono essere separate dal carattere /.
Avviare lo script di configurazione digitando nel terminale il seguente comando:
sudo auto-apt run ./configure
Quasi sempre lo script di configurazione mette a disposizione l'opzione --prefix=path che permette di scegliere in quale directory allocare il programma che si va compilando. Nell'uso più frequente di questa opzione il comando diventa: sudo auto-apt run ./configure --prefix=/usr
Per ottenere un elenco delle ulteriori opzioni messe a disposizione dallo script digitare l'opzione -h oppure consultare i file INSTALL o README forniti con il sorgente.
Cmake
Per programmi basati su KDE o Qt la generazione del makefile è generalmente affidata al programma Cmake.
Aprire il terminale e spostarsi nella cartella in cui sono stati estratti i sorgenti digitando il seguente comando:
cd ~/nomecartella
sostituendo «nomecartella» con il nome della cartella in cui sono stati estratti i sorgenti. Eventuali sottocartelle devono essere separate dal carattere /.
Creare la cartella build digitando nel terminale il seguente comando:
mkdir build
Spostarsi nella cartella appena creata digitando nel terminale il seguente comando:
cd build
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 questo paragrafo.
Il programma Cmake è utilizzabile anche tramite interfaccia grafica. Per maggiori informazioni consultare la pagina CMakeGui.
Installazione dipendenze
Se la creazione del makefile si interrompe a causa di una dipendenza mancante, verrà generato un messaggio di errore che riporta le dipendenze mancanti. Sarà dunque necessario installarle manualmente, differenziando tra il caso in cui il nome del pacchetto non è individuabile e si dispone solo del nome del file e il caso in cui il nome del pacchetto è individuabile.
Con il nome del file
Installare il pacchetto apt-file.
Aprire il terminale.
Creare il database con il comando:
apt-file update
Il comando può richiedere del tempo per terminare.Cercare adesso il pacchetto ignoto con il comando:
apt-file search <nomefile>
Il pacchetto richiesto è quello che fornisce il file con il nome esatto. Per installare il suddetto pacchetto seguire la procedura successiva.
Con nome del pacchetto
Avviare il gestore pacchetti.
Cercare il nome del pacchetto (solitamente una libreria con suffisso -dev).
Installare il pacchetto.
Se sono presenti più versioni dello stesso pacchetto, installare quella del repository main.
Nel caso il file richiesto sia fornito da due o più pacchetti selezionare quello con «-dev» nel nome.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
Digitare nel terminale il seguente comando:
make
Installazione
Digitare nel terminale il seguente comando:
sudo make install
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
Questo metodo di disinstallazione è utilizzabile solo se il Makefile mette a disposizione la relativa opzione uninstall.
Digitare nel terminale il seguente comando:
sudo make uninstall