Kendi ld.so.cache dosyamı kullanabilir miyim?


14

ldconfig iki ilginç seçeneği vardır:

-f conf
      Use conf instead of /etc/ld.so.conf.
-C cache
      Use cache instead of /etc/ld.so.cache.

/etc/ld.so.confKendi ana dizinime kopyalamayı denedim ve yerel kütüphanelerim /home/syockit/local/usr/libgibi yolları içerecek şekilde düzenledim .

ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache

ve daha sonra kütüphanelerin önbelleğe alındığını doğrulamak için,

ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache -p | less

ve sistem kütüphaneleri de dahil olmak üzere tüm kütüphanelerimi de içeriyor.

Şimdi, varsayılan bağlayıcının bu ikisini kullanmasını istiyorum. Ancak man ld.so, özel .confveya kullanabileceğinizden bahsetmiyorum .cache. Peki ldconfigo zaman yukarıdaki iki seçeneğin amacı nedir?

Yanıtlar:


9

Aynı şeyi başka şekillerde de yapabilmenize rağmen, sorunuzun cevabının hayır olduğunu düşünüyorum.

adam ld.so, özel .conf veya .cache kullanmak için hiçbir söz görmüyorum

Doğru, ama $LD_LIBRARY_PATHve --library-pathdaha genel olarak yararlı olmaktan bahsediliyor .

ldconfigo zaman yukarıdaki iki seçeneğin anlamı nedir?

Böylece sistemin üzerine yazmadan ve sistem komutlarını kullanmak zorunda kalmadan bir önbellek oluşturabilirsiniz.


... sadece onun için mi? Yoksa sistem adli tıp için mi?
syockit

1
Bir sistem görüntüsü veya bir chroot ortamı, vb. Olabilir
goldilocks

5

/etc/ld.so.conf(dinamik yükleyici) ldconfigtarafından değil , yalnızca (önbellek oluşturma programı) tarafından okunur ld.so. Sistem varsayılanından farklı bir önbellek oluşturmak istiyorsanız yapılandırma dosyasının konumunu değiştirebilirsiniz.

/etc/ld.so.cachetarafından ld.sookunuyor ve farklı bir konumdan okunmasını sağlayamıyorsunuz. Bununla birlikte, farklı bir çıkış konumu iletmek yararlı olabilir ldconfig. En yaygın kullanım durumu muhtemelen chroot ortamlarıdır. Sen kullanabilirsiniz ldconfig -r /some/rootçalıştırmak için ldconfigalternatif bir kök ve (kök o içini veya dışını) istediğiniz yere çıktı koydu. Çıktıyı adresinde yayınlamanız /some/root/etc/ld.so.cacheveya daha sonra buraya kopyalamanız gerekir. Örneğin ldconfig, imtiyazsız bir kullanıcı olarak (yazamayanlar /etc/ld.so.cache) çalıştırmak ve daha sonra dosyayı daha sonra yerine taşımak istiyorsanız, oldukça belirsiz başka kullanım durumları vardır .

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.