Ber*_*ard 16 linux unix gnome environment-variables
在我的系统上,对于使用 SDL 的应用程序,我需要设置一个环境变量:
export SDL_AUDIODRIVER=alsa
Run Code Online (Sandbox Code Playgroud)
使声音正常工作。如何设置我的 GNOME 会话,以便所有应用程序都存在此变量(因此,如果我通过 Nautilus 运行应用程序,或使用DBGL,应用程序可以正常工作)?
编辑:
我设置的配置文件(并在每个配置文件之后重置我的机器)无济于事:
.xsession
.xsessionrc
.gnomerc
.bash_profile
.profile
<-- 这适用于一般情况,但不适用于您的发行版在其他地方设置变量时。/etc/profile
https://help.ubuntu.com/community/EnvironmentVariables讲了四个我们可以设置环境变量的地方:
~/.pam_environment
- […] 它不是一个脚本文件,而是由赋值表达式组成,每行一个。[...] 需要重新登录才能初始化变量。[…]~/.profile
- 这可能是放置环境变量分配的最佳文件,因为它在启动过程桌面会话期间由 DisplayManager 自动执行,并且在从文本控制台登录时由登录 shell 自动执行。~/.bash_profile
或者~/.bash_login
- 如果这些文件之一存在,当它作为登录 shell 启动时,bash 会执行它而不是“~/.profile”。(Bash 更喜欢“~/.bash_profile”而不是“~/.bash_login”)。但是,默认情况下,这些文件不会影响图形会话。~/.bashrc
- 由于 Ubuntu 当前默认设置各种脚本文件的方式,这可能是设置变量的最简单的地方。默认配置几乎保证该文件将在每次 bash 调用以及记录时执行进入图形环境。但是,在性能方面,这可能不是最好的做法,因为它会导致多次不必要地设置值。
http://userbase.kde.org/Session_Environment_Variables/en为 KDE 推荐这个地方:
KDE 将执行它找到的任何
$HOME/.kde/env
文件名以 结尾的脚本.sh
,并且它将维护由它们设置的所有环境变量。您要设置的任何变量也必须导出,这一点很重要。
https://help.ubuntu.com/community/ComposeKey#XIM建议修改~/.gnomerc
或~/.Xsession
。
可能是在某处未设置 SDL_AUDIODRIVER 变量。对于与启动脚本相关的问题,我使用的一种策略是放入调试 echo 语句,通过创建/删除文件可以轻松启用/禁用。你可以先添加
debug_msg() {
test -f $HOME/.debug && echo "$@" 1>&2
}
debug_msg "running ~/.bashrc ($0), SDL_AUDIODRIVER = '$SDL_AUDIODRIVER'"
Run Code Online (Sandbox Code Playgroud)
到 .bashrc、.bash_profile、.profile 和 /etc/profile 以查看它的值以及它是否/在哪里发生变化。
归档时间: |
|
查看次数: |
27947 次 |
最近记录: |