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 universe.
- Activez le dépôt « Universe ».
- ou en ligne de commandes :
sudo apt-get -y install prelink
- Éditez le fichier /etc/default/prelink avec les droits d'administrateur.
- Modifiez
PRELINKING=unknown
parPRELINKING=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) 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, éditez le fichier /etc/apt/apt.conf)
- 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.