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.