在 `.bashrc` 中添加了 `export` 命令以使用二进制位置更新 PATH——即使终端知道更新,GUI 应用程序也不知道?

在 `.bashrc` 中添加了 `export` 命令以使用二进制位置更新 PATH——即使终端知道更新,GUI 应用程序也不知道?

我必须添加一个:

export PATH="/path/to/my/bin:$PATH"

到我的bash.rc,用于progA的二进制库位置。现在,每当我启动 GNOME 终端实例时,我都可以键入progA并按回车键,然后执行正确的二进制文件。

但是,如果我progA通过 GUI 启动应用程序,我的系统就会出错,不知道progA垃圾箱在哪里。

我应该怎么办?

答案1

~/.bashrc文件仅用于交互式,无需登录shells:设置路径的更好的地方可能是你的~/.profile

为了实现最大的可移植性,您可以遵循用户~/bin目录中的现有范例~/.profile(即避免export并测试目录的存在):类似于

if [ -d "/path/to/my/bin" ] ; then
    PATH="/path/to/my/bin:$PATH"
fi

由于~/.profile仅对登录 shell 读取,因此您需要注销并重新登录才能使其生效(或至少启动新的登录 shell,例如使用su - username)。从那里,新的 PATH 应该传播到所有子 shell - 包括您的 gnome 终端的交互式非登录 shell。

答案2

首先,里面的内容.bashrc仅适用于bashshell。除非您提到的那个神秘的 GUI 启动应用程序也使用.bashrc(我看不出有任何理由),否则它不会知道您的在哪里progA。即使运行对话框(如果您不知道的话,它是 Alt+F2)dash也不使用bash,所以.bashrc对它来说毫无意义。这是其中之一。

其次,如果您想要的是桌面或启动器快捷方式,您需要有一个myAppName.desktop包含以下内容的文件:

[Desktop Entry]
Name=myAppName
Type=Application
Exec=/path/to/the/progA
Terminal=false
Icon=/path/to/some/icon.png

现在,当您拥有该文件并且该文件是可执行文件时,您可以双击该.desktop文件并启动该应用程序(前提是 progA 已正确设置所有权、设置权限并设置可执行位)。Icon=部分是可选的,因此您可以将其省略。

相关内容