Master SAR 2006-2007, Université Pierre & Marie Curie. Alexandre Duret-Lutz. [retour à l'index des TD]

Administration et Architecture des Systèmes, TD 3

Installation et compilation de logiciels

Lors de cette séance nous allons télécharcher, configurer, compiler et installer plusieurs outils qui nous servirons lors des prochains TD.

Sommaire

1   Installation de Berkeley DB 4.3.29

Note

Berkeley DB 4.3.29 est déjà installé sur les machines de l'ARI. Donc il n'est pas nécessaire de l'installer sur votre compte comme c'est demandé.

Lisez quand même cette section, même si vous ne faites pas l'installation en elle-même.

Dans tous les cas faites en sorte que les programmes de ~/usr/bin/ soient cherchés par votre shell. On y installera d'autres choses.

Récupérez et décompressez ftp://ftp.sleepycat.com/releases/db-4.3.29.NC.tar.gz Placez-vous ensuite dans le répertoire build_unix/ pour lancer ../dist/configure --prefix ~/usr.

Dans la grande majorité des paquets que vous trouverez, le script configure est en charge de tester les fonctionnalités supportées par le système pour créer des Makefile (et d'autres fichiers) spécifiques à votre environnement.

L'installation d'un tel paquet se fait typiquement en trois étapes :
  • la configuration, en lançant configure avec éventuellement des options,
  • la compilation, en lançant make,
  • l'installation, en lançant make install.

L'option --prefix ~/usr utilisée ci-dessus indique que vous souhaitez que ce logiciel installe tous ses fichiers sous ce répertoire.

Le fait que le fichier configure soit caché dans dist/ et qu'il faille le lancer depuis build_unix/ sont deux originalités de Berkeley DB. La plupart du temps configure se trouve à la racine du paquet et peux y être exécuté directement.

Notez que lors de make install, plusieurs programmes sont installés dans ~/usr/bin/, des bibliothèques sont installées dans ~/usr/lib/, et des fichiers d'entêtes dans ~/usr/include/.

Configurez votre shell pour que ces programmes soient exécutables sans en spécifier le chemin complet.

2   Installation d'OpenLDAP

Récupérez les sources de la dernière version d'OpenLDAP depuis ftp://ftp.in2p3.fr/pub/OpenLDAP/openldap-release et décompressez l'archive. Vous y trouverez un script configure. Suivez donc la procédure classique d'installation dans ~/usr que nous venons de voir.

Sur les machines où Berkeley DB n'est pas installé, configure devrait s'arrêter sur :

[...]
checking db.h usability... no
checking db.h presence... no
checking for db.h... no
configure: error: BDB/HDB: BerkeleyDB not available

Du point de vue de configure Berkeley DB ne semble pas installé car db.h ne se trouve pas dans le chemin de recherche du préprocesseur. Il faudrait l'option -I$HOME/usr/include lorsque gcc est appelé.

Outre db.h, le problème se pose aussi avec les bibliothèques installées dans ~/usr/lib. Il faudrait donc aussi utiliser -L$HOME/usr/lib lors de l'édition des liens.

La fin de ./configure --help indique que les deux variables suivantes peuvent être utilisées pour spécifier les options -I et -L :

./configure --prefix ~/usr CPPFLAGS=-I$HOME/usr/include LDFLAGS=-L$HOME/usr/lib

Note

Lorsqu'on installe beaucoup de choses dans ~/usr, l'emploi de ces variables CPPFLAGS et LDFLAGS devient presque systématique.

On a alors tout intérêt à créer le fichier ~/usr/share/config.site suivant :

$ cat ~/usr/share/config.site
test -z "$CPPFLAGS" && CPPFLAGS=-I$HOME/usr/include
test -z "$LDFLAGS" && LDFLAGS=-L$HOME/usr/lib

Ce fichier est sourcé par configure quand on lui passe l'option --prefix ~/usr.

$ ./configure --prefix ~/usr
configure: loading site script /home/adl/usr/share/config.site
...

Terminez l'installation avec make et make install. Nous l'utiliserons lors du prochain TD.

3   Installation d'lsof

Nous installons lsof aujourd'hui pour l'utiliser lors du dernier TD.

Récupérez les sources de lsof : ftp://ftp.in2p3.fr/pub/lsof/lsof_4.77.tar.bz2 et décompressez-les. (Il y a deux archives l'une dans l'autre.)

Consultez 00.README.FIRST pour savoir comment exécuter le script Configure. Il ne fonctionne pas comme ceux que nous avons vus précédemment. Refusez de faire l'inventaire des fichiers, ou de personnaliser la configuration lorsqu'on vous le propose.

Compilez lsof en lançant make.

Le Makefile de contient pas de règle d'installation. make install vous suggère de vous débrouiller comme un(e) grand(e).

Copiez donc l'exécutable lsof dans ~/usr/bin/ et installer sa page de manuel lsof.8 dans ~/usr/share/man/man8.

Quittez ce répertoire et vérifiez (ou faites en sorte) que les commandes man lsof et lsof fonctionnent.

Note

Lorsque le shell visite $PATH la première fois il garde trace de toutes les commandes qu'il a rencontrées pour aller plus vite ensuite. (La commande hash affiche cette liste). Si par la suite vous ajouter de nouvelle commandes dans ces répertoires, il faudrait demander au shell d'oublier sa liste avec hash -r pour le forcer à redécouvrir toutes les commandes.

Pour vérifier qu'lsof fonctionne bien, utilisez-le pour trouver à quoi sont connectées l'entrée et la sortie standard de votre gestionnaire de fenêtres. Est-il possible d'en savoir autant à propos du serveur X?

4   Installation de John The Ripper

Récupérez et compilez John The Ripper 1.7.2.

Lancez le en mode test pour vérifier que l'exécutable fonctionne bien puis copiez le répertoire run à un endroit de votre compte où vous le retrouverez la semaine prochaine.

Récupérez des dictionnaires Français et Anglais depuis ftp://ftp.ibiblio.org/pub/linux/distributions/openwall/wordlists/languages/ et mettez-les bout à bout pour former un énorme dictionnaire.

5   Bonus

Ceux qui ont terminé peuvent s'amuser à chercher puis compiler un petit programme nommé x2x et qui sert à relier deux serveurs X pour les contrôler depuis un seul jeu de clavier/souris.

Il faut avoir lancé un serveur X à son nom sur deux machines (autrement dit, s'être logué physiquement sur deux machines), ensuite une invocation telle que ssh -X machine2 x2x -east -to :0 ferra en sorte que lorsque la souris sort de l'écran par la droite, elle entrera par la gauche sur l'écran de machine2.