Star Office et glibc 2.1 Par Laurent Moineau (avec la participation de Bernard Delechamp) Star Office ne fonctionne pas automatiquement avec la nouvelle version de la librairie C (glibc-2.1). Quelques adaptations sont nécessaires. Cette solution permet de faire fonctionner Star Office (déjà installé) après la mise à jour des librairies C. Attention : cette "solution" présuppose que SO fonctionnait déjà normalement avant le passage en glibc-2.1 Donc, ça marche pour ceux qui font une mise à jour de leur librairie C et/ou qui passent en RH 6.0. Mais pas pour ceux qui installent RH 6.0 et qui n'ont pas déjà SO sur leur système. Le problème est que le programme setup de SO décompacte et assemble des fichiers qui font explicitement référence à : /lib/ld-linux.so.2 Linux : 2.2.6 Distribution : RedHat 5.2 1) Copier les fichiers de la librairie C 2.07 (livrés avec Star Office) dans un autre répertoire (ex : /usr/local/lib/glibc-2.07). 2) Installer cette version du script 'soffice' Adaptez le contenu des variables LD_LIBRARY_PATH et sd_inst : =-=-=-=-=- #!/bin/sh # # StarOffice startup script # (c) 1997, Star Division GmbH # Adaptation : Laurent Moineau #STAR_PROFILE_LOCKING_DISABLED=1 #export STAR_PROFILE_LOCKING_DISABLED sd_cwd=`pwd` # locate StarOffice installation directory and binary name sd_inst=/usr/local/Office50 cd $sd_inst/bin sd_binary=soffice.bin # change back directory cd "$sd_cwd" sd_fonts=$sd_inst/fonts sd_platform=`uname -s` # set java environment variables THREADS_TYPE=native_threads JAVA_HOME=$sd_inst/jre1.1.6 CLASSPATH=$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/i18n.jar CLASSPATH=$JAVA_HOME/classes:$JAVA_HOME/lib/classes.zip:$CLASSPATH LD_LIBRARY_PATH=$sd_inst/lib:/usr/local/lib/glibc-2.0.7 export LD_LIBRARY_PATH # misc. environment variables SAL_FONTPATH=$sd_fonts/type1:$sd_fonts/75dpi XPPATH=$sd_inst/xp3 unset XENVIRONMENT export THREADS_TYPE JAVA_HOME CLASSPATH SAL_FONTPATH XPPATH PATH=/usr/local/Office50/bin:$PATH export PATH # execute soffice binary # there is a bug in solaris sh that prevents the use of "$@" # because it cannot cope with spaces in directory names exec $sd_inst/bin/$sd_binary "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" -=-=-=-=-= 3) Modifier le binaire soffice.bin (ici /opt/Office50/bin/soffice.bin) : cd /opt/Office50/bin perl -pi -e 's/ld-linux.so.2/ld_linux.so.2/g' soffice.bin Explication : Le chargeur ld-linux.so.2 sera remplacé par ld_linux.so.2 ("_ "à la place de "-") Bernard Delechamp suggère de modifier avec Perl l'ensemble des .bin de SO. Donc : =-=-=-=-=- perl -pi -e 's/ld-linux.so.2/ld_linux.so.2/g' *.bin au lieu de : perl -pi -e 's/ld-linux.so.2/ld_linux.so.2/g' soffice.bin -=-=-=-=-= 4) Création d'un lien symbolique de : /usr/local/lib/glibc-2.07/ld-linux.so.2 vers : /lib/ld_linux.so.2 Donc : cd /lib ln -s /usr/local/lib/glibc-2.07/ld-linux.so.2 ld_linux.so.2 Star Office sera donc chargée par le fichier /usr/local/lib/glibc-2.07/ld-linux.so.2 Tout fonctionne correctement chez moi : $ rpm -qf /lib/ld-linux.so.2 glibc-2.1-0.990311 $ ls -l /lib/ld*.so.2 lrwxrwxrwx 1 root root 11 mar 26 09:40 /lib/ld-linux.so.2 -> ld-2.1.1.so lrwxrwxrwx 1 root root 40 avr 29 16:16 /lib/ld_linux.so.2 -> /usr/local/lib/glibc-2.0.7/ld-linux.so.2 Notes : 1) Impression A priori, l'impression ne fonctionne pas correctement : "Je n'ai pas d'imprimante, mais lorsque j'essaye d'imprimer dans un fichier (manip que je pratiquait avant sans aucun problème), aucun fichier n'est créé et j'obtient l'erreur suivante sur la console : sh: /usr/local/lib/glibc2/libc.so.6: no version information available (required by sh) sh: error in loading shared libraries: /usr/local/lib/glibc2/libc.so.6: undefined symbol: _dl_global_scope_end " Message de Sebastien Ailleret (sebastien.ailleret@polytechnique.org) Ce qui est normal puisque l'impression fait un appel au shell. Laurent Moineau Ingénieur système UFR de Math-Info Université Paris V