J'installe IRAF
sur une nouvelle machine et lorsque j'essaie de lancer xgterm
, le message d'erreur suivant s'affiche:
xgterm: error while loading shared libraries: libXmu.so.6: cannot open shared object file: No such file or directory
Cependant, le paquet contenant cette bibliothèque, libXmu6
, est à la fois installé et à jour.
Toute aide serait appréciée.
Vous pouvez essayer deux choses: (i) installer le paquetage -dev
de la bibliothèque - par exemple. Sudo apt-get install libxmu-dev
ou (ii) si vous utilisez une installation IRAF 32 bits sur un ordinateur 64 bits, installez la bibliothèque 32 bits, par exemple. Sudo apt-get install libxmu6:i386
Si l'installation du package dev ne fonctionne pas, vous devrez peut-être l'exporter vers la variable LD_LIBRARY_PATH.
Vous pouvez le trouver avec find / -iname libXmu.so.6 -print 2>/dev/null
, dans mon cas c'était dans /usr/lib/x86_64-linux-gnu/libXmu.so.6
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/libXmu.so.6/lib:${LD_LIBRARY_PATH}
NB Si la variable $LD_LIBRARY_PATH
est vide au début, vous devez omettre le lib...
.
Cela n'a pas changé la situation pour moi, et sur ce conseil j'ai lancé Sudo apt-get install ia32-libs
qui fonctionnait, dans une certaine mesure, changeant maintenant mon message d'erreur en
error while loading shared libraries: libXm.so.4: cannot open shared object file: No such file or directory
(c'est-à-dire le numéro 4 et non pas 6)
Ceci peut être installé avec Sudo apt-get install libxm4
, l’emplacement résultant trouvé avec find / -iname libXm.so.4 -print 2>/dev/null
, et ajouté au $LD_LIBRARY_PATH
avec (par exemple, pour mon résultat).
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/libXm.so.4/lib:${LD_LIBRARY_PATH}
Ce qui signifie que mon LD_LIBRARY_PATH
était /usr/lib/x86_64-linux-gnu/libXm.so.4/lib:/usr/lib/x86_64-linux-gnu/libXmu.so.6
Cela n'a pas changé le message d'erreur demandant libXm.so.4 cependant. Pour cette bibliothèque (que je peux voir est là avec Locate ...), j'ai installé OpenMotif (je ne sais pas si cela est nécessaire)
Sudo apt-get install libmotif-dev
Et finalement, la configuration requise pour le package 32 bits fonctionnera avec les bibliothèques libXmu.so.6 après l’installation de ia32-libs
, mais pour libXm.so.4, une déclaration explicite du statut 32 bits est nécessaire à l’aide de liens dans le répertoire/usr /. dossier lib/i386-linx-gnu. C'était clair quand j'ai couru:
/usr/lib/i386-linux-gnu $ ls ../*/libXm*
(montrant notamment uniquement ../i386-linux-gnu/libXmu.so.6
), j'ai donc créé un lien de ce type avec:
Sudo ln -s /usr/lib/x86_64-linux-gnu/libXm.so.4.0.4 /usr/lib/i386-linux-gnu/libXm.so.4
J'ai ensuite réussi à passer au message d'erreur suivant (woohoo!) Mentionné sur autres pages d'aide :
error while loading shared libraries: libXm.so.4: wrong ELF class: ELFCLASS64
... ce qui était étrange puisque c’est là que je viens de mettre le lien ... Cette page suggère une solution de contournement mais je ne peux pas installer libx3motif.deb car AMD64
rompt une dépendance ( et je n'allais pas désinstaller des composants cruciaux comme celui-là).
Cette réponse souligne la nécessité d'avoir le paquet 32 bits plus tôt dans le $LD_LIBRARY_PATH
que les 64 bits.
export LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu/libXm.so.4/lib:/usr/lib/x86_64-linux-gnu/libXmu.so.6.2.0/lib:/usr/lib/x86_64-linux-gnu/libXmu.so.6
Cela n'a rien changé. J'ai essayé de copier le fichier dans le dossier i386
et de rediriger le lien
Sudo cp /usr/lib/x86_64-linux-gnu/libXm.so.4.0.4 /usr/lib/i386-linux-gnu/libXm.so.4.0.4
Sudo ln -fs /usr/lib/i386-linux-gnu/libXm.so.4.0.4 /usr/lib/i386-linux-gnu/libXm.so.4
(L’indicateur -f
force le reciblage, c’est-à-dire que vous n’aurez pas à rm
ni à refaire)
J'ai lutté avec cela pendant un peu de temps (je ne savais pas trop quelle était la goutte d'eau qui restait) jusqu'à ce que cela réussisse dans mon .bashrc:
export LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu/libXm.so.4/lib:/usr/lib/x86_64-linux-gnu/libXmu.so.6.2.0/lib:/usr/lib/x86_64-linux-gnu/libXmu.so.6
Donc, cela prouve que vous n'avez pas besoin de packages 32 bits installés, il vous suffit de pointer des liens symboliques dans le dossier lib 32 bits vers les packages 64 bits ... Désolé pour le TMI mais juste pourrait être utile pour quelqu'un coincé à l'avenir