samedi 12 septembre 2009

Optimisation gentoo : prelink

Definition :

prelink est un executable qui modifie les fichiers binaires pour intégrer les dépendances externes ("shared libraries") dans celui-ci. prelink vous permet d'optimiser le temps de démarrage de vos executables.

Remarque : Le temps gagné est impressionant.


Installation :

emerge prelink
env-update

Utilisation :

prelink -amR

Il faut executer cette commande à chaque fois que l'on met son système à jour car de nouvelles librairies sont mis à jour et doivent être intégré.


Exemple Utilisation :

# prelink -amR
prelink: /usr/lib/xulrunner/xpcshell: Could not find one of the dependencies
prelink: /usr/lib/xulrunner/TestGtkEmbed: Could not find one of the dependencies
prelink: /usr/lib/xulrunner/regxpcom: Could not find one of the dependencies
prelink: /usr/lib/xulrunner/mozilla-xremote-client: Could not find one of the dependencies
prelink: /usr/lib/xulrunner/xulrunner-stub: Could not find one of the dependencies
prelink: /usr/lib/xulrunner/xulrunner-bin: Could not find one of the dependencies
prelink: /usr/bin/qtdemo: Cannot prelink against non-PIC shared library //usr//lib/opengl/nvidia/lib/libGL.so.1
prelink: /usr/kde/3.5/bin/kpendulum.kss: Cannot prelink against non-PIC shared library //usr//lib/opengl/nvidia/lib/libGL.so.1
prelink: /usr/bin/tcdecode: Cannot prelink against non-PIC shared library /usr/lib/libavcodec.so.52
prelink: /usr/bin/compiz: Cannot prelink against non-PIC shared library //usr//lib/opengl/nvidia/lib/libGL.so.1
prelink: /usr/bin/ffmpeg: Cannot prelink against non-PIC shared library /usr/lib/libavutil.so.49
prelink: /usr/kde/3.5/bin/kwave.kss: Cannot prelink against non-PIC shared library //usr//lib/opengl/nvidia/lib/libGL.so.1
prelink: /usr/kde/3.5/bin/kgravity.kss: Cannot prelink against non-PIC shared library //usr//lib/opengl/nvidia/lib/libGL.so.1
prelink: /usr/kde/3.5/bin/kflux.kss: Cannot prelink against non-PIC shared library //usr//lib/opengl/nvidia/lib/libGL.so.1
prelink: /usr/bin/glxgears: Cannot prelink against non-PIC shared library //usr//lib/opengl/nvidia/lib/libGLcore.so.1
prelink: /usr/kde/3.5/bin/krotation.kss: Cannot prelink against non-PIC shared library //usr//lib/opengl/nvidia/lib/libGL.so.1
prelink: /usr/i686-pc-linux-gnu/gcc-bin/4.1.2/i686-pc-linux-gnu-c++ is no longer hardlink to /usr/i686-pc-linux-gnu/gcc-bin/4.1.2/i686-pc-linux-gnu-g++
prelink: /usr/kde/3.5/bin/kspace.kss: Cannot prelink against non-PIC shared library //usr//lib/opengl/nvidia/lib/libGL.so.1
prelink: /usr/kde/3.5/bin/ksolarwinds.kss: Cannot prelink against non-PIC shared library //usr//lib/opengl/nvidia/lib/libGL.so.1
prelink: /usr/kde/3.5/bin/keuphoria.kss: Cannot prelink against non-PIC shared library //usr//lib/opengl/nvidia/lib/libGL.so.1
prelink: /usr/bin/glxinfo: Cannot prelink against non-PIC shared library //usr//lib/opengl/nvidia/lib/libGL.so.1
prelink: /usr/kde/3.5/bin/kdesktop_lock: Cannot prelink against non-PIC shared library //usr//lib/opengl/nvidia/lib/libGL.so.1
prelink: /usr/kde/3.5/bin/kfountain.kss: Cannot prelink against non-PIC shared library //usr//lib/opengl/nvidia/lib/libGL.so.1

Les différents messages affichés sont des warning et rien de plus.La documentation décrit ces messages http://www.gentoo.org/doc/fr/prelink-howto.xml


REMARQUE :

- Cette commande n'est pas dangereuse cependant, il faut vérifier votre espace disque avant d'utiliser cette commande avec df- h car sinon des executables risques d'être tronqués.

PoweredByGento