If you have both a GNU/Linux distribution provided TeX Live and a manually installed one, you'll have two different tlmgr
.
The one in /usr/bin
will not update packages, but just change configuration parameters.
The one in /usr/local/texlive/<YEAR>/bin/<ARCH>
, instead, will do updates to the manually installed TeX Live. Here <YEAR>
stands for the version you have, probably 2014
, while <ARCH>
is the standard symbolic name for the processor, say x86_64-linux
or i386-linux
.
The correct call, if your data is as above, is
sudo /usr/local/texlive/2014/bin/x86_64-linux/tlmgr --gui
When doing a manual installation of TeX Live, I recommend doing
sudo ln -s /usr/local/texlive/2014/bin/x86_64-linux /opt/texbin
so you just need to add to your PATH the simpler /opt/texbin
and have another benefit: when TeX Live 2015 is released and you install it, you just have to do
sudo rm /opt/texbin
sudo ln -s /usr/local/texlive/2015/bin/x86_64-linux /opt/texbin
and do no other change to your setup, because your PATH variable will already point to the correct location. If you create this symbolic link, then
sudo /opt/texbin/tlmgr --gui
will become the correct call.
See this article on TUGboat which explains the installation procedure I recommend and that's still valid provided you just change the year from 2010 to the current release year.
In case the issue is not due to tlcontrib
, running update-tlmgr-latest.sh
solves the problem.
Kudos to Norbert Preining for the answer on the TeX Live list!
I record here the required steps for posterity.
In case you don't have it, retrieve the script:
wget https://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh
Check if you can run kpsewhich
from sudo
:
sudo kpsewhich --var-value=SELFAUTOPARENT
If yes, go to the last step. If not, check that the TeXLive path is in your PATH
echo $PATH
If not, add it with
PATH="/path/to//texlive/:$PATH"
Finally, run the script (make it executable with chmod +x
)
sudo env PATH="$PATH" ./update-tlmgr-latest.sh
The env
option passes to sudo the PATH
already available to the user, without the need to change the PATH
of the root user.
The output should look like
Verifying archive integrity... All good.
Uncompressing TeX Live Manager Updater 100%
./runme.sh: updating in /usr/local/texlive/2019...
./runme.sh: tlmgr version says this is TeX Live 2019,
./runme.sh: and this updater script created: Mon Apr 6 15:37:42 CEST 2020.
./runme.sh: proceeding with tlmgr update.
./runme.sh: updating /usr/local/texlive/2019/bin/x86_64-linux ...
./runme.sh: /opt/texbin/tlmgr including objects: master/tlpkg/tlpobj/texlive.infra.tlpobj master/tlpkg/tlpobj/texlive.infra.x86_64-linux.tlpobj
D:appending to package log file: /usr/local/texlive/2019/texmf-var/web2c/tlmgr.log
D:tlmgr:main: ::tldownload_server hash:: {enabled:1,errorcount:0,initcount:0,initcout:1,ua:LWP::UserAgent=HASH(0x564b37fdb010)}
D:setup_programs: preferring system versions
D:program curl found in path
D:program wget found in path
D:program lz4 not usable from path
D:(unix) trying to set up lz4, default /usr/local/texlive/2019/tlpkg/installer/lz4/lz4.x86_64-linux, arg --version
D: Using shipped /usr/local/texlive/2019/tlpkg/installer/lz4/lz4.x86_64-linux for lz4 (tested).
D:program gzip found in path
D:program xz found in path
./runme.sh: done.
Best Answer
For anyone encountering the same problem, the keys of the main TeX Live 2019 repo have also expired as of today (April 7, 2020). The verification check can be skipped using the
--verify-repo=none
option oftlmgr
, just like this: