Niveau :      
Résumé : ./configure ; make ; make install

Si vous voulez installer un logiciel qui n'est pas proposé dans votre système de paquet, il est probable que le site du dit logiciel vous en propose les sources. Et ce pour plusieurs raisons, tout d'abord parce qu'on est dans un monde opensource, si ce n'est libre, et donc le source est à la source de tout. D'autre part c'est bien plus facile pour lui car il n'a pas à compiler pour vous et à vous fournir un binaire pour chaque architecture/distribution possible. Imaginez par exemple 7 distributions majeures x 13 architectures x 2 versions d'une bibliothèque dont on dépend, c'est à devenir fou !

L'auteur va donc se reposer sur les outils standards de compilation et sur une bonne âme (parfois lui-même) qui se proposerait de faire le paquet et l'inclure dans les distributions.

En attendant que votre distribution le propose, vous devez vous farcir le processus de compilation. Heureusement, il est en général automatisé et plutôt standard.

./configure

C'est la première commande que vous devez taper, en pratique elle va faire 2 choses, tout d'abord vérifier que toutes les dépendances sont présentes, et ensuite configurer et écrire un fichier Makefile qui contiendra les ordres de compilation. A chaque erreur de dépendance, à vous d'installer ce qu'il manque. Comme en général, il s'agit d'une bibliothèque. Sous debian vous la trouverez ainsi :

$ apt-cache search lib toto dev
  • lib : c'est une bibliothèque
  • toto :ce qu'on cherche
  • dev : on cherche la version pour le développement (avec les en-têtes pour permettre la compilation)

Pour la partie configuration, il y a un certain nombre de paramètres à passer à la commande. Les premiers sont standards. Pour en avoir la liste :

$ ./configure --help

Le paramètre le plus utilisé est --prefix= qui spécifie le répertoire dans lequel on veut installer le logiciel. Par défaut c'est /usr/local, ce qui est très bien lorsqu'on est dans une distribution standard.

Cette commande doit être tapée en tant qu'utilisateur normal.

make

C'est la 2e commande. Celle ci ne vous demandera rien, elle effectue juste la compilation. Elle sera plus ou moins longue selon la taille du projet. Elle peut s'arrêter en cas de problème de compilation, et c'est là que commence l'arrachage de cheveux et les mails ininterrompus avec le développeur (vive l'opensource).

Cette commande doit être tapée en tant qu'utilisateur normal.

make install

Cette command est séparée de make, bien que les règles font qu'en général make install effectue le make si besoin. En effet, cette commande doit être tapée en tant que root si des droits spéciaux sont requis pour l'installation du logiciel. En gros c'est le cas si vous installez celui-ci ailleurs que dans votre home.

Et voila, connaître cette procédure fait la différence entre un vrai sysadmin et un débutant. Comme disaient les romains : Non licet omnibus adire Corinthum, il n'est pas donné à tout de monde de savoir faire ./configure && make && make install.

Si vous êtes développeur

Remarquez que pour mettre tout ceci en place, le développeur n'a pas tout écrit à la main. Il a utilisé les autotools. Il a tapé automake et autoconf mais ce n'est pas tout, il dû écrire un fichier de configuration plus ou moins long. Bien que les autotools aient l'avantage d'une portabilité inégalée, ils sont d'un lourdeur incomparable. Je vous conseille donc plutôt de vous orienter vers d'autre produits comme cmake.

Quelques produits concurents :

  • scons : écrit en python
  • ant : écrit en java
  • imake : utilisé pour Xfree, vieux, à éviter
  • cmake : utilisé pour kde4