如何为服务器上的所有用户设置PATH变量?


52

我刚刚为公司所有的SSH使用的公司Ubuntu服务器安装了LaTeX。在安装结束时,它说:

Add /usr/local/texlive/2010/texmf/doc/man to MANPATH, if not dynamically determined.

Add /usr/local/texlive/2010/texmf/doc/info to INFOPATH.

Most importantly, add /usr/local/texlive/2010/bin/x86_64-linux to your PATH for current and future sessions.

如何执行此操作,以便为系统上的所有用户设置这些变量?(是的,我有sudo权限)。


@geirha的答案(Rob对MANPATH的评论)解决了这个问题,除了INFOPATH变量。尽管我想它并不经常被用户使用(?),但是有人知道正确的位置吗?还应该/etc/environment 吗?
belacqua 2011年

@jgbelacqua afaik Debian和其他一些Linux发行版都在使用它,但Ubuntu却没有。或者至少那是我能在Google上搜集一个小时的frm最好的。
Rob S.

安装TeXlive 2010时,它应该询问您是否要为所有二进制文件创建符号链接。如果您回答“是”,那根本就不是问题。
frabjous

@frabjous它从来没有问过我。我最初给它的唯一命令是启动安装的“ i”。无论如何,在设置变量之后,它们都可以完美运行。
Rob S.

1
@frabjous:安装程序中现在似乎缺少symlink选项。我今天安装了TeXLive 2011,现在可以找到它了。我之前至少安装了十二个版本的TeXLive,所以我想知道为什么现在不存在了。
马丁·沙勒

Answers:


57

您将它们添加到中/etc/environment

可能已经有一行用于PATH,因此您只需将其添加:/usr/local/texlive/2010/bin/x86_64-linux到末尾。然后为MANPATH和INFOPATH添加两行。

请参阅https://help.ubuntu.com/community/EnvironmentVariables

编辑后/etc/environment,注销并重新登录,并检查例如echo "$MANPATH"输出您添加的值。


最后,我还必须编辑/etc/manpath.config。谢谢。
Rob S.

2
我删除了答案,因为这似乎是更好的选择。根据help.ubuntu.com/community/EnvironmentVariablesSystem-wide /etc/environment的位置,“环境变量设置会影响整个系统(而不是特定用户)[...]” /etc/profile/etc/bash.bashrc并列为“不推荐”
belacqua

烦人的不适用于root!
猫头鹰

7

将这些默认PATH添加到中/etc/profile。它适用于bash和sh。Bash在Ubuntu中是默认设置。

PATH=$PATH:<new path you need to add>

echo $SHELL可用于确定当前用户的外壳或可从/etc/passwd文件中查看。

另外,您也可以将其包括在内/etc/environment。在这里,您只需在PATH语句的末尾添加PATH。


我在vim中打开了etc / profile,其中没有关于PATH的任何信息。多谢您的回覆。
Rob S.

17
文件的执行顺序为/ etc / environment-> / etc /
profile-

编辑/ etc / profile路径变量可能会损坏系统,最好避免使用。特别是当您通过ssh连接到远程主机时。
AmirHossein Rezaei
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.