有人告诉我需要设置以下环境变量才能解决 glib 错误:
G_SLICE=always-malloc
但我不知道如何做到这一点,而且我在任何地方看到推荐使用它的地方,他们只是想当然地认为你知道如何做到这一点(甚至是 gnome 文档:https://developer.gnome.org/glib/stable/glib-running.html)。
所以我尝试将其设置为linux环境变量。我尝试在我所在的编程环境(Firefox Add-on SDK)中设置它,但没有成功。
在我看来,我可能必须安装 glib 开发包并找到某种配置文件。但也许有人会在我走上错误的道路之前帮助我?
答案1
您在进程中设置环境变量,它们会被所有子进程继承。具体如何操作取决于您希望它在哪里可用。你不不过,必须修改任何 GLib 配置。
要为从 shell 启动的程序设置环境变量(这里假设是 Bash),你可以写:
export G_SLICE=always-malloc
此后从此 shell 会话启动的所有程序都将设置该变量。
如果您希望为随后启动的每个 shell 进行设置,~/.profile
也请添加该行。在这种情况下,它将应用于您将来启动的所有 shell,但不适用于当前正在运行的任何 shell。
要将其设置为仅执行一次程序(也许是为了调试其效果),请在命令之前添加变量赋值:
$ G_SLICE=always-malloc gsomething
这些都是您从终端运行的命令。.profile
通常也适用于 GUI,但可能会被系统配置破坏。它们也是每用户配置。
如果您希望始终为每个用户设置它,您可以(可能)向/etc/environment
.那里的格式有点不同:只是KEY=VAL
在单独的行上,不需要引用,也没有任何其他内容。
G_SLICE=always-malloc
这是(同样,可能是依赖于系统的)由pam_env
模块。还有一个每用户~/.pam_environment
文件,它仅对一个用户具有相同的效果,但可能会也可能不会在您的发行版上启用。这些都需要注销并重新登录才能使更改生效。
或者,您可以export
在~/.xinitrc
(如果使用startx
)或~/.xsession
(对于大多数登录管理器)中添加语句。KDE 支持一个目录~/.kde/env
,可以包含任意数量的 shell 文件,其中包含export
上述语句。