最近换了一台阿里云服务器,在配置这台服务器的时候遇到了一些坑,比如今天这个:Cannot set LC_CTYPE to default 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
解决办法
警告信息描述得其实也很明白了,就是你设置的 LC_CTYPE 的值对应的文件或目录找不到。
你可以通过 locale
这个命令查看当前系统的语言环境:
# 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.utf8
LC_CTYPE=UTF-8
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=
很容易能够发现这里的 LC_CTYPE 的值和其他几项不一样,没有指定是哪个语言的 UTF-8,所以我们需要重新设置这个值。
LC_CTYPE 可以在 /etc/profile
或者 /etc/profile.d/lang.sh
文件中定义,简单的做法就是在文件末尾加上:
LC_CTYPE="en_US.utf8"
export LC_CTYPE
然后你 source
更新一下或者重新打开一个终端再使用 locale
命令就发现没有警告信息了。