进一步阅读

进一步阅读

当终端无法启动时,我遇到了问题。当区域设置不受支持时,我查看了相关问题。我尝试过更新它,重新生成它 - 没有任何帮助。最后我找到了下一条错误消息/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-serverwhich的程序,该程序实际上提供了终端仿真器。它不是gnome-terminal 客户您直接运行的命令,它只是该服务器的控制程序。

  • 如果您让每用户/会话 DBUS 代理直接生成服务器进程(这是旧的但不推荐的做法),您需要确保您的每用户/会话 DBUS 代理本身在 UTF-8 中运行8 语言环境。

    由于调用 DBUS 代理的方式有很多种,因此具体如何执行此操作超出了本答案的范围。

  • 如果您的 DBUS 代理只是将数据传递给适当的每用户服务管理器(这是现在推荐的新做法),您需要确保每用户服务的服务定义org.gnome.Terminal设置了 UTF-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

    另一个例子是,如果您使用 systemd 进行每用户服务管理,则需要使用“插入”机制Environment=注入一个设置,而 systemd 人员不会为每用户服务记录该机制。/lib/systemd/user/gnome-terminal-server.service

当然,您还要确保该区域设置实际上也作为区域设置定义存在于您的系统上。如果不存在这样的 UTF-8 区域设置定义,则调整 UTF-8 区域设置是没有好处的。

进一步阅读

答案2

这是对我有帮助的命令列表:

sudo apt install dconf-cli
dconf reset -f /org/gnome/terminal
sudo apt-get remove gnome-terminal
sudo apt-get install gnome-terminal
sudo locale-gen --purge
sudo dpkg-reconfigure locales
reboot

相关内容