11
votes

Comment déterminer les versions installées des bibliothèques Glibc?

Je travaille avec un déploiement Linux intégré et utilise une chaîne d'outils de compilateur croisée qui ne compile pas les appels de la fonction de bibliothèque I2C.

Comment puis-je déterminer les versions précises des bibliothèques sur le système afin Que je puisse reconstruire la chaîne d'outils?

Je n'ai pas l'intention de remplacer les bibliothèques déployées, car je sais qu'ils travaillent (y compris I2C), je crois donc avoir besoin de ce qui suit: < / p>

  • Version Binutils
  • Version GCC
  • glibc
  • noyau (pour les en-têtes)

    Je pense que je peux supposer à partir de ce qui suit que la bibliothèque Binutils est la version 2.2.5. Le noyau est modifié pour lequel j'ai la source. xxx


0 commentaires

3 Réponses :


15
votes

pour glibc:

/lib/libc.so.6

sonne peut-être étrange pour exécuter un fichier de sorte, mais doit imprimer des informations de version dans ce cas

pour la version du noyau utilise uname

Pour les BINUTILS L'analyse de la sortie de LD --Version peut donner ce que vous attendez, le même pour GCC --Version . C'est un peu fastidieux mais je ne sais pas d'une autre manière.


5 commentaires

Puisque je connais la version du noyau, je n'ai pas essayé uname , sur mon système, il n'a pas fonctionné. Version me donne l'amour.


Comment une bibliothèque peut-elle aussi être une exécutable?


Ceci est obsolète à cause des mises en page des plus récentes multi-muladateurs.


@Amias pas obsolète sur mon installation Ubuntu 18.04, bien que la bibliothèque ait augmenté quelques versions au cours des 8 dernières années.


Sur My Centos 7 Installation, localiser libc.so renvoie /usr/lib64/libc.so.6 . (C'est un lien symbolique à libc-2.17.so .)



1
votes

Pour connaître la version actuelle installée de GLIBC, veuillez compiler et exécuter le code C suivant.

#include <stdio.h>
#include <gnu/libc-version.h>
int main (void) { puts (gnu_get_libc_version ()); return 0; }


1 commentaires

Sur Fedora 29, /Lib64/LIBC.SO.6 --Version Imprime Bibliothèque de gnu C (GNU LIBC) Version de la version 2.28 .



4
votes

Une réponse plus complète peut être trouvée en exécutant xxx pré>

sur un système récent. Cela vous donnera des résultats comme celui-ci montrant que j'utilise glibc 2.28 ici sur Ubuntu 18.10 P>

/lib/x86_64-linux-gnu/libc-2.28.so
/lib/x86_64-linux-gnu/libcrypt-2.28.so
/lib/i386-linux-gnu/libc-2.28.so
/lib/i386-linux-gnu/libcrypt-2.28.so


0 commentaires