Você define variáveis de ambiente em um processo e elas são herdadas por todos os processos filhos. Exatamente como você vai sobre isso depende de onde você quer que esteja disponível. Você não precisa modificar qualquer configuração do GLib.
Para definir uma variável de ambiente para programas iniciados a partir do seu shell (assumirei o Bash aqui), você pode escrever :
export G_SLICE=always-malloc
Todos os programas iniciados a partir desta sessão de shell depois disso terão a variável definida.
Se você quiser que ele seja definido para cada shell iniciado posteriormente, adicione essa linha a ~/.profile
também. Nesse caso, ele será aplicado a todos os shells futuros que você iniciar, mas nenhum que esteja em execução no momento.
Para configurá-lo apenas para uma única execução de um programa (talvez para depurar seus efeitos), preceda o comando com a atribuição de variável:
$ G_SLICE=always-malloc gsomething
Esses são todos os comandos que você executa no terminal. .profile
geralmente funciona para a GUI, mas isso pode ser quebrado pela configuração do sistema. Eles são todos por configuração de usuário também.
Se você quiser definir para todos os usuários o tempo todo, é possível adicionar uma atribuição a /etc/environment
. O formato é um pouco diferente: apenas KEY=VAL
em linhas separadas, sem citações obrigatórias e nada mais.
G_SLICE=always-malloc
Isso é (novamente, provavelmente - dependente do sistema) analisado pelo módulo pam_env
. Também existe um arquivo ~/.pam_environment
por usuário, que tem o mesmo efeito para apenas um usuário, mas pode ou não estar ativado em sua distribuição. Ambos exigem o logout e o retorno para que a alteração entre em vigor.
Como alternativa, você pode adicionar a instrução export
em ~/.xinitrc
(se usar startx
) ou ~/.xsession
(para a maioria dos gerenciadores de login). O KDE suporta um diretório ~/.kde/env
que pode conter quantos arquivos shell você quiser, que contêm export
declarações como acima .