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 47 e 77 (in 30 versioni)
Versione 47 del 06/12/2007 18.08.16
Dimensione: 4888
Commento:
Versione 77 del 30/12/2024 17.15.57
Dimensione: 9786
Autore: jeremie2
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
## page was renamed from InstallareProgrammi/DaSorgenti
## page was renamed from InstallareProgrammiDaSorgenti
#format wiki
#format wiki
Linea 5: 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="24.04 22.04 20.04")>>
Linea 10: 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`, `.tar.xz`, 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.
Linea 12: 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]].

La seguente guida cerca di gettare delle linee guida sulla compilazione illustrando concetti e pratiche di base, tuttavia è opportuno ricordare che da programma a programma il metodo utilizzato può variare sensibilmente. Di solito chi ha creato un programma allega sotto forma di file `INSTALL`, `README`, `readme.md` le istruzioni da eseguire per arrivare a una corretta compilazione dei sorgenti.<<BR>>
Pertanto la prima regola da seguire è leggere la documentazione allegata.

<<Anchor(preparativi)>>
Linea 14: Linea 19:
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
 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'''.

Per semplicità consideriamo che i sorgenti siano all'interno della cartella `sorgenti` all'interno della propria '''Home'''.

{{{#!wiki tip
Più in generale per mantenere ordinata la propria '''Home''' è consigliabile creare una sottocartella specifica per le compilazioni.
Linea 18: Linea 28:
= Compilazione e installazione = = Generazione del makefile =
Linea 20: Linea 30:
La prima cosa da fare è scompattare il pacchetto sorgente, in modo da ottenere una directory che contiene l' ''albero dei sorgenti''. Dopo aver avviato un terminale, spostarsi nella directory contenente il pacchetto sorgente e lanciare il comando adatto al [:FormatiDiCompressione:formato di compressione] del pacchetto: 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.
Linea 22: Linea 32:
 * pacchetto {{{.tar.bz2}}}: {{{
   tar -jxvf nomepacchetto.tar.bz2
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 sorgenti
}}}
 0. Dare i [[AmministrazioneSistema/PermessiFile#Assegnare_i_permessi_di_esecuzione|permessi di esecuzione]] allo script di configurazione digitando il seguente comando:{{{
chmod +x configure
}}}Se il file avesse un nome differente, ad esempio `configure.sh`, ripetere il comando col nome corretto.
 0. Avviare lo [[Programmazione/LinguaggioBash|script]] di configurazione digitando il seguente comando:{{{
./configure
Linea 26: Linea 46:
 * pacchetto {{{.tar.gz}}} o {{{.tgz}}} {{{
   tar -zxvf nomepacchetto.tar.gz
 {{{#!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 30: Linea 50:
A questo punto si potrà entrare nella cartella appena scompattata e cercare/leggere un file `README` o `INSTALL` che contengono le istruzioni necessarie all'installazione e configurazione. === Accorgimenti ===
Linea 32: Linea 52:
Spostarsi nella directory in cui si trova il programma appena scompattato: {{{
cd nomeprogramma
 * 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
}}}
 * 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.

<<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'''.

{{{#!wiki tip
Il programma '''CMake''' è utilizzabile anche tramite interfaccia grafica. Per maggiori informazioni consultare la pagina [[Programmazione/CMakeGui|CMakeGui]].
Linea 36: Linea 69:
Il sistema attualmente più usato per compilare e installare si basa sul programma '''make''', il quale si aspetta di trovare nella directory radice dell'albero (e opzionalmente nelle sottodirectory) le istruzioni su cosa compilare e come compilare. Queste istruzioni variano in base alle scelte da noi fatte e altri parametri come la disponibilità di librerie opzionali nel sistema. Il metodo attualmente più usato per ottenere queste informazioni fa ricorso ad uno script bash chiamato '''configure''' presente nella directory radice dell'albero dei sorgenti. Le scelte che è possibile fare sono descritte nel file README (o INSTALL) e vanno passate, sotto forma di opzioni, allo script configure.  0. Creare la cartella `build` nella cartella in cui sono stati estratti i sorgenti:{{{
mkdir sorgenti/build
}}}
 0. Spostarsi al suo interno:{{{
cd sorgenti/build
}}}
 0. Compilare i sorgenti digitando:{{{
cmake ..
}}}
Linea 38: Linea 79:
Il primo comando da lanciare è quindi ./configure seguito dalle eventuali opzioni, per esempio: {{{
./configure --prefix=/usr
 {{{#!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]].
Linea 41: Linea 82:
l'opzione passata in questo caso serve a richiedere che il programma venga installato nella directory `/usr` invece della directory `/usr/local` (che è di solito l'impostazione predefinita).
Linea 43: Linea 83:
Se nel sistema non è presente una libreria necessaria al programma, lo script `configure` si bloccherà dando un errore; da questo errore si deve risalire al nome della libreria mancante e installarla, per poi rieseguire lo script. === Accorgimenti ===
Linea 45: Linea 85:
Una volta configurate le istruzioni da passare al make, si può procedere con la compilazione vera e propria: {{{  * '''CMake''' mette a disposizione l'opzione `--install-prefix directory` che permette di scegliere in quale directory allocare il programma che si va compilando. Nell'uso più frequente di questa opzione il comando diventa:{{{
cmake --install-prefix /usr
}}}
 * Per ottenere un elenco delle ulteriori opzioni messe a disposizione dal programma '''CMake''' digitare l'opzione `-h` o `--help` oppure consultare i file `INSTALL` o `README` forniti con il sorgente.

= 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]] digitando nel terminale [[AmministrazioneSistema/Terminale|terminale]]:{{{
sudo apt install apt-file
}}}
 0. Creare il database con il comando:{{{
sudo apt-file update
}}}Il comando può richiedere del tempo per terminare.
 0. Cercare adesso il pacchetto ignoto con il comando:{{{
sudo 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 48: Linea 123:
A questo punto abbiamo ottenuto il programma compilato e non ci resta che installarlo nel sistema: {{{
= Installazione =

 0. Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
Linea 52: Linea 130:
Ora che i file compilati sono stati ''copiati'' nelle directory che gli competono, possiamo anche disfarcene per liberare un po' di spazio: {{{
make clean
 0. Una volta installato il programma, è possibile rimuovere i file compilati dalla cartella dei sorgenti digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
sudo make clean
Linea 56: Linea 134:
Dobbiamo invece 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 home utente) è entrare nella directory radice dell'albero e dare il 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.}}}

= Rimozione =

{{{#!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 60: Linea 147:
Questo ultimo comando funziona solo se i MakeFile dei sorgenti contengono il target uninstall. Altrimenti sarà difficilissimo tenere traccia dei file installati attraverso make install. Per un uso personale consigliamo di utilizzare [:Programmazione/Checkinstall:Checkinstall].
Linea 64: Linea 150:
 * [:AmministrazioneSistema/ComandiBase:Comandi di base per il terminale]
 * [:Programmazione/Checkinstall:Checkinstall] crea un pacchetto Debian a partire dai sorgenti
 * [http://www.gnu.org/software/tar/manual/index.html Manuale ufficiale di GNU tar
]
 * [[AmministrazioneSistema/ComandiBase|Comandi di base per il terminale]]
 * [[Programmazione/Checkinstall|Guida all'uso di CheckInstall per creare un pacchetto .deb a partire dai sorgenti]]
Linea 68: Linea 153:
CategoryAmministrazione Category Programmazione CategoryAmministrazione CategoryProgrammazione


Guida verificata con Ubuntu: 22.04 24.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, .tar.xz, o .zip. Tale archivio contiene file di testo scritti in un linguaggio di programmazione, detti file sorgente, e altri eventuali file necessari al programma.

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.

La seguente guida cerca di gettare delle linee guida sulla compilazione illustrando concetti e pratiche di base, tuttavia è opportuno ricordare che da programma a programma il metodo utilizzato può variare sensibilmente. Di solito chi ha creato un programma allega sotto forma di file INSTALL, README, readme.md le istruzioni da eseguire per arrivare a una corretta compilazione dei sorgenti.
Pertanto la prima regola da seguire è leggere la documentazione allegata.

Preparativi

  1. Installare il pacchetto build-essential.
    Per programmi basati su KDE o Qt, installare il pacchetto cmake.

  2. Estrarre il pacchetto dei sorgenti nella propria Home.

Per semplicità consideriamo che i sorgenti siano all'interno della cartella sorgenti all'interno della propria Home.

Più in generale 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

  1. Aprire il terminale e spostarsi nella cartella in cui sono stati estratti i sorgenti digitando il seguente comando:

    cd sorgenti
  2. Dare i permessi di esecuzione allo script di configurazione digitando il seguente comando:

    chmod +x configure

    Se il file avesse un nome differente, ad esempio configure.sh, ripetere il comando col nome corretto.

  3. Avviare lo script di configurazione digitando il seguente comando:

    ./configure

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

Accorgimenti

  • 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.

Cmake

Per programmi basati su KDE o Qt la generazione del makefile è generalmente affidata al programma CMake.

Il programma CMake è utilizzabile anche tramite interfaccia grafica. Per maggiori informazioni consultare la pagina CMakeGui.

  1. Creare la cartella build nella cartella in cui sono stati estratti i sorgenti:

    mkdir sorgenti/build
  2. Spostarsi al suo interno:

    cd sorgenti/build
  3. Compilare i sorgenti digitando:

    cmake ..

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

Accorgimenti

  • CMake mette a disposizione l'opzione --install-prefix directory che permette di scegliere in quale directory allocare il programma che si va compilando. Nell'uso più frequente di questa opzione il comando diventa:

    cmake --install-prefix /usr
  • Per ottenere un elenco delle ulteriori opzioni messe a disposizione dal programma CMake digitare l'opzione -h o --help oppure consultare i file INSTALL o README forniti con il sorgente.

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

  1. Installare il pacchetto apt-file digitando nel terminale terminale:

    sudo apt install apt-file
  2. Creare il database con il comando:

    sudo apt-file update
    Il comando può richiedere del tempo per terminare.
  3. Cercare adesso il pacchetto ignoto con il comando:

    sudo 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

  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.
    Nel caso il file richiesto sia fornito da due o più pacchetti selezionare quello con «-dev» nel nome.

  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

Digitare 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:

    sudo 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.

Rimozione

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

Ulteriori risorse


CategoryAmministrazione CategoryProgrammazione