我遇到了一个环境变量问题,很难解决。我在 Mac 上运行 Ubuntu (Karmic,9.10),并通过 NX (NoMachine) 进入。
我在文件中添加了几个环境变量.bashrc
,例如:
export JAVA_HOME=$HOME/dev/tools/Linux/jdk/jdk1.6.0_16/
在机器上,此环境变量可在命令行上使用,也可以在我从主菜单启动的应用程序中使用。但是,通过 NX 进入时,环境变量在命令行上正确显示,但不是当我通过启动器启动东西时。
作为示例,我创建了一个名为“testpath
我的主文件夹”的简单 shell 脚本:
#!/bin/sh
echo $PATH && sleep 5
quit
我授予它执行权限:
chmod +x testpath
然后我在主菜单中创建了一个启动器项,只需运行即可:
./testpath
当我坐在电脑前时,此启动器会运行并显示我放入文件$PATH
中变量的所有内容.bashrc
(例如$JAVA_HOME
等)。但是当我通过 NX 进入时,它会显示完全不同的变量值$PATH
,尽管如果我启动终端窗口(仍在 NX 中)并键入export $PATH
,它会正确显示。
我猜想这与窗口系统通过 NX 加载哪些文件有关,并且是其他文件。但我不知道如何修复它。
为了记录起见,我还有一个.profile
包含以下内容的文件:
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
答案1
我承认我对 NX 一无所知。不过我会尝试一下。
您的 /home 目录中是否创建了 NX 特定用户?也许那里有一个需要修改的 .bashrc。
/etc 中是否有可以让您提供环境变量的 NX 配置文件?
您是否尝试过将变量添加到自动应用于所有帐户的文件中,例如 /etc/bashrc 或 /etc/bash.bashrc 或 /etc/profile?
答案2
我从未使用过 NX,但据我所知,它使用标准 ssh 进行连接。可以通过将环境变量放入 中来设置 ssh 会话的环境变量$HOME/.ssh/environment
。尝试将您的路径添加到该文件中。