追加読書

追加読書

端末が起動しないときに問題が発生しました。ロケールがサポートされていない場合は、関連する質問を見てみました。更新して再生してみましたが、役に立ちません。ついに次のエラーメッセージが見つかりました/var/log/syslog

Dec 31 00:45:43 kes-X751SA console-kit-daemon[2215]: (process:3545): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Dec 31 00:45:48 kes-X751SA org.gnome.Terminal[2464]: Locale not supported.
Dec 31 00:45:57 kes-X751SA console-kit-daemon[2215]: (process:3562): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed

ここでは明確ではありません。私のロケールが間違っている場合、どのロケールがサポートされていませんか?どのロケールがサポートされているかを確認するには?サポートされているロケールをどのように適用しますか?

ベストアンサー1

トラブルシューティングセクションから直接スナックガイド、「GNOME端末が起動を拒否します」というタイトルの下:

  • GNOMEターミナルサーバーは環境変数にUTF-8ロケールを設定する必要がありLANG、そうでない場合は起動を拒否します。ただロケールにすることはできませんC

GNOMEターミナルサーバーは、org.gnome.Terminalユーザー固有のサービスマネージャの下でDBUSエージェントを介して間接的に開始されるサービスです。gnome-terminal-server実際に端末エミュレータを提供するwhichというプログラムを実行します。そうではないgnome-terminal 顧客直接実行するコマンドは、そのサーバー用の制御プログラムです。

  • ユーザー固有/セッション別のDBUSエージェントがサーバー・プロセスを直接作成する場合(古いが使用されなくなった方法)、ユーザー別/セッション別のDBUSエージェント自体がUTF-8 8ロケールで実行されていることを確認する必要があります。

    DBUSエージェントを呼び出す方法はさまざまであるため、これを行う正確な方法はこの回答の範囲外です。

  • DBUSプロキシが単に適切なユーザー固有のサービス管理者にデータを渡す場合(これは新しい推奨方法です)、ユーザー固有のサービスのサービス定義にorg.gnome.TerminalUTF-8ロケールセットがあることを確認する必要があります。

    これを行う方法は、所有しているユーザー固有のサービス管理者によって異なります。 noshサービス管理の場合、たとえば、$HOME/.config/service-bundles/services/org.gnome.Terminal/service/env次のコマンドを使用してサービス環境ディレクトリ()を調整しますset-service-env

    システム制御 --user set-service-env org.gnome.Terminal LANG en_GB.UTF-8

    Environment=別の例は、ユーザー固有のサービス管理にsystemdを使用する場合、systemdの人々がユーザー固有のサービスについて文書化しない「挿入」メカニズムを使用して設定を注入する必要があることです。/lib/systemd/user/gnome-terminal-server.service

もちろん、ロケールが実際にシステムにロケール定義として存在することを確認したい場合があります。そのようなUTF-8ロケール定義がない場合、UTF-8ロケールを調整しても利点はありません。

追加読書

おすすめ記事