Ubuntu 20.04 中的 tlmgr:“本地 TeX Live(2019)比远程存储库(2020)旧”(以及后续问题)

Ubuntu 20.04 中的 tlmgr:“本地 TeX Live(2019)比远程存储库(2020)旧”(以及后续问题)

我全新安装了 Ubuntu 20.04 和 LaTeX(通过软件包texlivetexlive-latex-extratexlive-lang-english),但无法运行tlmgr。我做了以下操作:

$ tlmgr install dirtree
(running on Debian, switching to user mode!)
/usr/bin/tlmgr: unexpected return value from verify_checksum: -5

为此,我在其他帖子中发现他们的密钥最近已过期:tlmgr:verify_checksum 的意外返回值:主存储库为 -5. 因此接下来:

$ tlmgr install dirtree --verify-repo=none
(running on Debian, switching to user mode!)
tlmgr: Local TeX Live (2019) is older than remote repository (2020).
Cross release updates are only supported with
  update-tlmgr-latest(.sh/.exe) --update
See https://tug.org/texlive/upgrade.html for details.

好的。下载并运行update-tlmgr-latest.sh从下载并运行脚本http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh并得到(顺便说一下,该--update选项无法被识别):

$ sh update-tlmgr-latest.sh
Verifying archive integrity... All good.
Uncompressing TeX Live Manager Updater  100%  
./runme.sh: Cannot find TeX Live root using kpsewhich --var-value=SELFAUTOPARENT.
./runme.sh: (no tlpkg/texlive.tlpdb and/or tlpkg/tlpobj/.)
./runme.sh: Please set your PATH as needed, otherwise it's hopeless.

我也是无奈啊,什么叫按需啊?

答案1

我遇到了同样的问题并通过重新安装 TexLive 解决了。

首先,您应该卸载所有现有的 TexLive 安装:

sudo apt-get remove texlive*
rm -rf /usr/local/texlive/20*
rm -rf ~/.texlive20*

接下来,您必须为新的 TexLive 发行版创建一个存放位置,并授予您的用户该目录的所有权

sudo mkdir -p /usr/local/texlive/$(date +%Y)
sudo chown -R "$USER" /usr/local/texlive

下载并手动安装 TexLive

mkdir /tmp/texlive
cd /tmp/texlive
wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl.zip
unzip ./install-tl.zip -d install-tl
cd install-tl/install-tl-$(date +%Y%m%d)
perl ./install-tl

当你进入 perl 控制台时按“i”进行安装

Enter command: i

安装后:您需要添加到路径环境(根据您的安装更改年份)

export MANPATH="$MANPATH:/usr/local/texlive/2022/texmf-dist/doc/man"
export INFOPATH="$INFOPATH:/usr/local/texlive/2022/texmf-dist/doc/info"
export PATH=/usr/local/texlive/2022/bin/x86_64-linux:$PATH

测试安装

latex small2e

如果一切正确,请不要忘记删除安装目录。

rm -rf /tmp/texlive

答案2

简短的解决方案是:此错误是因为您的 TexLive 2019 正在尝试使用 TexLive 2020 ftp 存储库。您应该更改为正确(正确的)存储库。在终端中输入以下命令:

tlmgr repository add ftp://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2019/tlnet-final
tlmgr repository list
tlmgr repository remove http://mirror.ctan.org/systems/texlive/tlnet
tlmgr option repository ftp://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2019/tlnet-final

之后,您可以使用以下命令安装该包:

tlmgr --verify-repo=none install dirtree

我添加了--verify-repo参数以避免出现此错误:tlmgr: unexpected return value from verify_checksum: -5 for main repository

第二个错误之前已在此处解释过:tlmgr:verify_checksum 的意外返回值:主存储库为 -5

答案3

我最近遇到了同样的问题,您需要通过转到 .bashrc 运行来正确编辑路径:

gedit /home/<username>/.bashrc

并在.bashrc文件中设置:

export PATH=/usr/local/texlive/2020/bin/x86_64-linux:$PATH
export MANPATH=/usr/local/texlive/2020/texmf-dist/doc/man:$MANPATH
export INFOPATH=/usr/local/texlive/2020/texmf-dist/doc/info:$INFOPATH

(也许您需要检查您的安装文件夹,如果它是默认的,那么您可以使用这些代码)。最初我只有这个(仅用于检查,不要使用它):

export PATH=:$PATH/usr/local/texlive/2020/bin/x86_64-linux
export MANPATH=/usr/local/texlive/2020/texmf-dist/doc/man
export INFOPATH=/usr/local/texlive/2020/texmf-dist/doc/info

当你修正了 PATH 后,重新运行 sh,你会得到以下结果:

sh update-tlmgr-latest.sh -- --upgrade
Verifying archive integrity... All good.
Uncompressing TeX Live Manager Updater  100%  
./runme.sh: updating in /usr/local/texlive/2020...
./runme.sh: tlmgr version says this is TeX Live 2020,
./runme.sh: and this updater script created: Wed Jun  3 00:11:12 CEST 2020.
./runme.sh: have TL 2020, new version also 2020;
./runme.sh: using --upgrade doesn't make sense; terminating.
(./runme.sh: makeself creation date = Wed Jun  3 00:11:12 CEST 2020.)

最后更新您的 tlmgr。

编辑 这些步骤不能解决安装软件包的问题(至少对我来说)。我想给出更多步骤,以便最终可以安装或使用您的 tlmgr,我尝试使用 tlmgr 更新,我得到了:

    You don't have permission to change the installation in any way,
specifically, the directory /usr/local/texlive/2020/tlpkg/ is not writable.
Please run this program as administrator, or contact your local admin.
tlmgr: An error has occurred. See above messages. Exiting.

为了解决这个问题,您需要安装以下程序:

sudo env PATH="$PATH" tlmgr install <package> --dry-run

参考:最后一条评论从 tlmgr 安装包时出现权限问题

如果需要,可以使用以下命令更新 tlmgr:

sudo env PATH="$PATH" tlmgr update --self

或者如果您想更新所有安装,请尝试:

sudo env PATH="$PATH" tlmgr update --self --all

相关内容