当前位置: 首页>>技术教程>>正文


sudo – 设置 TeX Live 的 root 路径

, ,

问题描述

我已经安装了 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

次佳方案

如果添加符号链接,则无需创建脚本。您可以通过两种方式执行此操作:

使用图形用户界面:

  1. sudo env PATH="$PATH" tlmgr --gui

  2. 单击“操作->”处理系统目录中的符号链接。

  3. 单击“更新符号链接”。

使用命令行(未经测试,因为我使用了 GUI):

  1. 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

工作没有问题。我确信还有一种命令行方式可以做到这一点;)

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13997.html,未经允许,请勿转载。