我已经安装了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建议的https://tex.stackexchange.com/questions/26624/tlmgr-inaccessible/26626#26626,但这无济于事。
快速修复:由于您的环境中已有正确的$PATH
设置(通过/etc/profile
修改),因此可以使用:
sudo env PATH="$PATH" tlmgr
基本上,sudo将$PATH
(整个环境的)值重置为“已知的良好”值,因此忽略了对本地环境所做的任何更改。上面的env命令PATH
在tlmgr
其执行的环境中设置变量,因此它将以$PATH
您在命令行上指定的值运行。
为了避免为每个TeXlive命令键入所有内容,您可以在shell中定义一个别名:将以下行添加到主.bashrc
目录中的文件中:
alias psudo='sudo env PATH="$PATH"'
然后您可以在命令提示符下简单地发出此命令:
psudo tlmgr
另外,sudo不会运行登录Shell来执行命令,这就是为什么您的“ profile.d”技巧不适用于root用户的原因。您可以强制sudo在shell中执行命令,这是达到相同效果的另一种方法:
sudo sh -l -c tlmgr
同样,您可以定义一个shell命令别名来缩短此时间:
alias shsudo='sudo sh -l -c'
可以用作:
shsudo tlmgr
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句