make install
fa qualunque cosa l' Makefile
autore voglia che faccia. In genere, a questo punto, è troppo tardi per cambiare la directory di installazione, come è spesso noto in precedenza , durante la compilazione, quindi è possibile fare riferimento ai file della guida e ai file di configurazione con i nomi percorso corretti.
Molti progetti usano GNU Autotools per cercare di migliorare la loro portabilità tra differenze hardware e di sistema operativo. (Diverse varianti di Unix utilizzano intestazioni leggermente diverse per le dichiarazioni di funzioni che sono leggermente fuori dal normale percorso, tranne per il fatto che la maggior parte dei programmi necessita di uno o l'altro di quelli dichiarati in posizioni diverse.)
Quando un progetto utilizza gli Autotools, il mantra normale per installarlo è:
./configure
make
make install
In ./configure
genere consente di utilizzare un'opzione della riga di comando simile --prefix /opt/apache
o qualcosa di simile per specificare un percorso diverso. /usr/local/
è un valore predefinito comune prefix
. È molto più facile per il software costruito localmente vivere in un posto e il software fornito dalla distribuzione può vivere nelle "directory principali":, /usr/
/bin/
e così via. (I packager sono molto attenti a non toccare mai i file /usr/local/
: sanno che è riservato esclusivamente agli amministratori di sistema.)
Ad ogni modo, ./configure --prefix /path/to/new/prefix
verrà impostata una variabile in quella Makefile
che è disponibile durante la compilazione del programma, modificando le pagine del manuale in modo che puntino alle posizioni corrette per i file, modificando i file di configurazione, ecc. Quindi make
costruirà il software specificamente per la posizione di installazione desiderata e make install
lo installerà in quella posizione.
La maggior parte dei programmi può essere eseguita anche senza il make install
passaggio finale : ./program_name
spesso li avvierà. Questa è sicuramente una cosa per progetto - alcuni, come postfix
, qmail
ecc., Sono costituiti da molti pezzi mobili diversi e si affidano a tutti loro che lavorano insieme. Altri, come ls
o su
potrebbero essere abbastanza autosufficienti da eseguire correttamente dalla directory in cui sono stati incorporati. (Questo non è spesso utile - ma a volte molto utile.)
Tuttavia, non tutti i progetti utilizzano gli Autotools: sono enormi , complicati e miserabili da mantenere. Gli scritti a mano Makefile
sono molto più semplici da scrivere, e personalmente penso che distribuire un semplice Makefile
con variabili di configurazione disponibili sia molto più semplice per sviluppatori e utenti. (Anche se il ./configure ; make ; make install
mantra è davvero facile per gli utenti quando funziona.)
make install
passaggi dal punto di vista dei programmatori.