CentOS 6.5’te glibc’yi 2.14’e güncelleme


47

CentOS 6.5 makineme Android NDK kurmak istiyorum. Ancak programı çalıştırdığımda, çalıştırılabilmesi için glibc 2.14'e ihtiyaç duyduğu yazıyor. Benim CentOS 6.5 sadece Glibc 2.12 yüklü. Bu yüzden glibc'yi şu şekilde güncellemeye çalıştım:

$ sudo yum update glibc

Fakat bundan sonra glibc versiyonunun 2.14 değil, 2.12 olduğunu gördüm.

$ ldd --version
ldd (GNU libc) 2.12

Bence glibc 2.14, CentOS depolarında bulunmayabilir. Peki, CentOS 6.5'teki glibc 2.14'e nasıl güncelleyebilirim?


2
GLibC 2.14 içeren CentOS7'ye yükseltmek, GLibC'yi 2.12'den 2.14'e yükseltmekten daha kolaydır. Skype Çağrı Kaydedicisine
eyoung100

@ eyoung100 Hala 7 yerine CentOS 6.5’e ihtiyacım var. Glibc’i 2.14’e yükseltmenin kolay bir yolu var mı? Teşekkür!
tonga


Yanıtlarınıza göre, en iyi çözüm ya CentOS 7'ye yükseltmek ya da glibc 2.12 gerektiren eski bir NDK sürümü kullanmak gibi görünüyor. Yorumlarınız için teşekkürler.
tonga

1
NDK'yi çalıştırmak için bir CentOS7 chroot da yükleyebilirsiniz.
derobert

Yanıtlar:


68

Sen güncelleştiremezsiniz glibcüzerinde Centos 6güvenle. Ancak kolayca 2.14birlikte yükleyebilir 2.12, daha sonra projeleri vb. Derlemek için kullanabilirsiniz. İşte:

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
Yapma işleminin yavaş AWS'de 2,5 saat sürdüğünü belirtmek istiyorum Belki bir sonraki bilgi için yararlı olabilir: yukarıdaki talimatlar psycopg2sorunu ImportError: /lib/libc.so.6: version 'GLIBC_2.14'
çözüyor

1
Mükemmel cevap! Bu cevabı tam olarak takip ettim ve bir cazibe gibi çalıştı. Teşekkür ederim
thonnor 21:17

2
Daha sonraki sürümler için de kullanılabilir; basitçe "2.14" i "2.23" olarak veya istediğiniz herhangi bir versiyona çevirerek, aşağıdaki gibi belirtin: /usr/local/lib/somlelib.so: undefined reference to 'somefunction@GLIBC_2.23'(son birkaç rakam versiyondur). Derlemeyi daha hızlı hale getirmek için, cpu'unuzda 8 adet konu varsa make -j8 kullanın. Mine birkaç dakika içinde tamamlandı.
Roel Van de Paar

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 referenceVerme aşamasından sonra bırakıldım (herhangi bir komut denenirken). Biri yardım edebilir mi? @Roel
belka

1
Teşekkürler dostum, beklendiği gibi çalıştı CENTOS 6.10. Bu hattı yerini sudo make installile make installbenim kullanıcı sudoers dosyası değildi çünkü ben kök iken
Muhasebeci م

7

Glibc 2.14'ü paralel olarak kurmak için configure öneki ekleyin:

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

Bu işlemi takiben 2.14 yapabileceksiniz ancak derleyiciye glibc'yi nerede arayacağınızı söylemeniz gerekecek.

Aşağıda glibc'yi programınıza göstermenin yolları vardır.

  1. LD_LIBRARY_PATH = / opt / glibc-2,14 / lib

    LD_LIBRARY_PATH dosyasını dışa aktar.

    Kütüphane mevcut giriş seansınız sırasında ortaya çıkar.

  2. Yeni glibc sürümünüzü bu şekilde kalıcı olarak bağlayabilirsiniz, ancak lütfen aşağıdaki UYARI'yı okuyun:

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

Libc.so.6'dan beri sadece sembolik bir bağlantı var. Yukarıdaki komutu çalıştırmak, yeni glibc kütüphanesine doğru bağlantı noktası yapacaktır. Ancak, Linux'ta eski sürümlere bağlı olan ve çalışmayı durduracak birçok program olduğundan bu adım önerilmez.


Kütüphanesini
sunma

2

Ortak alternatif teknik. GLIBC 2.14'ü paralel olarak yükleme (/ opt dizinine yerleştirin) Ardından, çekirdek işletim sisteminizi bozmadan gerektiren programlarda kullanılabilir.


7
Bunu nasıl yapardın? Bir rpm indirin ve?
rncrtr
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.