Linux服务器SSH登录locale设置问题

最近使用macOS下的iTerm2 SSH登录到几台服务器上时,老是出现两个locale错误,作为一个强迫症患者,一次两次还行,每次登录都出现实在是不能忍,于是花了点时间解决了下。

先说说解决办法。解决办法也很简单,只需要增加两行配置:

vim /etc/environment

LANG=en_US.utf-8
LC_ALL=en_US.utf-8

没错,说的就是阿里云,默认系统模板每次登录都报错。

首先是登录时,欢迎信息下发出现的这个错误:

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
apt-listchanges: Can't set locale; make sure $LC_* and $LANG are correct!

另一个就是执行yum命令时出现的:

[root@zocodev ~]# yum update
Failed to set locale, defaulting to C

查了下,其实这两个都是同一个问题,都是locale没有正确设置导致的,使用locale命令可以看到报错信息:

[root@zocodev ~]# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE=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=