diff options
Diffstat (limited to 'Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-privinst.html')
-rw-r--r-- | Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-privinst.html | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-privinst.html b/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-privinst.html new file mode 100644 index 00000000000..3cbdc3ec470 --- /dev/null +++ b/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-privinst.html @@ -0,0 +1,122 @@ +<head> +<title>UK TeX FAQ -- question label privinst</title> +</head><body> +<h3>“Private” installations of files</h3> +<p/>It sometimes happens that you need a new version of some macro package +or font, but that the machine you use is maintained by someone who’s +unwilling to update and won’t give you privileges to do the job +yourself. A <a href="FAQ-tempinst.html">“temporary” installation</a> is +sometimes the correct approach, but if there’s the slightest chance +that the installation will be needed on more than one project, +temporary installations aren’t right. +<p/>In circumstances where you have plenty of quota on backed-up media, or +adequate local scratch space, the correct approach is to create a +private installation of (La)TeX which includes the new stuff you +need; this is the ideal, but is not generally possible. +<p/>So, since you can’t install into the public <code>texmf</code> tree, you +have to install into a <i>texmf</i> tree of your own; fortunately, the +TDS standard allows for this, and modern distributions allow +you to do it. The most modern distributions refer to the tree as +<code>$TEXMFHOME</code>, but it used to be called <code>$HOMETEXMF</code>; +so to check that your TeX system does indeed support the mechanism +you should start with +<pre> +kpsewhich -expand-var "\$TEXMFHOME" +</pre> +<p/>If you can confirm that the technique does indeed work, install your +new package (or whatever) in the <a href="FAQ-install-where.html">correct place</a> +in a tree based on <i>$HOME/texmf</i>, and generate an index of that +tree +<blockquote> +<pre> +texhash $HOME/texmf +</pre> +</blockquote><p> +(the argument specifies which tree you are indexing: it’s necessary +since you don’t, by hypothesis, have access to the main tree, and +<i>texhash</i> without the argument would try to write the main +tree. +<p/>There are two wrinkles to this simple formula: first, the installation +you’re using may <em>not</em> define a home TEXMF directory, and second, +there may be some obstruction to using <i>$HOME/texmf</i> as the +default name. In either case, a good solution is to have your own +<i>texmf.cnf</i> — an idea that sounds more frightening that it +actually is. The installation’s existing file may be located with the +command: +<blockquote> +<pre> +kpsewhich texmf.cnf +</pre> +</blockquote><p> +Take a copy of the file and put it into a directory of your own; this +could be any directory, but an obvious choice is the <i>web2c</i> +directory of the tree you want to create, i.e., +<i>$HOME/texmf/web2c</i> or the like. Make an environment variable to +point to this directory: +<blockquote> +<pre> +TEXMFCNF=$HOME/texmf/web2c +export TEXMFCNF +</pre> +</blockquote><p> +(for a Bourne shell style system), or +<blockquote> +<pre> +setenv TEXMFCNF $HOME/texmf/web2c +</pre> +</blockquote><p> +(for a C-shell style system). Now edit the copy of <i>texmf.cnf</i> +<p/>There will be a line in the existing file that defines the tree where +everything searches; the simplest form of the line is: +<blockquote> +<pre> +TEXMF = !!$TEXMFMAIN +</pre> +</blockquote><p> +but, there are likely to be several alternative settings behind +comment markers (“<code>%</code>”), and the person who +installed your system may have left them there. Whatever, you need to +modify the line that’s in effect: change the above to three lines: +<blockquote> +<pre> +HOMETEXMF = $HOME/texmf +TEXMF = {$HOMETEXMF,!!$TEXMFMAIN} +% TEXMF = !!$TEXMFMAIN +</pre> +</blockquote><p> +the important point being that <code>$HOMETEXMF</code> must come before +whatever was there before, inside the braces. For example, if the +original was +<blockquote> +<pre> +TEXMF = {!!$LOCALTEXMF,!!$TEXMFMAIN} +</pre> +</blockquote><p> +it should be converted to: +<blockquote> + +<pre> +HOMETEXMF = $HOME/texmf +TEXMF = {$HOMETEXMF,!!$LOCALTEXMF,!!$TEXMFMAIN} +% TEXMF = {!!$LOCALTEXMF,!!$TEXMFMAIN} +</pre> +</blockquote><p> +(retaining the original, as a comment, is merely an aide-memoir in +case you need to make another change, later). The <code>!!</code> signs +tell the file-searching library that it should insist on a +<i>texhash</i>-ed directory tree; if you can count on yourself +remembering to run <i>texhash</i> on your new tree every time you +change it, then it’s worth adding the marks to your tree: +<blockquote> + +<pre> +TEXMF = {!!$HOMETEXMF,!!$LOCALTEXMF,!!$TEXMFMAIN} +</pre> +</blockquote><p> +as this will make (La)TeX find its files marginally faster. +<p/>Having made all these changes, (La)TeX should “just use” files in +your new tree, in preference to anything in the main tree — you can +use it for updates to packages in the main tree, as well as for +installing new versions of things. +<p/><p>This question on the Web: <a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=privinst">http://www.tex.ac.uk/cgi-bin/texfaq2html?label=privinst</a> +</body> |