Ответы:
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
происходит от динамического л габаритной д эр , система компонент , который загружает библиотеки в динамически подключаемых исполняемые файлы .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
. Извините, у меня нет аргументов. Просто намек.