所有,我需要在我的程序中设置环境变量,~/.profile
因为我正在运行一个不启动 bash shell 的程序(QtCreator)。
但我无论如何都无法让它工作。QtCreator 不会显示我在“系统环境”下定义的任何环境变量。
我怎样才能做到这一点?
编辑:好吧,实际上我的问题是为什么我source my_environment
不能
我的环境:
export SOME_PATH=blalalal
如果我添加export SOME_PATH=blalalal
到我的~/.profile
,它就会起作用。但我不能使用source ~/.profile
答案1
以下是故事内容:
~/.profile - 您还可以在此文件中放置环境变量分配,因为它会在启动过程桌面会话期间由 DisplayManager 自动执行,也会在从文本控制台登录时由登录 shell 自动执行。
(来源)
解决方法:导出中定义的变量
.profile
。导出 VAR1=foo
解决方案:将变量放入 .bashrc 中,打开终端并从命令行启动 QtCreator。它应该有变量。不要忘记导出它们:
export VAR1=foo
解决方案:创建一个用于启动程序的包装器,运行一个小脚本而不是直接运行程序:
#!/bin/bash export VAR1=foo program
或者
#!/bin/bash VAR1=foo program
解决方案:编辑
.desktop
用于启动应用程序的文件,将执行行修改为VAR1=foo program
代替
program
(尚未测试过,但应该可行)
解决方案:更改环境。您的评论是正确的,程序确实会获得环境,即使它们不从 读取它
.profile
。系统范围的环境位于/etc/environment
,但您也可以按会话设置它,在您的主目录中名为 的文件中.pam_environment
。请参阅这里了解更多信息。顺便说一句,此页面清楚地解释了所有不同文件的作用以及何时使用哪个文件。然而,我更喜欢解决方案 1-3,因为它们改变了程序仅限此内容,而非整个会话。
答案2
只需注销并重新登录系统即可.pam-environment
读取文件并识别环境变量。