Відповіді:
Системи Unix, як правило, організовуються з різними типами файлів, що поширюються в різних каталогах. Наприклад, виконувані файли зазвичай знаходяться в каталогах , званих bin
( /bin
, /usr/bin
, /usr/local/bin
...); історично bin
розраховували на бінарне, тому що виконувані файли - це двійкові файли (машинний код), але можуть бути і сценарії. Оскільки існує декілька каталогів, які містять виконувані файли, і корисно додавати та видаляти каталоги на льоту (наприклад, для тестування багатовикористовуваного додатку, ви тимчасово додаєте його до шляху пошуку виконуваних файлів), для цього є середовище змінної: PATH
. Коли ви виконуєте програму, даючи її ім'я, оболонка шукає її в каталогах, згаданих у PATH
змінній (це список розділених двокрапкою).
Той самий механізм існує для інших типів файлів, які якась програма збирається шукати по імені. Ось декілька типово PATH
подібних змінних (зауважте, що приклади контурів, які я даю, не є саме тим, що ви знайдете у вашій системі, там "просто там, щоб дати уявлення".
PATH
: виконувані файли (наприклад /home/username/bin:/usr/local/bin:/usr/bin:/bin
).MANPATH
: сторінки керівництва (наприклад /usr/local/man:/usr/man
).LD_LIBRARY_PATH
: Рідний бібліотеки коду (на Linux, на додаток до значення цієї змінної, пошуку шляху зазвичай містить /usr/local/lib
, /usr/lib
, /lib
і деякі інші). Назва LD
походить від динамічного l oa d er , системного компонента, який завантажує бібліотеки у динамічно пов'язані виконувані файли .PERL5LIB
: Бібліотеки Perl (наприклад /usr/local/lib/site-perl:/usr/lib/site-perl:/usr/lib/perl:/usr/share/perl
).PYTHONPATH
: Бібліотеки Python (наприклад, /usr/local/lib/python:/usr/lib/python:/usr/lib/python2.6
).TCLLIBPATH
: Бібліотеки TCL (наприклад /usr/local/lib/tcltk:/usr/lib/tcltk
).Тож якщо ваш pkg.tcl
автономний виконуваний файл, дайте йому дозволи на виконання та опустіть його кудись $PATH
. Якщо це бібліотека TCL, завантажена програмою TCL, киньте її десь $TCLLIBPATH
.
PATH
призначений для визначення каталогів виконуваних програм. LD_LIBRARY_PATH
використовується для вказівки каталогів бібліотек.
PATH
використовується в основному оболонкою, тоді LD_LIBRARY_PATH
як використовується динамічним навантажувачем (як правило ld-linux.so
).
TCLLIBPATH
. Вибачте, у мене немає аргументів. Просто натяк.