Risposte:
I sistemi Unix tendono ad essere organizzati con diversi tipi di file distribuiti su diverse directory. Ad esempio, gli eseguibili sono di solito in directory chiamate bin
( /bin
, /usr/bin
, /usr/local/bin
, ...); storicamente, bin
stava per binario, perché gli eseguibili sono binari (codice macchina), ma possono esserci anche degli script. Dal momento che ci sono diverse directory che contengono eseguibili ed è utile aggiungere e rimuovere al volo directory (ad esempio per testare un'applicazione multi-eseguibile, aggiungerla temporaneamente al percorso di ricerca degli eseguibili), esiste una variabile d'ambiente per questo: PATH
. Quando si esegue un programma assegnandone il nome, la shell lo cerca nelle directory menzionate nella PATH
variabile (è un elenco di directory separato da due punti).
Lo stesso meccanismo esiste per altri tipi di file che alcuni programmi cercheranno per nome. Ecco alcune PATH
variabili simili a quelle tipiche (nota che i percorsi di esempio che fornisco non sono esattamente ciò che troverai sul tuo sistema, c'è proprio lì per dare un'idea).
PATH
: eseguibili (ad es /home/username/bin:/usr/local/bin:/usr/bin:/bin
.).MANPATH
: pagine di manuale (ad es /usr/local/man:/usr/man
.).LD_LIBRARY_PATH
: Librerie di codice nativo (su Linux, oltre al valore di questa variabile, il percorso di ricerca contiene in genere /usr/local/lib
, /usr/lib
, /lib
e pochi altri). Il nome LD
deriva da Dynamic l o d er , il componente di sistema che carica le librerie in eseguibili collegati dinamicamente .PERL5LIB
: Librerie Perl (ad es /usr/local/lib/site-perl:/usr/lib/site-perl:/usr/lib/perl:/usr/share/perl
.).PYTHONPATH
: Librerie Python (ad es /usr/local/lib/python:/usr/lib/python:/usr/lib/python2.6
.).TCLLIBPATH
: Librerie TCL (ad es /usr/local/lib/tcltk:/usr/lib/tcltk
.).Quindi, se il tuo pkg.tcl
è un eseguibile autonomo, dagli le autorizzazioni di esecuzione e rilascialo da qualche parte $PATH
. Se è una libreria TCL caricata da un programma TCL, rilasciala da qualche parte $TCLLIBPATH
.
PATH
serve per specificare le directory dei programmi eseguibili. LD_LIBRARY_PATH
viene utilizzato per specificare le directory delle librerie.
PATH
viene utilizzato principalmente dalla shell, mentre LD_LIBRARY_PATH
viene utilizzato dal caricatore dinamico (di solito ld-linux.so
).
TCLLIBPATH
. Scusa, non ho discussioni. Solo un suggerimento.