[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