AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 418141
Accepted
MountainX
MountainX
Asked: 2018-01-19 18:40:37 +0800 CST2018-01-19 18:40:37 +0800 CST 2018-01-19 18:40:37 +0800 CST

Arch Linux:设置语言环境失败。修复你的系统

  • 772

昨天更新我的 Arch Linux 系统后,我开始收到类似这样的错误:

Failed to set locale. Fix your system.

此特定错误来自尝试运行 snapper。但是,这是另一个相关的错误:

bsdcpio: Failed to set default locale

perl 给出了一个类似的警告,我将在下面粘贴。

它不限于任何特定的应用程序;这似乎是一个系统范围的问题。

在昨天的更新之前,我没有收到这些错误。此外,我没有在虚拟控制台中收到错误。我只有在 X (KDE) 中才能得到它们。例如,如果我在 konsole 中运行 snapper ls 命令,我会收到上述错误,但如果我在虚拟控制台中运行相同的 snapper ls 命令,我不会收到任何错误。

我的其他几乎相同的 Arch 系统没有这个问题。

我的第一次故障排除尝试如下。

  1. 检查 /etc/locale.conf
  2. 跑locale-gen
  3. 检查输出locale
  4. 查看 snapper 是否运行没有错误

我在 locale.conf 中没有看到任何错误,但运行local-gen并不能解决问题。

这是相关的输出:

# localectl list-locales
en_US.utf8

# grep -v "^#" /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=

# 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=en_US.UTF-8
LC_TIME=en_GB.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=

# locale-gen
Generating locales...
en_US.UTF-8... done
Generation complete.

# 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=en_US.UTF-8
LC_TIME=en_GB.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=

# locale -a
C
en_US.utf8
POSIX

这是 perl 的警告:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "",
        LC_ALL = (unset),
        LC_MEASUREMENT = "en_US.UTF-8",
        LC_PAPER = "en_US.UTF-8",
        LC_MONETARY = "en_US.UTF-8",
        LC_NAME = "en_US.UTF-8",
        LC_COLLATE = "en_US.UTF-8",
        LC_CTYPE = "en_US.UTF-8",
        LC_ADDRESS = "en_US.UTF-8",
        LC_NUMERIC = "en_US.UTF-8",
        LC_MESSAGES = "en_US.UTF-8",
        LC_TELEPHONE = "en_US.UTF-8",
        LC_IDENTIFICATION = "en_US.UTF-8",
        LC_TIME = "en_GB.UTF-8",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").

当我locale在 Konsole(在 X 中)中运行时会出现以下行,但在虚拟控制台中运行时不会出现:locale

locale: Cannot set LC_ALL to default locale: No such file or directory

我可以在虚拟控制台中运行 snapper ls 命令而不会出错。

据我所知,Arch 没有/etc/default/locale. 我的任何 Arch 机器上都不存在该文件。

重新启动系统没有帮助。

arch-linux locale
  • 2 2 个回答
  • 27141 Views

2 个回答

  • Voted
  1. Best Answer
    Fox
    2018-01-19T19:13:09+08:002018-01-19T19:13:09+08:00

    您的语言环境设置之一(即LC_TIME)设置为您尚未生成的语言环境(即en_GB.UTF-8)。如果您启用该语言环境并重新生成语言环境,该错误将消失/etc/locale.gen。

    由于该设置与 中的设置不同/etc/locale.conf,您可能已在其中一个启动脚本中设置了覆盖。由于错误不会发生在虚拟控制台中,我怀疑.xinitrc或.xprofile. 但是,如果您使用的是完整的桌面环境,它们通常有自己的设置,包括区域设置。

    • 8
  2. ololoid
    2022-06-04T23:09:51+08:002022-06-04T23:09:51+08:00

    如果使用 KDE (KDE5),另一个可能存在覆盖的地方:

    ./.config/plasma-locale-settings.sh
    ./.config/plasma-localerc
    

    这可以在 KDE 系统设置中进行配置。

    基本上,如果locale输出与 中配置的不同/etc/locale.conf,则意味着存在某些覆盖。正如 Fox 之前回答的那样,应该启用/etc/locale.gen并重新生成缺少的语言环境,或者/etc/locale.conf任何其他语言环境配置都应该使用/etc/locale.gen.

    这也解决了例如 bsdtar 的问题: bsdtar: Failed to set default locale

    • 0

相关问题

  • Nftables 配置错误:指定的协议冲突:inet-service v. icmp

  • archlinux efi netboot 内核“ip”不起作用?systemd "启动 Switch Root 失败。"

  • 如何在 Arch Linux 上设置音频,支持多个程序同时发出音频而不创建 asoundrc?

  • 为什么有时需要手动导入密钥?

  • 在启动时加载设备

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve