Hesaplama kümemiz, eski bir Çekirdek (2.6.18) ve tabii ki eski kütüphaneler ve ikili dosyalar ile CentOS'un çok eski bir sürümünü çalıştırır. Her şeyi güncellemek tüm düğümlerde çok fazla çalışma gerektirdiğinden, bu bir seçenek değildir.
Derleme ve (ve / veya ) C++11
yeni sürümleri gerektiren ve bu nedenle yeni bir program kullanmaya çalışıyorum . Sistemle uğraşmak istemediğim için, bunu bazı yerel dizin ağacında root olmayan bir kullanıcı olarak yapmak istiyorum.gcc
clang
Sorun, makinelerde mevcut olandan daha gcc
yeni bir şey gerektirmesidir glibc
. Bu nedenle, muhtemelen burada açıklandığı gibi, glibc
yerel lib/
ağacımda ayrı, daha yeni bir sürümünü korumam gerekiyor .
Kaybolduğum yerde, yerel kütüphanelerimin gerekli tüm ikili dosyalara, yani gcc
, g++
vs. yollarını nasıl "sabit kodlayacağım" ? LD_LIBRARY_PATH değerini yerel ağacıma ayarlamak lib/
, tüm sistem ikili dosyalarının artık çalışmamasına ( ELF file OS ABI invalid
) neden olur çünkü yeni libm.so
/ dosyamı libc.so
derlenmemiş olanları kullanmak istiyorlar .
Yani, bunu tamamlamayı: yeni, yerel kalkınma yığınını (içeren korumak için doğru yolu nedir glibc
, gcc
root olarak karıştırmasını olmadan eski sisteme paralel olarak vs.)?
Bir yan soru olarak: LD_LIBRARY_PATH ayarı ayrı olduğunda SE'nin her yerinde bir çözüm olarak yayınlanır glibc
. Benim için, herhangi bir sistem ikili (gibi ls
) yürütmeye çalıştığınızda yukarıdaki hatalara neden olur . Nasıl olur? Yanlış bir şey mi yaptım yoksa amaçlanan davranış bu mu?