Parce que chaque étape ne choses différentes
Préparer(configuration) de l'environnement pour la construction de
./configure
Ce script a beaucoup d'options que vous devriez changer. Comme --prefix
ou --with-dir=/foo
. Cela signifie que chaque système a une configuration différente. Aussi ./configure
contrôle de l'absence de bibliothèques qui doit être installé. Quelque chose de mal ici, les causes de ne pas construire votre application. C'est pourquoi les distributions ont des paquets qui sont installés dans des endroits différents, car chaque distro choses, il est préférable d'installer certains fichiers et bibliothèques, à certains répertoires. Il est dit que les ./configure
, mais en fait, vous devriez le changer toujours.
Par exemple, avoir un regard sur Archlinux paquets site: http://www.archlinux.org/packages/.
Ici, vous verrez que tout paquet d'utiliser un autre configurer les paramètres (à supposer qu'ils utilisent les autotools pour la construction du système).
La construction du système
make
C'est en fait make all
par défaut. Et chaque marque a différentes actions à faire. Certains de la construction, de certains faire des tests après la construction, certains ne caisse de externe scm des dépôts. Habituellement, vous n'avez pas à faire toute paramater, mais encore une fois certains paquets d'exécution différents.
Installer le système
make install
Cette installation est le paquet à l'endroit spécifié à configurer. Si vous le souhaitez, vous pouvez spécifier ./configure
pour pointer vers votre répertoire d'accueil. Cependant beaucoup de configurer les options sont pointant vers /usr
ou /usr/local
. Cela signifie que vous devez utiliser réellement sudo make install
. Parce que seul root peut copier des fichiers de /usr et /usr/local.
Maintenant, vous voyez que chaque étape est un pré-requis pour l'étape suivante. Chaque étape est une préparation pour faire des choses de travail dans un problemless flux. Distributions utilise cette métaphore pour construire des paquets (comme le rpm, deb, etc..).
Ici, vous verrez que chaque étape est en fait un état différent de l'état. C'est pourquoi les gestionnaires de paquets ont différentes formes. Ci-dessous est un exemple d'un wrapper qui, comme vous, construire en une seule étape, l'ensemble du paquet. Mais rappelez-vous que chaque application a une autre wrapper (en fait, ces gestionnaires ont un nom comme spec, PKGBUILD, etc.. ):
def setup:
... #use ./configure if autotools is used
def build:
... #use make if autotools is used
def install:
... #use make all if autotools is used
Ici, on peut utiliser les autotools, cela signifie que ./configure
, make
et make install
. Mais d'un autre on peut utiliser scons, python liés à l'installation ou quelque chose de différent.
Comme vous le voyez, le fractionnement de chaque état rend les choses beaucoup plus facile pour le maintien et le déploiement, en particulier pour les mainteneurs de paquets et des distributions.