更新

更新

我已经安装了 TeXLive 并将其添加/usr/local/texlive/2019/bin/x86_64-linux到我的$PATHthrough中/etc/environment,因此我应该能够tlmgr从终端运行。我可以以非 root 用户身份执行此操作:

johndoe@pc:~$ tlmgr update --all
tlmgr: package repository http://ftp.math.purdue.edu/mirrors/ctan.org/systems/texlive/tlnet (verified)
You don't have permission to change the installation in any way,
specifically, the directory /usr/local/texlive/2019/tlpkg/ is not writable.
Please run this program as administrator, or contact your local admin.
tlmgr: An error has occurred. See above messages. Exiting.

我收到一个错误,但没有什么奇怪的,要更新软件包我显然必须tlmgr以 root 身份运行 - 这就是我遇到麻烦的地方:

johndoe@pc:~$ sudo tlmgr update --all
[sudo] password for johndoe: 
sudo: tlmgr: command not found

不过,如果我检查它的内容/etc/environment包括/usr/local/texlive/2019/bin/x86_64-linux

johndoe@pc:~$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/texlive/2019/bin/x86_64-linux"

在之前的 Ubuntu 安装中,我设法修复了这个问题,所以我确信有办法解决,但我不知道我做了什么。有什么建议吗?

我不知道还有什么其他信息有用,如果需要,请在评论中询问。

更新

我正在使用 Ubuntu 19.10 (Eoan Ermine)。我通过互联网安装了 TeXLive,因为“获取 TeX Live”页面建议这样做。

答案1

我也遇到了这个问题。具体来说:

  • 我可以跑tlmgr
  • sudo 无法运行tlmgr,给出“ sudo: tlmgr: command not found”。
  • 须藤tlmgr如果我给它该文件的明确路径,它就会运行/usr/local/texlive/.../tlmgr(所以我知道问题不在于权限tlmgr)。

我调查了这个答案使用 sudo 时未找到命令

似乎当我安装 TeX Live 2020 时,我已将 texlive 目录添加到我的用户路径中,但没有添加到超级用户的路径中。要测试这一点,请运行:

env | grep ^PATH

查看你的路径,然后

sudo env | grep ^PATH

查看超级用户的路径。对我来说,超级用户路径缺少 texlive 目录,这就是为什么我可以运行tlmgr但不能sudo tlmgr

选项:

  1. 您可以要求 sudo 运行 tlmgr 的完整路径(locate tlmgr如果您不知道它在哪里,请使用它来查找)。

  2. 你可以要求 sudo 运行你的路径而不是超级用户路径,通过运行sudo -E env "PATH=$PATH" tlmgr

  3. 如果您确信自己知道自己在做什么,则可以编辑超级用户路径,使用visudo

答案2

我遇到了同样的问题。如果 tlmgr 安装成功,请尝试以下命令查找您的 tlmgr 路径:

which tlmgr

然后,您可以在终端命令中用绝对路径替换 tlmgr,如下所示:

sudo /usr/local/texlive/2021/bin/x86_64-linux/tlmgr update --all

答案3

我在使用 Ubuntu 18.04 MATE 和 TeXLive 2020 时也遇到了同样的问题。以前,我通过修改 TEXDIR 文件夹的权限(例如 /usr/local/texlive/2020)解决了这个问题。但这不太优雅。我想有更好的方法来解决这个问题。

相关内容