Linux perl: warning: Setting locale failed.perl: warning: Please check that your locale settings:

使用 apt-get 安装软件时,总是出现下面的错误。

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US:",
LC_ALL = (unset),
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

安装软件时,都会去执行 update-locale 命令,用来更新 locale。这个命令是 perl 脚本(可以用 whereis update-locale 查到)

root@ubuntu:/# whereis update-locale
update-locale: /usr/sbin/update-locale /usr/share/man/man8/update-locale.8.gz

使用指令测试 perl,并不是因为 update-locale 命令错了,而是因为 perl 的配置出了问题。

root@ubuntu:/# perl -e exit

perl 使用系统提供的默认 local 的 en_US.UTF-8,但这个值是 ssh 从客户端传递来的,系统其实不知道 en_US.UTF-8 该如何处理。

安装语言包即可,但是不知道语言包名称,此时可以通过官网来查询语言包名称

ubuntu 查询包名网站:https://packages.ubuntu.com/

点击搜索后就会出现匹配的包名,其实 language-pack-en 依赖于 language-pack-en-base,安装 language-pack-en 的同时会默认安装 language-pack-en-base

如果想确认的话可以点击 language-pack-en 下面的 xenial(16.04 LTS),里面可以看到其所有依赖包、推荐包、建议包等。

root@ubuntu:/# apt-get install language-pack-en

安装成功后再使用指令测试 perl,再不会报错。

参考网站:https://www.jianshu.com/p/7cb39acb2513

原文地址:https://www.cnblogs.com/lialong1st/p/11350951.html