{{tag>administration système}}
----
====== Prelink ======
===== Qu’est-ce que le prelink et en quoi peut-il m’être utile ? =====
La plupart des applications utilisent des bibliothèques partagées (« shared libraries »). Ces bibliothèques partagées ont besoin d’être chargées en mémoire lors de l’exécution de l’application et les références aux différents symboles doivent être résolues. Pour la plupart des petits programmes, cette liaison dynamique est très rapide. Mais pour les programmes écrits en C++ qui ont beaucoup de dépendances, la liaison dynamique peut prendre un temps considérable.
Sur la plupart des systèmes, les bibliothèques ne changent pas souvent et quand un programme est en cours d’exécution l’opération de liaison est toujours la même. Le prelink utilise ceci à son avantage en évitant la liaison et en l’enregistrant dans l’exécutable.
Le prelink peut raccourcir le temps de démarrage des applications. Par exemple, le temps de chargement d’un programme KDE normal peut être réduit de plus de 50%. La seule opération de maintenance nécessaire est de ré-exécuter prelink chaque fois qu’une bibliothèque est mise à jour pour un exécutable prelinké.
===== Comment activer prelink =====
**Prelink** se trouve dans le dépôt [[:depots#universe]].
- Activez le [[:depots#universe|dépôt « Universe »]].
- [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>prelink]]**.
- ou en ligne de commandes : sudo apt-get -y install prelink
- [[:tutoriel:comment_editer_un_fichier|Éditez le fichier]] **/etc/default/prelink** avec les droits d'administrateur.
- Modifiez ''PRELINKING=unknown'' par ''PRELINKING=yes''.
- ou en ligne de commandes : sudo sed -i 's/PRELINKING=unknown/PRELINKING=yes/' /etc/default/prelink
- Ajustez les autres options si vous savez ce que vous faites. Les options par défaut marchent bien.
- Lancer le premier //prelinkage// (le plus long, généralement 5 à 10 minutes) avec la commande :sudo /etc/cron.daily/prelink
Par la suite, prelink lance un recalcul (généralement de moins d'une minute) chaque jour, généralement à minuit. Tous les 14 jours, un recalcul complet est effectué. Après la mise à jour d'une bibliothèque, prelink est également lancé sur tous les programmes utilisant cette bibliothèque.
À chaque fois que vous faites une mise à jour majeure incluant des bibliothèques utilisées par tout le système (libc6, glibc, major gnome/X libs, etc etc etc) et que vous rencontrez des erreurs fatales, relancez la dernière étape.
===== Automatiser le prelink =====
Vous pouvez aussi automatiser le lancement de prelink après l'installation d'un nouveau programme, avec les droits administrateur.
Pour cela :
- créez le fichier **/etc/apt/apt.conf.d/98prelink** (ou si vous utilisez Gutsy ou antérieur, [[:tutoriel:comment_editer_un_fichier|éditez le fichier]] **/etc/apt/apt.conf**)
- [[:tutoriel:comment_editer_un_fichier|ajoutez dans ce fichier]] la ligne suivante: DPkg::Post-Invoke {"echo Pré-raccordement des bibliothèques en cours, veuillez patienter...;/etc/cron.daily/prelink";}
- Sauvegardez
ou en ligne de commande directement
# Pour Ubuntu actuel
echo 'DPkg::Post-Invoke {"echo Pré-raccordement des bibliothèques en cours, veuillez patienter...;/etc/cron.daily/prelink";}'|sudo tee -a /etc/apt/apt.conf.d/98prelink
# Pour ubuntu Gutsy ou antérieur
echo 'DPkg::Post-Invoke {"echo Pré-raccordement des bibliothèques en cours, veuillez patienter...;/etc/cron.daily/prelink";}'|sudo tee -a /etc/apt/apt.conf
===== Comment désactiver prelink =====
Pour retirer le prelinking, changez ''yes'' par ''no'' à l'étape 5 et relancez l'étape 8.
===== Sources =====
* [[https://ubuntuforums.org/showthread.php?t=1971&highlight=prelink|d'après ce sujet du forum anglophone]]
* [[http://www.gentoo.org/doc/fr/prelink-howto.xml|D'après la doc Gentoo]]
----
//Contributeurs : [[utilisateurs:Futal]].//