小编典典

如何修复来自 Perl 的语言环境设置警告

all

当我运行时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").

我如何解决它?


阅读 181

收藏
2022-03-03

共1个答案

小编典典

您的操作系统不知道en_US.UTF-8.

您没有提到特定平台,但我可以重现您的问题:

% uname -a
OSF1 hunter2 V5.1 2650 alpha
% perl -e exit
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LC_ALL = (unset),
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

我的猜测是您使用 ssh 从较新的台式机连接到这台较旧的主机。/etc/ssh/sshd_config包含是很常见的

AcceptEnv LANG LC_*

这允许客户端将这些环境变量的值传播到新会话中。

如果您不需要完整的语言环境,该警告会提示您如何压制它:

% env LANG=C perl -e 退出
%

或使用 Bash:

$ LANG=C perl -e 退出
$

对于永久修复,请选择以下之一

  1. 在旧主机上,LANG在 shell 的初始化文件中设置环境变量。
  2. 在客户端修改您的环境, 例如 ,而不是ssh hunter2使用命令LANG=C ssh hunter2
  3. 如果您具有管理员权限,请通过注释掉 本地 文件SendEnv LANG LC_*中的行来阻止 ssh 发送环境变量。
2022-03-03