我$PATH
在~/.bashrc
with中设置了一个自定义PATH=$HOME/.bin:$PATH
。当我启动geany
从终端它可以找到位于 中的我的自定义构建工具$HOME/.bin
。当我使用 XFCE 启动器启动 Geany 时,它不会选择自定义路径,并且我的自定义构建工具无法工作。是否可以设置自定义路径以便启动器能够选择它?我不想创建自定义.desktop
文件。
尽管是否有一个所有 shell 都能读取的“.bashrc”等效文件?如果我知道当我使用快捷方式启动程序时使用什么 shell 以及如何启动该 shell,将会提供答案。据推测,它不是交互式 bash shell,否则.bashrc
将被获取。
答案1
每个 shell 都有不同的获取环境变量的方法(例如,是否有一个所有 shell 都能读取的“.bashrc”等效文件?)。对于通过显示管理器底层的 shell 启动的图形程序,根据显示管理器的启动方式,环境变量设置在不同的位置(例如,.xsession
或.xinitrc
)。
对于具有 PAM 的系统,似乎pam_env在登录时始终“来源”。
我能够通过创建来解决我的问题.pam_environment
:
PATH DEFAULT=/home/strongbad/.bin
我必须在我的主目录中进行硬编码,尽管手册页说:
DEFAULT=${HOME}/bin:
应该管用。
我还必须/etc/profile
修改
PATH="/usr/local/sbin:/usr/local/bin:/usr/bin"
到
PATH="$PATH:/usr/local/sbin:/usr/local/bin:/usr/bin"
因为/etc/profile
只是覆盖了设置的值.pam_environment
。
为了刷新,.pam_environment
您需要注销/登录。如果你搞砸了$PATH
,登录就会变得困难。值得在其他地方(例如,TTY)保持您自己的登录状态,以便您可以轻松地修复问题。
答案2
我只是将新路径导出直接附加到启动器。例如将启动器中的命令更改为
export "PATH=$HOME/.bin:$PATH" ; geany %F
您应该能够直接在“/usr/share/applications/geany.desktop”中编辑 Geany 的启动器文件,这将对应用程序启动器产生更广泛的系统影响。
如果您希望系统上的所有用户在其路径变量上都有本地“$HOME/.bin”,那么您可以将其添加到“/etc/environment”文件中。请记住,这将影响系统上的所有用户,您需要在所有用户文件夹中创建此目录以避免这些用户出现错误。包括“/root[/.bin]”。