解决系统编码 LC_CTYPE / LC_ALL 问题

由于某些设置,在本机的 Mac 用 Terminal 去连接服务器总会有 LC_CTYPE 的报错,虽然在一年前就解决了,但是最近大量装机器还是简单的记录一下这个问题。以便于之后相关问题的查阅,特此小记。

0x01 Problem

每次登录机器总会遇见下面的错误,烦不胜烦。特别在 yum installapt install 的时候会见到这个问题,有时候不设置这个 LC_ALL 都无法正常使用 pip

1
2
3
4
5
6
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

// or

LC_CTYPE: cannot change locale (UTF-8): No such file or directory

0x02 Fix

我个人一般在 /etc/environment 添加两行然后重新 ssh 连接即可。参考了别人的资料后,在此补充两行 export 的代码。

en_US

1
2
3
4
5
6
7
8
9
10
11
12
13
# vim /etc/profile.d/locale.sh
export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

# vim /etc/locale.conf
LANG=en_US.UTF-8

# vim /etc/sysconfig/i18n
LANG=en_US.UTF-8

# vim /etc/environment
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

zh_CN

1
2
3
4
5
6
7
8
9
10
11
12
13
# vim /etc/profile.d/locale.sh
export LC_CTYPE=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

# vim /etc/locale.conf
LANG=zh_CN.UTF-8

# vim /etc/sysconfig/i18n
LANG=zh_CN.UTF-8

# vim /etc/environment
LANG=zh_CN.UTF-8
LC_ALL=zh_CN.UTF-8

0x03 Reference

系统编码 locale 的 LC_CTYPE / LC_ALL 问题 - 简书