当我运行perl时,我得到警告:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
我该怎么解决呢?
Debian GNU/Linux 11(靶心)
我在GCP中创建一个全新的VM实例后遇到了这个问题。
基本上,我刚刚运行了以下程序
$ sudo apt-get update
$ sudo apt-get upgrade
这里我得到了错误
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LC_TERMINAL = "iTerm2",
LANG = "C"
are supported and installed on your system.
以下是我的解决方法。
首先安装区域设置。
$ sudo apt-get install locales
打开语言环境文件(使用您喜欢的编辑器)。
$ sudo nano /etc/default/locale
添加以下内容并保存。
LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
执行以下命令。
$ sudo localedef -i en_US -f UTF-8 en_US.UTF-8
重新启动终端。
运行命令测试并通过ctrl + d关闭它。
$ perl
注意:
我创建了一个实例来测试我的解决方案,以确保。如果对你不起作用请告诉我。
我希望这对你有所帮助。
向~/添加正确的区域设置。bashrc,(~ /。Bash_profile, /etc/environment之类的文件可以解决这个问题,但是不建议这样做,因为它会覆盖/etc/default/locale的设置,这在最好的情况下是令人困惑的,在最坏的情况下可能会导致区域设置不一致。
相反,应该直接编辑/etc/default/locale,它可能看起来像这样:
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=en_US
更改将在下次登录时生效。你可以通过/etc/default/locale在现有的shell中获取新的语言环境,就像这样:
$ . /etc/default/locale
在Arch Linux中使用英国键盘和地区,我有以下错误:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.utf8"
在/etc/profile中导出我的locale并没有修复它。
不过,我确实通过编辑/etc/locale修复了这个问题同时启用en_US. gen。perl期望找到的Utf8语言环境,并运行local-gen。
(我使用的pac-manager使用AUR的一大堆perl模块,所以在我的特殊情况下重新安装perl将是一个麻烦。)