Fermez les yeux, et imaginez que vous utilisez un ordinateur Unix sur lequel vous n'êtes pas root (ça va, vous lisez toujours ?)

Pour autant, pas question de se contenter du maigre choix de logiciels que ce root a bien daigné installer sur la machine (notamment, pas question d'utiliser les usines à gaz qui y font office d'environnement de bureau). Heureusement, sous Unix, il est toujours possible de compiler et d'installer ses propres programmes chez soi, dans son home. Et ce d'autant plus facilement que les programmes en questions sont léger, et ont peu de dépendances, bref, qu'ils sont moins craignos que les autres.

Pour commencer, préparons le terrain. Nous utiliserons, comme le recommande FreeDesktop, un répertoire ~/.local comme préfixe. C'est à dire qu'à l'intérieur se retrouvera la hiérarchie Unix standard des programmes que nous allons installer (par exemple ~/.local/bin, ~/.local/lib, etc).

Afin de pouvoir utiliser les programmes installés dans un tel endroit, il va probablement être nécessaire d'amender le script de lancement de votre shell préféré, par exemple ~/.bashrc pour Bash, et y définir les variables :

export PATH="$PATH:$HOME/.local/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$HOME/.local/lib"

Bien. Passons aux choses sérieuses. Le script hinstall (licence WTFPL version 2), que vous pouvez directement placer dans votre ~/.local/bin, permet de gérer la configuration, la compilation et l'installation dans votre home d'un certain nombre de programes pas trop exotiques.

Il suffit de récupérer le code source du programme en question (par exemple, dmenu), puis de l'installer par un simple :

$ hinstall dmenu-4.1.1.tar.gz

hinstall déplacera l'archive dans ~/.local/src, l'extrayera, configurera le logiciel (soit par un ./configure ..., soit en éditant un config.mk), le compilera, et l'installera. Actuellement, les autoconf/autotools sont gérés, les Makefiles simples devraient fonctionner, et les setup.py sont reconnus.

Par contre, pas de gestion des dépendances : si au cours de la compilation une erreur se produit, le script s'arrête, et c'est à vous de trouver la dépendance à installer... avec hinstall.

hinstall permet aussi (dans la mesure où c'est prévu par les développeurs du logiciel en question) de désinstaller des programmes. Voir hinstall --help pour plus d'informations sur l'utilisation de hinstall.

Enjoy!