Configurare la tua build
Quando hai il codice sorgente che viene compilato eseguendo ./configure
e make
, di solito utilizzerai make install
(o sudo make install
) per installarlo. Questo copia i file dalla directory di build nel percorso di installazione. Quando la cosa che si sta installando fornisce comandi eseguibili, questi eseguibili vengono in genere copiati in una directory che si trova $PATH
o che si dovrebbe considerare di aggiungere
$PATH
.
Sebbene la creazione e l'installazione di software sia spesso semplice come in esecuzione ./configure
, a make
volte make check
o make test
, e quindi make install
o sudo make install
, a volte vorrete passare le opzioni allo configure
script per configurare la build. In particolare, come dice pfnuesel , questo è il modo in cui si configura
dove verrà installato il software. Anche se il make install
passaggio in realtà installa il software, le posizioni in cui tutto verrà installato sono in genere stabilite nel
./configure
passaggio.
L'opzione più comune per questo è --prefix
. Il prefisso predefinito, quando non si dice configure
cosa usare, è di solito /usr/local
. (Occasionalmente, il codice sorgente di un programma o di una libreria viene impostato automaticamente su un altro prefisso. Fortunatamente questo è raro.)
Quindi di ./configure
solito è equivalente a ./configure --prefix=/usr/local
. Per installare il software nella tua home directory, puoi usare ./configure --prefix=/home/galahad
(se /home/galahad
è la tua home directory) o --prefix="$HOME"
. Quindi, ovviamente, è comunque necessario compilare e installare il software con make
. Devo dire che non tutti i software distribuiti in forma di codice sorgente sono costruiti in questo modo. Dovresti sempre cercare la documentazione all'interno dell'archivio del codice sorgente estratto.
Ciò che --prefix
significa
Quando esegui , stai indicando che il software deve essere installato nella
directory. Ma questo raramente, se mai, inserisce file sciolti . Al contrario, inserisce file che hanno scopi diversi nelle diverse sottodirectory di . Se queste sottodirectory non esistono, le crea../configure --prefix=directory
directory
directory
directory
Gli eseguibili di solito entrano directory/bin
, anche se possono entrare directory/sbin
se sono comunemente usati per l'amministrazione del sistema o possono entrare (più raramente, in questi giorni)
directory/games
se sono giochi. Le biblioteche entrano in
directory/lib
un'altra directory simile o simile
directory/lib32
. I file di intestazione entrano
directory/include
. Le pagine del manuale entrano
directory/man
. Vengono inseriti i file di dati utilizzati dal software
directory/share
.
Questo è ciò che significa directory
essere un prefisso . È la directory principale che contiene le posizioni in cui verranno installati file diversi. Appare quindi come prefisso nei percorsi assoluti della maggior parte dei file e delle directory creati eseguendo make install
o sudo make install
.
Ci sono alcune eccezioni a questo. I file di configurazione a livello di sistema - che a volte vengono creati durante l'installazione del software che li utilizzerà, sebbene non sempre - entrano solitamente /etc
. Questo non è in genere influenzato specificando un prefisso diverso. Anche se installi un sacco di software /usr/local
, lo userà comunque principalmente
/etc
e la tua /usr/local/etc
directory sarà probabilmente inesistente, vuota o con pochissimi file.
Su molti sistemi, è possibile trovare ulteriori informazioni sul layout tipico del filesystem eseguendo man hier
. Se stai usando un sistema GNU / Linux potresti essere interessato al Filesystem Hierarchy Standard .