Archlinux启动时如何设置环境变量

Arg*_*gos 5 arch-linux subversion environment-variables

当我在 bash 中使用svn客户端时,我必须首先设置变量SVN_EDITOR,如下所示:

export SVN_EDITOR=cat
Run Code Online (Sandbox Code Playgroud)

所以我认为如果在启动时设置环境变量对我来说会更容易。我使用的是Archlinux,所以我参考了ArchWiki,但在那里我发现有多种设置变量的方法

  • 编辑~/.bashrc
  • 编辑 ~/.config/systemd.user.conf
  • 使用systemctl --user set-environment
  • 编辑~/.profile
  • 编辑 ~/.pam_environment
  • 编辑~/.bash_profile
  • 甚至更多。

我是唯一的用户,所以我不关心该变量是全局设置还是每个用户设置。

在所有的方法中,什么是最好的?什么是“新标准”?

我正在使用带有 Gnome 和 budgie 桌面的最新 Archlinux。

非常感谢。

编辑:正如@jasonwryan所说,问题类似于如何设置用户环境变量?(永久,非会话)

但我也想知道最“正确”的方法是什么,我也不确定自该问题(5年前)以来是否有任何新标准。对于某些事情来说,Archlinux 是相当特别的,不确定其中是否有任何具体的方法来做到这一点。

Ash*_*h K 7

对于 ArchLinux,应使用以下文件来定义系统上的全局环境变量 -/etc/environment以及/etc/profileshell 特定的配置文件。

这些文件中的每一个都有不同的限制,因此您应该仔细选择适合自己的文件。提到一些用例:

  • /etc/environment- 由 pam_env 模块使用,并且与 shell 无关,因此无法使用脚本或 glob 扩展。该文件仅接受variable=value
  • /etc/profile- 仅初始化登录 shell 的变量。

在你的情况下,只需放入SVN_EDITOR=cat你喜欢的环境变量配置文件(/etc/environment

  • `/etc/environment` 中的 `export` 是不必要的,并且作为 shell 命令,有点令人困惑,因为正如您所说,该文件不会被解释为 shell 脚本。虽然 `pam_env` 跳过了 `export` 关键字,所以它本身不是问题。 (2认同)