Les gourous sont une équipe d'élèves bénévoles qui installent des programmes sur le système informatique des élèves de l'ENS pour l'usage de tous. Le SPI (loué soit son nom), nous a accordé de l'espace disque à cet effet dans chaque salle. Nous nous occupons également de mettre au point la « config conscrit », c'est à dire les fichiers de configuration que le SPI insère dans les comptes des conscrits à leur création, et qui définissent l'environnement dans lequel on se trouve lorsque l'on se logue. Enfin, un sous-ensemble de gourous s'occupe de modérer les courriers électroniques collectifs, en collaboration avec le SPI.
Nous avons un compte nommé gourous grâce auquel vous pouvez nous contacter.
Il s'agit en général de programme libres et « sérieux ». On n'y trouvera bien entendu pas de jeux, ce qui serait un gaspillage scandaleux des ressources de l'école. Il y a néanmoins des programmes éducatifs installés par games qui est une émanation de gourous.
Notre partition est montée dans /opt/gourous. Elle contient tout ce que nous avons installé, pour tous les systèmes différents que nous avons à supporter. Il y a des liens symboliques /usr/local/util et /usr/local/games qui pointent vers les zones de /opt/gourous correspondant au système sur lequel on se trouve. La manière recommandée pour accéder aux programmes installés par gourous est de passer par /usr/local/util.
Par la suite nous nous concentrerons sur /usr/local/util, mais la plupart de ce qui sera dit est également vrai pour /usr/local/games.
Nous allons maintenant décrire la structure de /usr/local/util, en procédant sous-répertoire par sous-répertoire.
Ce répertoire contient le gros des programmes installés par gourous. Chaque « package » est installé dans un sous-répertoire distinct. Un « package » est un ensemble de fichiers reliés de plus ou moins près. Par exemple, pour un programme, le package correspondant pourra contenir : le programme lui-même, le manuel du programme, des fichiers de configuration par défaut... Un package portant le doux nom « foobar », version 3.1.4 sera normalement installé dans /usr/local/util/packages/foobar-3.1.4, et il y aura bien souvent un lien symbolique foobar -> foobar-3.1.4. Dans chaque répertoire contenant un package, il y a (ou du moins, il devrait y avoir) un fichier nommé 00README décrivant brièvement ce package.
Ces répertoires contiennent respectivement des programmes, des pages de man, et des bibliothèques. La plupart du temps, ce sont des liens symboliques pointant vers des fichiers se trouvant dans /usr/local/util/packages. Ces répertoires servent simplement à faciliter l'accès à ces fichiers.
Il contient des fichiers relatifs à TeX (macros, polices, ...). Le TeX du SPI va chercher dans ce répertoire les fichiers qu'il ne trouve pas chez lui.
Il contient des fichiers utilisés par la config conscrit.
La config conscrit fait en sorte que les programmes présents dans /usr/local/util/bin, et leurs pages de man (situées dans /usr/local/util/man) soient accessibles de manière transparente (il suffit de taper le nom d'un programme pour le lancer, et, pour avoir le man de frobnicate de taper man frobnicate).
Il y a un point épineux : si vous voulez compiler vos propres programmes, en utilisant des bibliothèques installées par gourous. Le problème vient de la présence à différents endroits (chez gourous et chez le SPI) de différentes versions des mêmes bibliothèques. En réaction à certains ennuis qui ont eu lieu, certains gourous ont décidé de ne plus utiliser /usr/local/util/lib et /usr/local/util/include (il n'y a néanmoins pas de consensus sur cette question entre les gourous), si bien que /usr/local/util/lib n'est pas à jour par rapport à /usr/local/util/packages, et n'est donc pas utilisable.
La solution consiste à indiquer au compilateur (en fait, il s'agit du préprocesseur et du linkeur) où trouver les fichiers d'include et les bibliothèques. Supposons que vous ayez besoin de la lib crohond fournie dans le package fourmi. La lib crohond est supposée se trouver dans le fichier /usr/local/util/packages/fourmi/lib/libcrohond.so, et les fichiers d'include dans le répertoire /usr/local/util/packages/fourmi/include.