Une application dépend de bibliothèques, que l'on appelle souvent librairies à tort, à cause du faux ami anglais library. Une bibliothèque est un morceau de logiciel, fournissant à votre application ainsi qu'à d'autres, un ensemble de fonctionnalités communes. L'avantage d'un tel système est qu'il n'y a pas besoin de réinventer la roue à chaque fois. Cela assure de plus une certaine homogénéité fonctionnelle, graphique dans le cas d'une bibliothèque graphique comme gtk+ (gnome) ou qt (kde), et de plus, si un bug apparaît, on le corrige une seule fois et il est corrigé pour toutes les applications qui utilisent cette bibliothèque. A condition de garder cette bibliothèque à jour bien sur.
Si vous avez décidé de recompiler une application et l'une ou l'autre bibliothèques dont elle dépend, vous devez ensuite maintenir à jour non seulement l'application, mais aussi ces bibliothèques. Si une bibliothèque doit être recompilée pour corriger un bug, vous devez aussi recompiler toutes vos applications qui en dépendent, même si le seul changement est la bibliothèque.
Tout cela apparaît simple dans le principe. En pratique, cela est différent, et ressemble vite à un cauchemar. En effet, si vous recompilez vos applications et vos bibliothèques, vous n'avez pas les paquets correspondants. Du coup, les schémas de dépendances sont noté nulle part. Vous n'avez pas vraiment de moyen efficace de savoir si, en changeant un composant, quelle est la liste des programmes et bibliothèques qui en dépendaient. En changeant une bibliothèque, vous risquez donc d'avoir une application qui ne fonctionne plus, ou qui plante alors qu'elle ne plantait pas avant, ou qui fonctionne moins bien... Vous pouvez aussi tenter de faire cohabiter deux versions différentes d'une même bibliothèque, ce qui est tout à fait possible, en théorie et souvent en pratique aussi. Mais ensuite, quand vous recompilez une application, ce n'est plus très simple de savoir quelle version de la bibliothèque il doit utiliser. Et si vous faites le ménage en supprimant les vieilles versions des bibliothèques, peut-être qu'un programme s'en servait encore et ne marchera plus?
A cause d'une part du temps que vous allez passer à recompiler vos applications, et d'autre part des ennuis que vous allez vous attirer à cause des dépendances, problèmes dus à la cohabitation de bibliothèques de versions différentes, et autres joyeusetés plus exotiques encore, je vous déconseille de recompiler une application si vous n'avez pas une raison sérieuse de le faire.
© 2003 Yves Mettier