Mac OS X Mojave - 永久设置环境变量

Posted

技术标签:

【中文标题】Mac OS X Mojave - 永久设置环境变量【英文标题】:Mac OS X Mojave - set environment variable permanently 【发布时间】:2019-09-03 00:33:19 【问题描述】:

我正在使用 mac os mojave (10.14.3)。我在两者中都设置了环境变量 ~/.bash_profile~/.bashrc 我同时运行了 ~/.bash_profile~/.bashrc。然后在同一个终端中,我可以看到我设置的值(使用printenv),但是如果我打开一个新终端,我就看不到之前设置的环境变量。

请给点建议。

更新

在 mac os Bigsur(11.2.3) 中,默认终端是 zsh(我没有检查其他版本)并在 ~/.zshenv 中设置 envs

echo 'export PATH=$PATH:$PATH:~/Library/android/sdk/build-tools/29.0/' >> ~/.zshenv

运行. ~/.zshenv 帮助我永久保存了环境

【问题讨论】:

见apple.stackexchange.com/questions/289060/… 请按照步骤here。希望对你有帮助 This answer,在 macOS Mojave 10.14 上使用 launchctl,为我工作! 【参考方案1】:

这适用于 OS X 10.14“Mojave”:

第一步:进入$HOME/Library/LaunchAgents目录,创建setenv.MY_VAR.plist文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
  <dict>
  <key>Label</key>
  <string>setenv.MY_VAR</string>
  <key>ProgramArguments</key>
  <array>
    <string>/bin/launchctl</string>
    <string>setenv</string>
    <string>MY_VAR</string>
    <string>SOME_VALUE_FOR_MY_VAR</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

请注意您的文件名和文件中的条目是否匹配。

第 2 步:运行 launchctl load ~/Library/LaunchAgents/setenv.MY_VAR.plist 或 - 重新启动系统。

第 3 步:重新启动终端应用。

第 4 步:检查 var 是否存在:env。它应该给你:MY_VAR=SOME_VALUE_FOR_MY_VAR

如果您想进行更多更改,请先执行launchctl unload...,然后再执行launchctl load...

这是每个用户的设置。如果您想为所有用户设置,请尝试在/Library/LaunchAgents 中执行相同操作。

【讨论】:

如果你想为所有用户做这件事,我认为正确的地方是/Library/LaunchAgents,而不是/Library/LaunchDaemons @JosephFitzgerald 这就是最后一句话所说的。 :-) 不完全。当正确的地方是代理时,您编写了守护程序。最后一句应该突出显示您自己的库文件夹与根库文件夹。 最后一句已于 2021 年 10 月进行了编辑,现在应该是正确的。感谢@JosephFitzgerald 指出这一点。【参考方案2】:

不确定您是如何设置环境变量的,但请确保您使用 export 命令将其跨 shell 持久化,例如export EDITOR=/usr/bin/vim。然后,您可以使用 export -p 检查从另一个 shell 导出的变量。

直接从命令行运行bash 将获取您的.bashrc 文件。如果在您打开新终端窗口时未获取 .bashrc 文件,则您可能是 not running bash。

如果 /bin/sh 默认是您的默认 shell(而不是 bash),您可以通过运行 chsh -s $(which bash) 来更改它。

【讨论】:

以上是关于Mac OS X Mojave - 永久设置环境变量的主要内容,如果未能解决你的问题,请参考以下文章

Mac OS X 10.9 - 设置永久环境变量

text 禁用黑暗模式Mac OS X Mojave

text Mac Os X Mojave清除dns缓存

在 Mac OS X (sierra & Mojave) 中启用 OpenMP 支持

Mac OS X Mojave 上的 XAMPP 错误

无法在 mac os x mojave 上安装 mysqlclient