Come aggiornare glibc a 2.14 in CentOS 6.5


47

Voglio installare Android NDK sul mio computer CentOS 6.5. Ma quando ho eseguito il programma, si dice che ha bisogno di glibc 2.14 per poter funzionare. Il mio CentOS 6.5 ha solo Glibc 2.12 installato. Quindi ho provato ad aggiornare glibc tramite:

$ sudo yum update glibc

Ma dopo ho scoperto che la versione di glibc è ancora 2.12, non 2.14.

$ ldd --version
ldd (GNU libc) 2.12

Penso che glibc 2.14 potrebbe non essere disponibile sui repository CentOS. Quindi, come posso aggiornarlo a glibc 2.14 su CentOS 6.5?


2
È più semplice aggiornare a CentOS7 che contiene GLibC 2.14 che aggiornare GLibC da 2.12 a 2.14. Vedi Skype Call Recorder
eyoung100

@ eyoung100 Ho ancora bisogno di CentOS 6.5 anziché 7. Esiste un modo semplice per aggiornare Glibc a 2.14? Grazie!
tonga,


Sulla base delle tue risposte, sembra che la soluzione migliore sarà l'aggiornamento a CentOS 7 o l'utilizzo di una versione precedente di NDK che richiede glibc 2.12. Grazie per i tuoi commenti
tonga,

1
Puoi anche installare un chroot CentOS7 per eseguire l'NDK.
derobert

Risposte:


68

Non è possibile eseguire l'aggiornamento glibcin Centos 6sicurezza. Tuttavia puoi installarlo a 2.14fianco 2.12facilmente, quindi usarlo per compilare progetti ecc. Ecco come:

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}"

3
Voglio menzionare che il processo di costruzione richiede 2,5 ore con AWS lento. Forse utile per qualcuno le informazioni seguenti: istruzione sopra risolve psycopg2problema ImportError: /lib/libc.so.6: version 'GLIBC_2.14'(io uso Centos 6.5 e PostgreSQL v 9.6)
TitanFighter

1
Risposta brillante! Ho seguito esattamente questa risposta e ha funzionato come un fascino. Grazie
thonnor il

2
Può essere utilizzato anche per le versioni successive; cambia semplicemente "2.14" in "2.23" o qualsiasi versione di cui hai bisogno, come evidenziato da cose come: /usr/local/lib/somlelib.so: undefined reference to 'somefunction@GLIBC_2.23'(le ultime cifre sono la versione). Per rendere la compilazione più veloce, usa make -j8 se hai 8 thread sulla tua CPU ecc. Il mio è completato in pochi minuti.
Roel Van de Paar,

Sono rimasto con 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 referencedopo la fase di esportazione (quando provo qualsiasi comando). Qualcuno può aiutare? @Roel
belka

1
Grazie amico, ha funzionato come previsto CENTOS 6.10. Ho sostituito questa riga sudo make installcon make installmentre ero root, perché il mio utente non era nel file sudoers
Accountant م

7

Per installare glibc 2.14 in parallelo, aggiungi il prefisso di configurazione:

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

Seguendo questo processo, sarai in grado di costruire 2.14 ma dovrai dire al compilatore dove cercare glibc.

Di seguito sono riportati i modi in cui puoi esporre glibc al tuo programma.

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

    esporta LD_LIBRARY_PATH.

    La libreria è esposta durante la sessione di accesso corrente.

  2. È possibile collegare in modo permanente la nuova versione di glibc in questo modo, ma si prega di leggere l'avvertenza di seguito:

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

Poiché libc.so.6 è solo un collegamento simbolico. L'esecuzione del comando sopra renderà il collegamento verso la nuova libreria glibc. Tuttavia questo passaggio non è raccomandato poiché ci sono molti programmi in Linux che dipendono da versioni precedenti e smetteranno di funzionare.


+1 per i dettagli sull'esposizione della biblioteca
Contabile م

2

Tecnica alternativa comune. Installazione di GLIBC 2.14 in parallelo (installarlo nella directory / opt) Quindi è disponibile per i programmi che lo richiedono senza rompere il sistema operativo principale.


7
come lo faresti? Scarica un numero di giri e?
rncrtr
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.