Comment mettre à jour la glibc à la version 2.14 dans CentOS 6.5

47

Je souhaite installer le NDK Android sur ma machine CentOS 6.5. Mais lorsque j'ai lancé le programme, il a été dit qu'il avait besoin de glibc 2.14 pour pouvoir fonctionner. Ma CentOS 6.5 n’a que Glibc 2.12 installé. J'ai donc essayé de mettre à jour glibc en:

$ sudo yum update glibc

Mais après cela, j'ai trouvé que la version de la glibc est toujours la 2.12, pas la 2.14.

$ ldd --version
ldd (GNU libc) 2.12

Je pense que glibc 2.14 peut ne pas être disponible sur les dépôts CentOS. Alors, comment puis-je le mettre à jour vers la glibc 2.14 sur CentOS 6.5?

tonga
la source
2
Il est plus facile de mettre à niveau vers CentOS7, qui contient GLibC 2.14, que de mettre à niveau GLibC de 2.12 à 2.14. Voir Skype Call Recorder
eyoung100
@ eyoung100 J'ai toujours besoin de CentOS 6.5 plutôt que de 7. Existe-t-il un moyen simple de mettre à niveau Glibc vers la version 2.14? Merci!
tonga
Sur la base de vos réponses, il semble que la meilleure solution consiste à mettre à niveau CentOS 7 ou à utiliser une version plus ancienne de NDK, qui requiert glibc 2.12. Merci pour vos commentaires.
tonga
1
Vous pouvez également installer un chroot CentOS7 pour exécuter le NDK dans.
derobert

Réponses:

68

Vous ne pouvez pas mettre glibcà jour en Centos 6toute sécurité. Cependant , vous pouvez installer à 2.14côté 2.12facilement, puis l'utiliser pour compiler des projets , etc. Voici comment:

mkdir ~/glibc_install; cd ~/glibc_install 

wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz

tar zxvf glibc-2.14.tar.gz

cd glibc-2.14

mkdir build

cd build

../configure --prefix=/opt/glibc-2.14

make -j4

sudo make install

export LD_LIBRARY_PATH="/opt/glibc-2.14/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
UnitasBrooks
la source
3
Voulez-vous mentionner que le processus de création prend 2,5 heures sur un AWS lent. Peut-être utile pour quelqu'un la prochaine information: instruction ci-dessus corrige le psycopg2problème ImportError: /lib/libc.so.6: version 'GLIBC_2.14'(j'utilise Centos 6.5 et PostgreSQL v 9.6)
TitanFighter
1
Réponse brillante! J'ai suivi cette réponse exactement et cela a fonctionné comme un charme. Merci
thonnor
2
Peut également être utilisé pour les versions ultérieures; remplacez simplement "2.14" par "2.23" ou la version dont vous avez besoin, comme indiqué par: /usr/local/lib/somlelib.so: undefined reference to 'somefunction@GLIBC_2.23'(les derniers chiffres représentent la version). Pour rendre la compilation plus rapide, utilisez make -j8 si vous avez 8 threads sur votre processeur, etc. Le mien est terminé en quelques minutes.
Roel Van de Paar,
Je reste avec relocation error: libc.so.6: symbol _dl_find_dso_for_object, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time referenceaprès la phase d'exportation (en essayant n'importe quelle commande). Quelqu'un peut-il aider? @Roel
belka
1
Merci mec, a travaillé comme prévu CENTOS 6.10. J'ai remplacé cette ligne sudo make installpar make installalors que j'étais root, car mon utilisateur n'était pas dans le fichier sudoers
Accountant م
7

Pour installer glibc 2.14 en parallèle, ajoutez le préfixe de configuration:

tar zxvf glibc-2.14.tar.gz
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/opt/glibc-2.14
make -j4
make install

En suivant ce processus, vous pourrez compiler 2.14 mais vous devrez indiquer au compilateur où rechercher glibc.

Vous trouverez ci-dessous des façons d’exposer la glibc à votre programme.

  1. LD_LIBRARY_PATH = / opt / glibc-2.14 / lib

    exporter LD_LIBRARY_PATH.

    La bibliothèque est exposée pendant votre session de connexion actuelle.

  2. Vous pouvez lier de manière permanente votre nouvelle version de glibc comme ceci, mais veuillez lire l’AVERTISSEMENT ci-dessous:

    ln -sf /opt/glibc-2.14/glibc-2.14.so /lib/libc.so.6.

Depuis libc.so.6 n’est plus qu’un lien symbolique. L'exécution de la commande ci-dessus fera que le lien pointe vers la nouvelle bibliothèque glibc. Cependant, cette étape n'est pas recommandée car de nombreux programmes Linux reposent sur des versions plus anciennes et ne fonctionneront plus.

mikel
la source
+1 pour les détails concernant l'exposition de la bibliothèque
Comptable À compter du
2

Technique alternative commune. Installer GLIBC 2.14 en parallèle (intégrez-le dans le répertoire / opt) Il est ensuite disponible pour les programmes qui en ont besoin sans rompre votre système d'exploitation principal.

BrokenSyntax
la source
7
Comment ferais-tu ceci? Télécharger un rpm et?
rncrtr