[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
howtos:software:native_texlive_integration [2012/11/30 17:15 (UTC)] – Minor syntax fix vaporseb | howtos:software:native_texlive_integration [2019/02/21 11:43 (UTC)] (current) – removed markand | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | <!-- Add your text below. We strongly advise to start with a Headline (see button bar above). --> | ||
- | ====== The native TeX Live integration ====== | ||
- | Tex Live is nowadays the last maintained TeX distribution. Due to its size, | ||
- | it is not provided in the Slackware' | ||
- | (most of?) people use the dedicated SlackBuild from | ||
- | [[http:// | ||
- | monolithic package. | ||
- | |||
- | Of course, this solution is a good one, as everybody will then get a | ||
- | perfectly integrated package, able to feed far more needs than you would | ||
- | look for. Nevertheless, | ||
- | it's huge, //really// huge, easily more than a whole customized system. | ||
- | Second, it's not flexible: once it's installed, you can't update its | ||
- | contents, which means you are stuck with the potential bugs you may | ||
- | encounter until the next major release, possibly for a whole year. | ||
- | |||
- | That's why this tutorial will try to show you how to obtain a more | ||
- | updatable and customizable installation, | ||
- | distribution. The idea is to put it in its dedicated directory, then manage | ||
- | it with its own tools. Of course it will not be as proper as an orthodox | ||
- | lovely cooked package, but, we will see, not as dirty as it sounds first. | ||
- | Let me try to convince you. ;) | ||
- | |||
- | ===== Prepare the TeX Live sanctuary ===== | ||
- | |||
- | Here, we will make a place for the future TeX Live installation. The first | ||
- | thing we need is someone to manage it, a user which will be the only one | ||
- | to deal with the TeX package repositories. We could of course use '' | ||
- | for this, but this is not a good idea, because granting the right to write | ||
- | everywhere to a third party system is not secure at all. That's why we'll | ||
- | create a dedicated system user (ie. a user without any shell to login): | ||
- | |||
- | < | ||
- | |||
- | Right. Now, we make the unique place where our new '' | ||
- | allowed to write (YYYY refers to the TeX Live's version, which is the year | ||
- | each one is released, replace it with the one you aim): | ||
- | |||
- | < | ||
- | # chown tluser: | ||
- | # ln -sf texlive-YYYY / | ||
- | |||
- | The last command creates a generic symlink, which will be useful when | ||
- | upgrading the installation, | ||
- | beside the new. | ||
- | |||
- | Installed here though, our TeX Live will be almost useless, because no one will | ||
- | have it in his '' | ||
- | ''/ | ||
- | |||
- | <file bash texlive.sh># | ||
- | if [ ! "$(id -u)" = " | ||
- | PATH=$(echo $PATH | sed ' | ||
- | export PATH | ||
- | fi | ||
- | </ | ||
- | |||
- | <file bash texlive.csh># | ||
- | if ( `id -u` != " | ||
- | setenv PATH `echo $PATH | sed ' | ||
- | endif | ||
- | </ | ||
- | |||
- | As you can see, in both we insert the new directory at the end of the | ||
- | '' | ||
- | the ones shipped by the TeX live distribution. | ||
- | |||
- | You've maybe also noticed this addition won't be made to the '' | ||
- | '' | ||
- | execute these binaries, we want to use him only to administer our TeX Live | ||
- | installation. More precisely, we want him to use the '' | ||
- | perform this. That's why the only thing '' | ||
- | wrapper for '' | ||
- | |||
- | <file bash tlmgr># | ||
- | |||
- | if [ $(id -u) -ne 0 ]; then | ||
- | echo "(E) Only root can use this script." | ||
- | exit 1 | ||
- | fi | ||
- | |||
- | # tluser must use the TeX Live binaries rather than the system' | ||
- | export PATH=/ | ||
- | exec sudo -u tluser tlmgr " | ||
- | </ | ||
- | |||
- | We put it in ''/ | ||
- | |||
- | < | ||
- | |||
- | This completes the last step to setup our sanctuary. Now let's see how to | ||
- | get the lion into it. | ||
- | |||
- | ===== Install the native TeX Live ===== | ||
- | |||
- | As you probably don't plan to install all of its components, it is better | ||
- | to perform a network installation. | ||
- | [[http:// | ||
- | installer tarball]], untar it, enter the directory and run it **as | ||
- | '' | ||
- | |||
- | < | ||
- | $ cd / | ||
- | $ su | ||
- | Password: | ||
- | # sudo -u tluser ./ | ||
- | </ | ||
- | |||
- | A text menu will be displayed, providing configuration items you select by | ||
- | passing letters or numbers. The only required setting is the | ||
- | final installation directory: enter the '' | ||
- | specify our sanctuary (''/ | ||
- | the cook! Personally, I select the basic scheme in '' | ||
- | deselect all the languages except mine in '' | ||
- | disable source and doc tree installation in '' | ||
- | installed the few packages and fonts I need over this, I get a ~80M big TeX | ||
- | Live installation. If you nevertheless prefer a more complete | ||
- | thing, you can pick up in '' | ||
- | teTeX historically provided by Slackware. Once you are done, order to | ||
- | '' | ||
- | |||
- | |||
- | ===== Manage the native TeX Live ===== | ||
- | |||
- | It is time to learn a little bit more about '' | ||
- | Manager//. This section is just a kick-starter explaining how to perform | ||
- | the more common tasks, though. To get a complete description, | ||
- | < | ||
- | |||
- | The first thing you may want to have is a list of the installed | ||
- | packages. Try: | ||
- | |||
- | < | ||
- | |||
- | To get an extension you miss, first identify the package it belongs to | ||
- | (here we look for the '' | ||
- | |||
- | < | ||
- | tlmgr: package repository http://... | ||
- | context-fullpage: | ||
- | texmf-dist/ | ||
- | texmf-dist/ | ||
- | texmf-dist/ | ||
- | texmf-dist/ | ||
- | texmf-dist/ | ||
- | context-gnuplot: | ||
- | texmf-dist/ | ||
- | texmf-dist/ | ||
- | preprint: | ||
- | texmf-dist/ | ||
- | texmf-dist/ | ||
- | texmf-dist/ | ||
- | texmf-dist/ | ||
- | texmf-dist/ | ||
- | </ | ||
- | |||
- | Then, once you've found (in our example, we need the '' | ||
- | install it (remember you have to be '' | ||
- | |||
- | < | ||
- | |||
- | To make a general update, first check for the potential ones: | ||
- | |||
- | < | ||
- | |||
- | If there are some, order to first update '' | ||
- | better), then to perform the general updating of the packages: | ||
- | |||
- | < | ||
- | |||
- | In the case you don't want to update all the packages, replace the | ||
- | ''< | ||
- | a package is trivially done with: | ||
- | |||
- | < | ||
- | |||
- | As you can see, there' | ||
- | Live installation, | ||
- | done. | ||
- | |||
- | ===== Okay, okay, you've almost convinced me, but... I definitively want a package! ===== | ||
- | |||
- | Well, well. Let's rather call it a // | ||
- | for you, to perform quick re-installations (keep in mind it doesn' | ||
- | sense to distribute it as long as it ships '' | ||
- | rigourously followed the instructions given all along this tutorial, here | ||
- | is a '' | ||
- | |||
- | <file bash tlshot># | ||
- | # | ||
- | # TLSHOT - make a package from the current native TeX Live installation. | ||
- | # | ||
- | |||
- | # Copyright (c) 2012, Sébastien Boillod <sbb at tuxfamily dot org>. | ||
- | # | ||
- | # Permission to use copy, modify, and/or distribute this software for any | ||
- | # purpose with or without fee is hereby granted, provided that the above | ||
- | # copyright notice and this permission notice appear in all copies. | ||
- | # | ||
- | # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
- | # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
- | # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY | ||
- | # SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
- | # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
- | # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR | ||
- | # IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE | ||
- | |||
- | snapvrs () { | ||
- | ls -1 "/ | ||
- | awk -F- -v s=" | ||
- | '($2 ~ / | ||
- | END{print "'" | ||
- | } | ||
- | |||
- | export LC_ALL=" | ||
- | umask 022 | ||
- | set -e | ||
- | tl=" | ||
- | echo " | ||
- | |||
- | root=" | ||
- | mkdir -p " | ||
- | ln -s " | ||
- | cp / | ||
- | cp / | ||
- | chmod +x " | ||
- | cat >" | ||
- | | ||
- | texlive: texlive (native TeX Live distribution) | ||
- | texlive: | ||
- | texlive: This is a snapshot of the current native TeX Live installation. | ||
- | texlive: | ||
- | texlive: | ||
- | texlive: | ||
- | texlive: | ||
- | texlive: | ||
- | texlive: | ||
- | texlive: | ||
- | texlive: | ||
- | EOF | ||
- | cd " | ||
- | # The installation might be *huge*. That's why we just move it | ||
- | # in the FS (rename) instead of copying it. | ||
- | mv "/ | ||
- | if ! / | ||
- | mv " | ||
- | else | ||
- | mv " | ||
- | fi | ||
- | rm -rf " | ||
- | |||
- | # EoF</ | ||
- | |||
- | The result should be a package in ''/ | ||
- | through the '' | ||
- | '' | ||
- | version, and '' | ||
- | snapshot from another. The TeX Live directory packaged is the one pointed | ||
- | by the ''/ | ||
- | |||
- | If you choose to use snapshots, you'll probably want to disable the | ||
- | automatic backups performed by '' | ||
- | consuming space and making the snapshots bigger): | ||
- | |||
- | < | ||
- | |||
- | Well, hard it is to say good bye, but this time, we are done! I hope you've | ||
- | found something useful here, at least as a basis for your own cleverer | ||
- | solutions. So, be smart and have fun TeXing! :) | ||
- | |||
- | |||
- | |||
- | ====== Sources ====== | ||
- | <!-- If you are copying information from another source, then specify that source --> | ||
- | <!-- * Original source: [[http:// | ||
- | <!-- Authors are allowed to give credit to themselves! --> | ||
- | * Originally written by [[wiki: | ||
- | <!-- * Contributions by [[wiki: | ||
- | |||
- | <!-- Please do not modify anything below, except adding new tags.--> | ||
- | <!-- You must remove the tag-word " | ||
- | {{tag> |