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 $PATHo che si dovrebbe considerare di aggiungere
$PATH.
Sebbene la creazione e l'installazione di software sia spesso semplice come in esecuzione ./configure, a makevolte make checko make test, e quindi make installo sudo make install, a volte vorrete passare le opzioni allo configurescript 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 installpassaggio in realtà installa il software, le posizioni in cui tutto verrà installato sono in genere stabilite nel
./configurepassaggio.
L'opzione più comune per questo è --prefix. Il prefisso predefinito, quando non si dice configurecosa 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 ./configuresolito è 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 --prefixsignifica
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=directorydirectorydirectorydirectory
Gli eseguibili di solito entrano directory/bin, anche se possono entrare directory/sbinse sono comunemente usati per l'amministrazione del sistema o possono entrare (più raramente, in questi giorni)
directory/gamesse sono giochi. Le biblioteche entrano in
directory/libun'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 directoryessere 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
/etce la tua /usr/local/etcdirectory 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 .