2010-05-04 38 views
8

Birden çok Linux dağıtımında çalıştırılabilen bir ikili paket oluşturmaya çalışıyorum. Şu anda Ubuntu 10,04 üzerinde oluşturulmuştur, ancak şu hata ile Ubuntu 8.04 üzerinde başarısız oluyor:En yeni glibc gerektirmeyen yazılımlar oluşturmanın en iyi yolu nedir?

./test: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./test) 
./test: /usr/lib/libstdc.so.6: version `GLIBC_2.11' not found (required by ./test) 

bu sorunu çözmek için tercih edilen yolu nedir? Eski bir glibc'yi yeni bir kutuya kurmanın ve ona karşı inşa etmenin bir yolu var mı yoksa eski bir dağıtım üzerine mi kurmalıyım? Ve eğer eski bir glibc'e karşı inşa edersem, yeni bir glibc üzerinde çalışır mı?

Veya alternatif olarak, sorunu çözmek için yükleyebileceğim bazı kullanışlı derleyici bayrakları veya paketleri var mı?

cevap

5

Bulduğum en iyi çözüm, Debian'ın kararlı çalıştığı bir sanal makine kurmak ve bunun üzerine inşa etmektir. Debian kararlı, onunla oluşturulmuş tüm paketlerin Ubuntu gibi diğer Debian tabanlı dağıtımlarda çalışacak kadar eski. Çeşitli yazılımların sonraki sürümlerinde düzeltilen ancak Debian kararlılığına geri yüklenmemiş kritik olmayan hatalar üzerinde çalışmanız gerekebilir.

+0

Bu, glibc'nin eski bir sürümü üzerinde inşa edilmesinin glibc'nin daha yeni sürümlerinde hala işe yaramaya devam edeceği anlamına mı geliyor? – ZorbaTHut

+0

Bildiğim kadarıyla, evet ... bu şekilde söyleyeyim, henüz yanlış gitmedi. ;-) – ptomato

1

Her yeni dağıtımda çalıştığından emin olmak istiyorsanız, seçmiş olduğunuz bir libC'ye karşı statik olarak bağlantı kurmayı da düşünebilirsiniz. Ancak, yalnızca daha yeni çekirdekler tarafından sağlanan özellikleri (ör. Yeni sistem çağrıları) kullanırsanız yine de sorun yaşarsınız.

İlgili konular