Odpowiedzi:
Systemy uniksowe są zwykle zorganizowane z różnymi typami plików rozmieszczonymi w różnych katalogach. Na przykład, pliki wykonywalne są zwykle w katalogach nazywanych bin
( /bin
, /usr/bin
, /usr/local/bin
, ...); historycznie bin
oznaczało binarne, ponieważ pliki wykonywalne są binarne (kod maszynowy), ale mogą istnieć również skrypty. Ponieważ istnieje kilka katalogów zawierających pliki wykonywalne, a przydatne jest dodawanie i usuwanie katalogów w locie (np. W celu przetestowania aplikacji wykonywalnej z wieloma plikami wykonywalnymi, tymczasowo dodajesz ją do ścieżki wyszukiwania plików wykonywalnych), dlatego istnieje zmienna środowiskowa: PATH
. Kiedy wykonujesz program, podając jego nazwę, powłoka sprawdza go w katalogach wymienionych w PATH
zmiennej (jest to lista katalogów oddzielona dwukropkami).
Ten sam mechanizm istnieje w przypadku innych typów plików, które niektóre programy będą wyszukiwać według nazwy. Oto kilka typowych PATH
zmiennych (zauważ, że przykładowe ścieżki, które podaję, nie są dokładnie tym, co znajdziesz w systemie, są tam tylko po to, aby dać pomysł).
PATH
: pliki wykonywalne (np /home/username/bin:/usr/local/bin:/usr/bin:/bin
.).MANPATH
: strony podręcznika (np /usr/local/man:/usr/man
.).LD_LIBRARY_PATH
: Natywne biblioteki kodu (na Linuksie, oprócz wartości tej zmiennej, odnośnika ścieżka zawiera zwykle /usr/local/lib
, /usr/lib
, /lib
i kilka innych). Nazwa LD
pochodzi z dynamicznym l oa d er , komponent system, który ładuje biblioteki w dynamicznie powiązanych plików wykonywalnych .PERL5LIB
: Biblioteki Perla (np /usr/local/lib/site-perl:/usr/lib/site-perl:/usr/lib/perl:/usr/share/perl
.).PYTHONPATH
: Biblioteki Python (np /usr/local/lib/python:/usr/lib/python:/usr/lib/python2.6
.).TCLLIBPATH
: Biblioteki TCL (np /usr/local/lib/tcltk:/usr/lib/tcltk
.).Więc jeśli twój pkg.tcl
jest samodzielnym plikiem wykonywalnym, daj mu uprawnienia do wykonywania i upuść go gdzieś $PATH
. Jeśli jest to biblioteka TCL załadowana przez program TCL, upuść ją gdzieś $TCLLIBPATH
.
PATH
służy do określania katalogów programów wykonywalnych. LD_LIBRARY_PATH
służy do określania katalogów bibliotek.
PATH
jest używany głównie przez powłokę, podczas gdy LD_LIBRARY_PATH
jest używany przez dynamiczny moduł ładujący (zwykle ld-linux.so
).
TCLLIBPATH
. Przepraszam, nie mam żadnych argumentów. Tylko wskazówka.