Steve Schwartz wrote on texhax:
The alternative to worrying about permissions, running mktexlsr, and which partitions to put things in (so personal .sty’s and such won’t get lost when you upgrade your system) is to put them wherever you like, e.g., in a directory called LATEX in your home space (or wherever) and use the TEXINPUTS environment variable to tell your tex installation where to look for things. My .cshrc sets this environment variable as
setenv TEXINPUTS .:/usr/lib/latex2html/texinputs:/home/sjs/SJSLATEX//:
where the trailing “” descends recursively down my personal directory and the trailing “:” ensures the standard distribution is picked up. Dropping .sty files, or package folders, into SJSLATEX makes them instantly available to latex. I guess latex searches down this set of paths in the order shown, and quirky things can happen if there are multiple occurences of packages which aren’t identical, but your log file will tell you where latex found each package you call out in your source.