#format wiki #LANGUAGE it <
> <> <> = Introduzione = 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. 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]]. <> = Preparativi = 0. [[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]]. 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).<
>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. {{{#!wiki tip 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 == 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 }}} {{{#!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`}}} {{{#!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`. }}} {{{#!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. }}} {{{#!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]]. }}} == 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 }}} {{{#!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`}}} {{{#!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.}}} <> == 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 }}} 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.<
> 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:{{{ make }}} = Installazione = 0. Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ sudo make install }}} 0. Una volta installato il programma, è possibile rimuovere i file compilati dalla cartella dei sorgenti digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ make clean }}} {{{#!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:{{{ sudo make uninstall }}} = Ulteriori risorse = * [[AmministrazioneSistema/ComandiBase|Comandi di base per il terminale]] * [[Programmazione/Checkinstall|Guida all'uso di CheckInstall per creare un pacchetto .deb a partire dai sorgenti]] ---- CategoryAmministrazione CategoryProgrammazione