使用 tlmgr 更新 TexLive 时出错

使用 tlmgr 更新 TexLive 时出错

我的 Ubuntu 机器上有一个可以运行的 TeXLive 2020,这是我几个月前安装的(之前是 TeXLive 2018,我想)。安装是使用“首选” TeXLive方式(不是通过操作系统包管理器)。

然而,我在之前版本中可以正确构建的文档上遇到了错误。基本上,它找不到某个包(bclogo,仅供参考)。

所以我想手动安装它,然后前往这里: https://www.tug.org/texlive/pkginstall.html

但是命令:

tlmgr update --list

失败(失败)并显示以下消息:

(running on Debian, switching to user mode!)
cannot setup TLPDB in /home/myusername/texmf at /usr/bin/tlmgr line 5604.

检查了 Perl 文件中的该行是否无意义:

die("cannot setup TLPDB in $::maintree");

该文件夹/home/myusername/texmf存在,但是是空的。

好的,所以也许它需要初始化该用户文件夹中的某些内容。事实上,在这个问题,我这样做了:

tlmgr init-usertree

其次是:

sudo apt-get install xzdec

(不知道这个包是做什么的...)

但是现在,命令:

tlmgr update --list

输出另一个失败:

(running on Debian, switching to user mode!)
tlmgr: Cannot load TeX Live database from https://ctan.gutenberg.eu.org/systems/texlive/tlnet

多次发出命令时,似乎每次都会尝试不同的镜像/URL,但似乎都不适合。虽然服务器处于活动状态,但我还是用浏览器检查了一下。

值得一提的是,这里是该命令尝试的一些其他 URL,但也失败了:

https://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/ctan/systems/texlive/tlnet
https://mirrors.ircam.fr/pub/CTAN/systems/texlive/tlnet
https://ctan.tetaneutral.net/systems/texlive/tlnet

知道下一步我该做什么吗?

编辑:(更多技术细节)

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/texlive/2020/bin/x86_64-linux::/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin

$ which tlmgr
/usr/bin/tlmgr

$ tlmgr --version
(running on Debian, switching to user mode!)
tlmgr revision 39298 (2016-01-07 03:44:29 +0100)
tlmgr using installation: /usr/share/texlive

答案1

running on Debian, switching to user mode! 消息中可以清楚地看出,这不是上游的 texlive 2020,which tlmgr更新后来也揭示了这一点。

因此,您当前有两个 Latex 安装,并且旧的(Debian 修改的)安装首先出现在搜索 PATH 中,因此被使用。

修复方法相当简单,确保添加到 $PATH 的 texlive 2020 路径首先出现,这样就会首先选择其中的任何程序。

请记住,$PATH 更改后,您可能需要注销并重新登录。

相关内容