Bir ortamda LD_LIBRARY_PATH değişkeninin eksik olması normal mi?


15

Tesadüfen benim Debian Jessie üzerinde hiçbir LD_LIBRARY_PATHdeğişken (tam printenv | grep LDolarak linker ile ilgili hiçbir şey echo "$LD_LIBRARY_PATH"gösterir ve aynı zamanda hiçbir şey gösterir) olduğunu bulduk .

Bu, x terminal emülatöründe ( setgid nedeniyle temizleyebilir ) ve temel terminalde ( Ctrl+Alt+F1) söz konusudur .

Debian'ın bir şekilde engelleyebilmesi için LD_LIBRARY_PATH kötü kabul edilebileceğini biliyorum , ancak diğer taraftan /etc/ld.so.conf.d/eklenecek bazı dizinler içeren birkaç dosya var LD_LIBRARY_PATH. Benim rc dosyaları (ben biliyorum) hiçbiri ile karışıklık LD_LIBRARY_PATH.

Neden bir LD_LIBRARY_PATHdeğişken görmüyorum ?

Yanıtlar:


22

Evet, açık bir şeyiniz olmaması normaldir LD_LIBRARY_PATH. Ayrıca ldconfig (8) ve ld-linux (8) ve rpath ile ilgili bilgileri de okuyun . ldconfigGüncellemelere dikkat edin /etc/ld.so.cache, değil LD_LIBRARY_PATH. Bazen bir çalıştırılabilir dosyanın rpath'ını , bağlantı sırasında geçirilen -Wl,-rpath,dizin ile açıkça ayarlarsınız gcc.

Bir ihtiyacınız varsa LD_LIBRARY_PATH(ancak muhtemelen yapmamalısınız), kendiniz ayarlayın (örn. İçinde ~/.bashrc).

Eğer, yapabilirsin mesela sistem genelinde ayarları gerekiyorsa eklemeyi düşünün /usr/local/lib/içinde /etc/ld.so.confve çalıştırmak ldconfigorada her kütüphanenin kurulumdan sonra.

AFAIK $LD_LIBRARY_PATH, yürütme işleminden sonra yalnızca dinamik bağlayıcı ld-linux.so(ve onu kullanan dlopen (3)) tarafından kullanılır (2) . Ayrıca bkz. Ldd (1) .

Daha fazla bilgi için Drepper'ın Paylaşılan Kütüphaneleri Nasıl Yazacağını okuyun .


Bu benim hatamdı, LD_LIBRARY_PATH koşmanın ürünü olsa da ldconfig. Bu arada içindeki dosyalar ile birlikte ldconfig girdisidir/etc/ld.so.conf .
calavera.info

1
Benim duygu olduğunu ldconfigkullanmayın $LD_LIBRARY_PATH(sadece az kullanılan ld-linux.sozaman)
Basile Starynkevitch

3
@ calavera.info ikisi de değil. Dinamik bağlayıcı çalışma zamanında çıktısıyla LD_LIBRARY_PATH birlikte kullanır ldconfig. ldconfigne kullanır ne de değiştirir LD_LIBRARY_PATH.
Ocaklar

Şimdi, muhtemelen "sınıf yolu" dinamik bağlantı tek yapılandırma sanal olarak Java çok fazla zaman harcayarak, tamamen berbat olduğunu görebilirsiniz. Şimdi her şey net görünüyor, çok teşekkürler.
calavera.info
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.