【问题标题】:gnome-terminal doesn't work maybe because of locale settinggnome-terminal 不起作用可能是因为语言环境设置
【发布时间】:2014-07-14 11:23:35
【问题描述】:

我在日文环境下安装了 Antergos(Arch 的简易版)。 但我想把语言改成英文,所以我引用the wiki article 然后在/etc/locale.gen 中取消注释#en_US.UTF-8 UTF-8 后运行一些命令,并将/etc/locale.conf 编辑为以下内容:

LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=

问题从这里开始。

我重新启动计算机,发现 gnome-terminal 不起作用。 我在 Emacs 上替换了 eshell 并运行 gnome-terminal 命令,然后收到错误消息:

(process:1202): Gtk-WARNING **: Locale not supported by C library.
Using the fallback 'C' locale.
Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.gnome.Terminal exited with status 8

locale 命令的输出如下:

locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=ja_JP.utf8
LC_TIME=ja_JP.utf8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=ja_JP.utf8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=ja_JP.utf8
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT=ja_JP.utf8
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

是什么将语言环境设置的某些部分更改为日语?还是存在其他终止 gnome-terminal 的原因?

我已经尝试过https://bbs.archlinux.org/viewtopic.php?id=180103 此处建议的解决方案。

谢谢。

【问题讨论】:

    标签: locale gnome archlinux gnome-terminal


    【解决方案1】:

    前段时间我也遇到过同样的问题。我修复了运行此命令的语言环境配置

    sudo localedef -f UTF-8 -i en_US en_US.UTF-8
    

    【讨论】:

    • 非常感谢!我收到错误代码 9,这解决了它。谢谢!
    • 拯救了我的一天。由于此错误,无法访问我的终端。
    【解决方案2】:

    状态码8的含义记录在gnome的网站here上:

    gnome-terminal-server 启动的环境没有 正确地将语言环境设置为 UTF-8 语言环境。咨询您的 发行版有关如何解决此问题的文档。注意不是 与从不同终端检查区域设置相关(例如 xterm);重要的是会话 dbus-daemon 的环境 传递给它启动的进程。

    所以你是对的,这可能是由于区域设置。我不太了解所有细节,但是如果我将~/.xinitrc 设置为exec gnome-session 然后运行startx,我会收到与您类似的错误。

    但是,如果我不运行startx,而是启动gdm 显示管理器(通过Arch 上的systemctl start gdm.service),我可以正确生成gnome-terminal。因此,如果您可以使用 gdm,那可能是一个解决方案。 Lightdm 也有效,但 SLiM 不能(根据我的经验)。

    过去,我还必须安装 vte3 软件包才能使 gnome-terminal 工作,因此请确保也安装了该软件包。 FWIW,sudo gnome-terminal 似乎总是有效。

    【讨论】:

      【解决方案3】:

      您是否想过在编辑您的 /etc/locale.gen 文件后重新生成您的语言环境?

      locale-gen

      我认为在您的解释中,您混合了 /etc/locale.gen/etc/locale.conf 文件。确保您使用正确的值编辑了正确的文件。

      【讨论】:

      • 对不起,我把他们弄错了。它们在计算机上是正确的。
      【解决方案4】:

      好的,这就是我解决它的方法; sudo locale-gen --purge --no-archive

      然后; sudo update-initramfs -u

      【讨论】:

        【解决方案5】:

        语言环境对我没有任何帮助。一旦改回默认的python版本(ubuntu16上为3.5),终端就可以正常工作了。

        【讨论】:

          猜你喜欢
          • 2016-04-08
          • 2012-01-18
          • 1970-01-01
          • 2015-06-13
          • 2014-01-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多