PATH ve LD_LIBRARY_PATH arasındaki fark nedir?


27

Ben arasındaki farkı anlamak bazı zorluklar yaşıyorum PATHve LD_LIBRARY_PATH. Pkg.tcl dosyasına ihtiyaç duyan bir kurulum kurulumum var ve yolunu nereye ekleyeceğimi bilmiyorum: PATHya da öyle olmalı LD_LIBRARY_PATHmı?


Kurulum probleminizle ilgili olarak şahsen üzerine bahse girerim TCLLIBPATH. Üzgünüm, tartışmam yok. Sadece bir ipucu.
Manat çalışması

Yanıtlar:


30

Unix sistemleri, farklı dizinlere yayılmış farklı dosya türleri ile organize olma eğilimindedir. Örneğin, yürütülebilir denilen dizinlerde genellikle bin( /bin, /usr/bin, /usr/local/bin, ...); Tarihsel olarak, binçalıştırılabilir dosyalar ikili dosyalar (makine kodu) olduğundan ikili dosyalar için durdu, ancak komut dosyaları da olabilir. Çalıştırılabilir dosyalar içeren birkaç dizin olduğundan ve anında dizin eklemek ve kaldırmak yararlıdır (örneğin çok çalıştırılabilir bir uygulamayı test etmek için, geçici olarak çalıştırılabilirler için arama yoluna eklersiniz), bunun için bir ortam değişkeni vardır: PATH. Adını vererek bir programı yürüttüğünüzde, kabuk onu PATHdeğişkende belirtilen dizinlerde arar (bu, iki nokta üst üste ayrılmış bir dizin listesidir).

Aynı mekanizma, bazı programların ada göre arayacağı diğer dosya türleri için de geçerlidir. İşte birkaç tipik PATHbenzeri değişken (not verdiğim örnek yolların tam olarak sisteminizde bulacağınız bir şey olmadığını unutmayın, orada sadece bir fikir vermek için var).

  • PATH: çalıştırılabilir (ör. /home/username/bin:/usr/local/bin:/usr/bin:/bin).
  • MANPATH: manuel sayfalar (örn. /usr/local/man:/usr/man).
  • LD_LIBRARY_PATH: Yerel kod kütüphaneleri (Linux üzerinde, bu değişkenin değerine ek olarak, arama yolu tipik içeren /usr/local/lib, /usr/lib, /libve birkaç diğerleri). Adı LDgelen dinamik l oa d er sistem bileşeni, yani içine yükler kütüphaneler dinamik bağlantılı yürütülebilir .
  • PERL5LIB: Perl kütüphaneleri (örneğin /usr/local/lib/site-perl:/usr/lib/site-perl:/usr/lib/perl:/usr/share/perl).
  • PYTHONPATH: Python kütüphaneleri (örneğin /usr/local/lib/python:/usr/lib/python:/usr/lib/python2.6).
  • TCLLIBPATH: TCL kütüphaneleri (örneğin /usr/local/lib/tcltk:/usr/lib/tcltk).

Bu nedenle, kendi pkg.tclbaşına çalışan bir çalıştırılabilir dosya ise, yürütme izinlerini verin ve bir yere bırakın $PATH. TCL programı tarafından yüklenen bir TCL kitaplığıysa, bir yere bırakın $TCLLIBPATH.


23

PATHçalıştırılabilir programların dizinlerini belirlemek içindir. LD_LIBRARY_PATHkütüphanelerin dizinlerini belirlemek için kullanılır.


5
Diğer bakış açısına göre, PATHöncelikle kabuk LD_LIBRARY_PATHtarafından, dinamik yükleyici tarafından kullanılır (genellikle ld-linux.so).
Manat çalışması
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.