Cara memperbarui glibc ke 2.14 di CentOS 6.5

47

Saya ingin menginstal Android NDK pada mesin CentOS 6.5 saya. Tetapi ketika saya menjalankan program, ia mengatakan itu perlu glibc 2.14 untuk dapat dijalankan. CentOS 6.5 saya hanya menginstal Glibc 2.12. Jadi saya mencoba memperbarui glibc dengan:

$ sudo yum update glibc

Tetapi setelah itu saya menemukan versi glibc masih 2,12, bukan 2,14.

$ ldd --version
ldd (GNU libc) 2.12

Saya pikir glibc 2.14 mungkin tidak tersedia di repositori CentOS. Jadi bagaimana saya bisa memperbaruinya ke glibc 2.14 di CentOS 6.5?

tonga
sumber
2
Lebih mudah meng-upgrade ke CentOS7 yang mengandung GLibC 2.14 daripada meng-upgrade GLibC dari 2.12 ke 2.14. Lihat Skype Call Recorder
eyoung100
@ eyoung100 Saya masih membutuhkan CentOS 6.5 daripada 7. Apakah ada cara mudah untuk meningkatkan Glibc ke 2.14? Terima kasih!
tonga
Berdasarkan jawaban Anda, tampaknya solusi terbaik adalah memutakhirkan ke CentOS 7 atau menggunakan versi NDK yang lebih lama yang membutuhkan glibc 2.12. Terima kasih atas komentar anda
tonga
1
Anda juga dapat menginstal chroot CentOS7 untuk menjalankan NDK.
derobert

Jawaban:

68

Anda tidak dapat memperbarui glibcpada Centos 6aman. Namun Anda dapat menginstal 2.14bersama 2.12dengan mudah, kemudian menggunakannya untuk mengkompilasi proyek dll. Berikut adalah caranya:

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
sumber
3
Ingin menyebutkan, proses builing itu memakan waktu 2,5 jam pada AWS yang lambat. Mungkin bermanfaat bagi seseorang info selanjutnya: instruksi di atas memperbaiki psycopg2masalah ImportError: /lib/libc.so.6: version 'GLIBC_2.14'(saya menggunakan Centos 6.5 dan PostgreSQL v 9.6)
TitanFighter
1
Jawaban yang brilian! Saya mengikuti jawaban ini persis dan itu bekerja seperti pesona. Terima kasih
thonnor
2
Dapat juga digunakan untuk versi yang lebih baru; cukup ubah "2.14" menjadi "2.23" atau versi apa pun yang Anda butuhkan, seperti yang disorot oleh hal-hal seperti: /usr/local/lib/somlelib.so: undefined reference to 'somefunction@GLIBC_2.23'(beberapa digit terakhir adalah versi). Untuk membuat kompilasi lebih cepat, gunakan make -j8 jika Anda memiliki 8 thread pada cpu Anda, dll. Tambang saya selesai dalam beberapa menit.
Roel Van de Paar
Saya pergi dengan 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 referencesetelah fase ekspor (ketika mencoba perintah apa pun). Adakah yang bisa membantu? @Roel
belka
1
Terima kasih kawan, bekerja seperti yang diharapkan CENTOS 6.10. Saya mengganti baris ini sudo make installdengan make installketika saya root, karena pengguna saya tidak ada dalam file sudoers
Akuntan.
7

Untuk menginstal glibc 2.14 secara paralel, tambahkan awalan configure:

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

Setelah proses ini, Anda bisa membangun 2,14 tetapi Anda harus memberi tahu kompiler di mana mencari glibc.

Di bawah ini adalah cara Anda dapat mengekspos glibc ke program Anda.

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

    ekspor LD_LIBRARY_PATH.

    Perpustakaan terbuka selama sesi login Anda saat ini.

  2. Anda dapat secara permanen menautkan versi glibc baru Anda seperti itu, tetapi silakan baca PERINGATAN di bawah ini:

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

Karena libc.so.6 hanyalah tautan simbolis. Menjalankan perintah di atas akan membuat titik tautan menuju pustaka glibc baru. Namun langkah ini tidak disarankan karena ada banyak program di Linux yang bergantung pada versi yang lebih lama dan akan berhenti bekerja.

Mikel
sumber
+1 untuk rincian pengungkapan perpustakaan
Akuntan,
2

Teknik alternatif umum. Menginstal GLIBC 2.14 secara paralel (Intall ke direktori / opt) Kemudian tersedia untuk program yang membutuhkannya tanpa merusak OS inti Anda.

BrokenSyntax
sumber
7
Bagaimana Anda melakukan ini? Unduh satu rpm dan?
rncrtr