更改系统范围的环境变量

更改系统范围的环境变量

我正在尝试设置 Latex,其中需要添加到$PATH。我读到的一些东西(可能是在这里)说修改/etc/environment比添加更好.profile(我想是因为它改变了所有用户的情况?)。

我已经这样做了,然后当我运行 时. /etc/environment,在该终端会话的其余部分,一切都运行正常。但是,当我打开一个新终端时,诸如 之类的命令latex不再起作用。重新启动计算机也无法使更改/etc/environment在 shell 会话中生效。

我该怎么做才能使这些变化在整个系统内发生?

更新:我最终通过评论中提到的 PPA 进行了安装,安装了 Tex Live 2016(并设置了环境变量),没有任何问题。

答案1

您似乎在问两个不同的问题。第一个问题与更改系统范围内的变量有关,另一个问题与使 LaTeX 工作有关,因此以下是这两个问题的答案:

更改系统范围的环境变量

作为描述在这里/etc/profile.d/您可以添加一个包含该变量的文件PATH

export PATH=$PATH:<your particular latex path>

调用它/etc/profile.d/latex-path.sh并且将被您登录的任何 shell 所获取。

如果你只想为你的用户更改PATH变量,首选方法是使用~/.profile同一行编辑

轻松使用 LaTeX

LaTeX 包可以从 Universe 存储库中安装,如下所示描述在这里无需更改PATH变量。请确保您已启用 Universe 存储库并输入:

sudo apt update
sudo apt install texlive

或者如果你喜欢完整的发行版(这将安装更多的软件包,所以去喝杯咖啡吧):

sudo apt install texlive-full

答案2

/etc/environmentpam_env由PAM 模块创建和维护,而不是由您的 shell 创建和维护(因此您不应该这样做)。此文件由典型的登录程序读取。因此您需要以通常的方式注销/登录才能看到更改(假设您之后source不会从某处进行修改)。PATH

在我的系统上,它被读取:

% grep -l '^[^#].*pam_env' /etc/pam.d/* 
/etc/pam.d/atd
/etc/pam.d/cron
/etc/pam.d/lightdm
/etc/pam.d/lightdm-autologin
/etc/pam.d/lightdm-greeter
/etc/pam.d/login
/etc/pam.d/polkit-1
/etc/pam.d/sshd
/etc/pam.d/su
/etc/pam.d/sudo

如果即使重新启动计算机后仍未将其设置为准确的声明值:

  • 你可能犯了一些语法错误,请注意声明语法应该是KEY=VALUE(每行),例如PATH=/foo/bar:/spam/egg

  • 您正在覆盖PATH后续内容,例如从 shell 会话初始化文件

相关内容