Suivant: Mise à jour Chapitre: Mise à jour Avant: Mise à jour
Mise à jour des librairies L'essentiel des programmes sous Linux utilisent les bibliothèques partagées, qui contiennent les routines les plus courantes afin d'économiser mémoire et place disque, nous l'avons déjà expliqué.
Si vous voyez un message ressemblant de près ou de loin à:
lorsque vous tentez de lancer un programme, c'est que vous devez mettre à jour la version des bibliothèques partagées, celles que vous avez sont trop anciennes. Ces librairies assurent la compatibilité pour les anciens programmes; un programme compilé pour utiliser une vieille version tournera parfaitement avec les nouvelles, mais l'inverse n'est pas vrai (il peut fonctionner quand même mais ne comptez pas trop dessus).
Les versions à jour des librairies partagées se trouvent sur tous les sites diffusant Linux, tout comme les sources du noyau et le reste du système. Généralement le répertoire où elles se trouvent s'appelle ``GCC'' (elles sont très liées au compilateur), cherchez ``/pub/linux/packages/GCC/image....'' ou quelque chose d'approchant. En bref, vous devez télécharger les fichiers image- version.tar.gz et inc- version.tar.gz, où version est la version des librairies à installer, comme par exemple 4.5.26. Ce sont des archives tar compactées par gzip; le fichier image contient les images des librairies à installer dans /lib et /usr/lib, tandis que le fichier inc contient les fichiers qui vont dans /usr/include.
Lisez absolument le fichier release- version.tar.gz, il contient toutes les explications nécessaire à l'installation et n'en ratez pas une ligne: certaines grosses anomalies de fonctionnement constatées par un grand nombre d'utilisateurs récemment, étaient dues au fait qu'ils avaient oublié de faire une manipulation qui était pourtant bien expliquée dans cette notice. En général, les fichiers *.a et *.sa s'installent dans /usr/lib, ce sont les librairies nécessaires pour réaliser les compilations des programmes. Les fichiers libc.so. version sont installés dans /lib. ce sont les images des librairies partagées qui sont chargées au lancement des programmes qui les utilisent. Chaque librairie possède un lien symbolique utilisant le numéro de version principal, c'est sous ce nom là que les programmes cherchent ces fichiers.
Par exemple, la version 4.5.26 de la libc a un numéro de version de 4. Le fichier contenant la librairie est libc.so.4.5.26. Un lien symbolique du nom de libc.so.4 est créé dans /lib, pointant sur ce fichier. Vous devez éventuellement vérifier et changer manuellement ce lien si l'installation s'est mal passée.
En réalité, ce ne sont pas les programmes qui cherchent les librairies partagées, mais un programme ``éditeur de liens dynamiques'', qui s'appelle /lib/ld.so . Cet éditeur de lien doit être configuré par la commande ldconfig chaque fois que vous changez de version de bibliothèques partagées, c'est lui qui va automatiquement créer les bons liens symboliques, pour toutes les librairies qu'il trouvera sur le système. En général tout se passe très bien et il n'y a rien à retoucher à la main. Mais, dans le pire des cas, lisez ce qui suit.
Si vous devez corriger à la main les liens symboliques sur les librairies partagées, il est très important de le faire en une seule étape, comme nous vous le montrons ci-dessous. Si vous supprimez le lien symbolique libc.so.4, plus aucun programme qui en dépend ne fonctionnera (y compris les commandes de base comme ls et cat). Utilisez la commande suivante pour mettre à jour le lien symbolique libc.so.4, afin qu'il pointe par exemple sur libc.so.4.5.26:
Vous devrez aussi faire la même manipulation sur le lien libm.so. version (Pour en savoir plus sur les liens symboliques, lisez la section 3.10). Mais encore une fois, la commande ldconfig devrait faire tout cela pour vous sans se tromper. Elle se trouve probablement dans /etc ou dans /sbin, selon votre distribution de Linux.