web-dev-qa-db-ja.com

glib環境変数の設定方法:g_slice

Glibのバグを回避するには、次の環境変数を設定する必要があると言われています。

G_SLICE=always-malloc

しかし、私はそれを行う方法がわかりません、そして私がそれが推奨される使用法を見たところはどこでも、彼らはあなたがそれを行う方法を知っていることを当然のことと思っています(gnomeドキュメントでさえ: https://developer.gnome .org/glib/stable/glib-running.html )。

そこで、Linux環境変数として設定してみました。使用していたプログラミング環境(FirefoxアドオンSDK)で設定しようとしましたが、成功しませんでした。

Glib開発パッケージをインストールして、ある種の設定ファイルを見つけなければならないように思えます。しかし、私が間違った道を進む前に誰かが助けてくれるでしょうか?

1
markling

プロセスに環境変数を設定すると、それらはすべての子プロセスに継承されます。それをどのように行うかは、どこで利用できるかによって異なります。ただし、GLib構成を変更する必要はありません。

シェルから開始されたプログラムの環境変数を設定するには(ここではBashを想定します)、 記述できます

export G_SLICE=always-malloc

その後、このシェルセッションから開始するすべてのプログラムには、変数が設定されます。

後で開始するすべてのシェルに設定する場合は、その行も~/.profileに追加します。その場合、それはあなたが始めるすべての将来のシェルに適用されますが、現在実行されているものには適用されません。

プログラムを1回だけ実行するように設定するには(おそらくその効果をデバッグするため)、コマンドの前に変数を割り当てます。

$ G_SLICE=always-malloc gsomething

これらはすべて、ターミナルから実行するコマンド用です。 .profileは通常GUIでも機能しますが、システム構成によって壊れることがあります。これらはすべてユーザーごとの構成でもあります。

すべてのユーザーに常に設定したい場合は、(おそらく)/etc/environmentに割り当てを追加できます。形式は少し異なります。別々の行にKEY=VALするだけで、引用符は不要で、他には何もありません。

G_SLICE=always-malloc

これは(おそらく—システムに依存して) pam_env モジュールによって解析されます。ユーザーごとの~/.pam_environmentファイルもあります。これは、1人のユーザーに対しても同じ効果がありますが、ディストリビューションで有効になっている場合とできない場合があります。変更を有効にするには、どちらもログアウトしてから再度ログインする必要があります。

または、exportステートメントを~/.xinitrcstartxを使用する場合)または~/.xsession(ほとんどのログインマネージャーの場合)に追加することもできます。 KDEがサポート ディレクトリ~/.kde/envには、上記のexportステートメントを含むシェルファイルをいくつでも含めることができます。

2
Michael Homer