为root设置TeX Live路径


20

我已经安装了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类似于Herbert建议的/tex/26624/tlmgr-inaccessible/26626#26626, 但这无济于事。


确实,这个问题与TeX无关,但在SO上得到了回答

Answers:


22

快速修复:由于您已经$PATH在环境中(通过/etc/profile修改)设置了正确的设置,因此可以使用:

sudo env PATH="$PATH" tlmgr

基本上,sudo$PATH(整个环境,实际上)的值重置 为“已知的良好”值,因此忽略了对本地环境所做的任何更改。上面的 env命令PATHtlmgr其执行的环境中设置变量,因此它将以$PATH您在命令行上指定的值运行。

为了避免为每个TeXlive命令键入所有内容,您可以在shell中定义一个 别名:将以下行添加到主.bashrc目录中的文件中:

alias psudo='sudo env PATH="$PATH"'

然后您可以在命令提示符下简单地发出此命令:

psudo tlmgr

另外,sudo不会运行登录外壳来执行命令,这就是为什么您的“ profile.d”技巧不适用于root用户的原因。您可以强制 sudo在shell中执行命令,这是达到相同效果的另一种方法:

sudo sh -l -c tlmgr

同样,您可以定义一个shell命令别名来缩短此时间:

alias shsudo='sudo sh -l -c'

可以用作:

shsudo tlmgr

您介意包含有关如何$PATH在我的环境中进行设置的完整描述吗?另外,所以我必须对env要启用的TeX Live路径中的每个命令执行操作sudo?/ usr / local / texlive / 2011 / bin / x86_64-linux中有很多二进制文件,您可能希望以root用户身份运行。
NN

@NN我已经用更多详细信息更新了答案;希望现在更清楚。
Riccardo Murri

干杯! 感谢您的解释。
NN

7

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

使用GUI:

  1. sudo env PATH="$PATH" tlmgr --gui
  2. 单击“操作->处理系统目录中的符号链接”。
  3. 点击“更新符号链接”。

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

  1. sudo env PATH="$PATH" tlmgr path add。(在tlmgr文档中找到更多信息)

3

对我tlmgr有用的东西:我从gui模式开始

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

然后在第三个菜单中选择最后一个项目(在我的德语菜单中,选择菜单“ Aktionen”(动作?)和“ Verwaltung der symbolischen Links”项目(管理符号链接?)。在随后的对话窗口中,我单击“ Symbolische Links erneuern”按钮(更新符号链接?)。

sudo tlmgr --OPTIONS

没有问题的作品。我敢肯定,还有一种命令行方式可以做到这一点;)


1

使用命令将用户的文件传递$PATHsudo我修改的/etc/sudoers文件,visudo并添加以下行:

Defaults        exempt_group=<group that I belong to>

现在我可以执行(例如)

sudo tlmgr update all

要么

sudo texhash

一切都完美无缺。

我将不胜感激对此方法的任何评论。


1

您实际上不必将目录添加tlmgr到路径。一个简单的快速解决方案是使用which,例如:

sudo $(which tlmgr) update --list

0

使用“ root”特权安装和管理TeX Live是不好的做法。相反,/usr/local/texlive例如,使用sudo 创建目录,然后将所有权更改为将要管理TeX Live的用户。之后,无需使用“ root”权限即可安装和更新TeX Live。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.