当我运行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").
如何解决它?
解决方法
您的操作系统不知道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 exit %
或使用bash:
$ LANG=C perl -e exit $
要永久解决问题,请选择其中一个
>在较旧的主机上,在shell的初始化文件中设置LANG环境变量。
>在客户端修改您的环境,例如,而不是ssh hunter2,使用命令LANG = C ssh hunter2。
>如果您有管理员权限,请通过注释掉本地/ etc / ssh / ssh_config文件中的SendEnv LANG LC_ *行,停止发送环境变量。 (感谢this answer.有关OpenSSH的更多信息,请参阅Bug 1285)