N.N*_*.N. 20 sudo latex environment-variables
我已经安装了TeX Live 2011 vanilla,但无法为 root 设置 TeX Live 路径(在 Ubuntu 11.10 中)。
问题是,当我运行时,sudo tlmgr我得到:
sudo: tlmgr: command not found
Run Code Online (Sandbox Code Playgroud)
要修复非 root 的路径,添加就足够了
PATH=/usr/local/texlive/2011/bin/x86_64-linux:$PATH
Run Code Online (Sandbox Code Playgroud)
到/etc/profile。
我已经尝试将同一行添加到,/root/.bashrc并且我也尝试将它添加到/etc/profile.d/zzz-texlive.shHerbert 在https://tex.stackexchange.com/questions/26624/tlmgr-inaccessible/26626#26626 中的建议, 但它没有帮助。
Ric*_*rri 22
快速修复:由于您的环境中已经有了正确的$PATH设置(通过/etc/profile修改),您可以使用:
sudo env PATH="$PATH" tlmgr
Run Code Online (Sandbox Code Playgroud)
基本上,sudo将$PATH(整个环境,确实)的值重置
为“已知良好”的值,因此忽略您对本地环境所做的任何更改。上面的
env命令PATH在tlmgr它执行的环境中设置变量,因此它以$PATH您在命令行中指定的值运行。
为了避免为每个 TeXlive 命令输入所有这些,您可以在 shell 中定义一个
别名:将以下行添加到.bashrc您家中的文件中:
alias psudo='sudo env PATH="$PATH"'
Run Code Online (Sandbox Code Playgroud)
然后你可以简单地在命令提示符下发出这个:
psudo tlmgr
Run Code Online (Sandbox Code Playgroud)
此外,sudo不运行登录 shell 来执行命令,这就是为什么您的“profile.d”技巧不适用于 root。您可以强制 sudo在 shell 中执行命令,这是实现相同效果的另一种方法:
sudo sh -l -c tlmgr
Run Code Online (Sandbox Code Playgroud)
同样,您可以定义一个shell 命令别名来缩短它:
alias shsudo='sudo sh -l -c'
Run Code Online (Sandbox Code Playgroud)
可以用作:
shsudo tlmgr
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14995 次 |
| 最近记录: |