Ceci est une ancienne révision du document !



Prelink

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é.

Prelink se trouve dans le dépôt universe.

  1. Éditez le fichier /etc/default/prelink avec les droits d'administrateur.
  2. Modifiez PRELINKING=unknown par PRELINKING=yes.
  3. Ajustez les autres options si vous savez ce que vous faites. Les options par défaut marchent bien.
  4. 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.

Vous pouvez aussi automatiser le lancement de prelink après l'installation d'un nouveau programme, avec les droits administrateur. Pour cela :

  1. créez le fichier /etc/apt/apt.conf.d/98prelink (ou si vous utilisez Gutsy ou anterieur, éditez le fichier /etc/apt/apt.conf)
  2. ajoutez dans ce fichier la ligne suivante:
    DPkg::Post-Invoke {"echo Running prelink, please wait...;/etc/cron.daily/prelink";}
  3. Sauvegardez

Pour retirer le prelinking, changez yes par no à l'étape 4 et relancer l'étape 6.

  • prelink.1232455751.txt.gz
  • Dernière modification: Le 20/01/2009, 13:49
  • par YannUbuntu