[Gelistirici] dependency.py
Gökçen Eraslan
gokcen at pardus.org.tr
17 Şub 2009 Sal 14:58:17 EET
On Tuesday 17 February 2009 01:30:18 Murat Senel wrote:
> Zamanı olan varsa ve bakabilirse, sevinirim.
Çok detaylı inceleyemedim ama sanırım sadece ldd çıktısına bakarak bağımlılık
çıkarıyorsun. ldd ne yazık ki düzgün sonuç vermiyor bağımlılık belirlerken,
çünkü örneğin, a, b'ye linklenmiş ve b de c'ye linklenmişse, ldd a, hem b'yi
hem c'yi veriyor sana böylece listendeki bağımlılıklar hem bağımlılıkların hem
de onların bağımlılıkları oluyor.
objdump daha doğru çıktı üretiyor ldd'ye göre, kitaplığın gerçekten
linklendiği kitaplıkları veriyor fakat onun çıktılarından da kitaplıkların
full path'ini alamıyorsun (sırf bu yüzden uludag deposundaki ldd2dep betiğini
objdump kullanacak şekilde değiştirmekten vazgeçmiştim), ayrıca onun için
uğraşman lazım. Bir de, a mesela b'ye linklense de, b'yi kullanmıyor
olabiliyor (2009'da --as-needed kullanarak bunu engelleyeceğiz). a'ya
linklenen ama a'nın kullanmadığı kitaplıkları da bulmak için, "ldd -u"
kullanmak gerekiyor.
Yani özetle, bu işi en iyi yapmanın yolu (bildiğim kadarıyla) "objdump -p"
çıktısındaki kitaplıklardan "ldd -u" çıktısındakileri çıkarmak, sonra
kalanların hangi paketlerden çıktığını bulmak.
--
Gökçen Eraslan
Gelistirici mesaj listesiyle ilgili
daha fazla bilgi