问题描述
我已经安装了 TeX Live 2011 vanilla,但在设置 root 的 TeX Live 路径时遇到问题(在 Ubuntu 11.10 中)。
问题是当我运行 sudo tlmgr
时我得到:
sudo: tlmgr: command not found
要修复非 root 的路径,添加就足够了
PATH=/usr/local/texlive/2011/bin/x86_64-linux:$PATH
到 /etc/profile
。
我尝试将同一行添加到 /root/.bashrc
,也尝试将其添加到 /etc/profile.d/zzz-texlive.sh
,就像赫伯特在 https://tex.stackexchange.com/questions/26624/tlmgr-inaccessible/26626#26626 中建议的那样,但它没有帮助。
最佳方案
快速修复:由于您的环境中已经设置了正确的 $PATH
(通过 /etc/profile
修改),您可以使用:
sudo env PATH="$PATH" tlmgr
基本上,sudo 将 $PATH
(实际上是整个环境)的值重置为 “known good”,并忽略您对本地环境所做的任何更改。上面的 env 命令在其执行的 tlmgr
的环境中设置 PATH
变量,因此它会以您在命令行上指定的 $PATH
的值运行。
为了避免为每个 TeXlive 命令键入所有内容,您可以在 shell 中定义 alias:将以下行添加到您家中的 .bashrc
文件中:
alias psudo='sudo env PATH="$PATH"'
然后您可以简单地在命令提示符下发出此命令:
psudo tlmgr
此外,sudo 不运行\n登录 shell 来执行该命令,这就是为什么您的 “profile.d”\ntricks 不适用于 root。您可以强制 sudo 在 shell 中执行命令,这是实现相同效果的另一种方法:
sudo sh -l -c tlmgr
您可以再次定义 shell command alias 来缩短此时间:
alias shsudo='sudo sh -l -c'
可以用作:
shsudo tlmgr
次佳方案
如果添加符号链接,则无需创建脚本。您可以通过两种方式执行此操作:
使用图形用户界面:
-
sudo env PATH="$PATH" tlmgr --gui
。 -
单击“操作->”处理系统目录中的符号链接。
-
单击“更新符号链接”。
使用命令行(未经测试,因为我使用了 GUI):
-
sudo env PATH="$PATH" tlmgr path add
。 (更多信息请参见 tlmgr documentation )
第三种方案
对我有用的:我在 gui 模式下启动了 tlmgr
sudo env PATH="$PATH" tlmgr --gui
然后在第三个菜单中选择最后一个项目(在我的德语菜单中,即菜单 “Aktionen”(操作?)和项目“Verwaltung der symbolischen Links”(符号链接的管理?)。在随后的对话窗口中,我单击了按钮“Symbolische Links erneuern”(更新符号链接?)。现在
sudo tlmgr --OPTIONS
工作没有问题。我确信还有一种命令行方式可以做到这一点;)