在给树莓派安装tmux时遇到了locale相关问题,命令locale显示:
pi@raspberrypi:/usr/share/i18n/locales $ 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_GB.UTF-8
LANGUAGE=
LC_CTYPE=en_US.UTF-8
LC_NUMERIC=zh_CN.UTF-8
LC_TIME=zh_CN.UTF-8
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER=zh_CN.UTF-8
LC_NAME=zh_CN.UTF-8
LC_ADDRESS=zh_CN.UTF-8
LC_TELEPHONE=zh_CN.UTF-8
LC_MEASUREMENT=zh_CN.UTF-8
LC_IDENTIFICATION=zh_CN.UTF-8
LC_ALL=
通过命令locael -a查看当前系统系统支持的字符编码方式:
pi@raspberrypi:/usr/share/i18n/locales $ locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
C
C.UTF-8
en_GB.utf8
POSIX
没有支持zh_CN.UTF-8以及en_US.UTF-8,那么打算通过locale-gen生成相关字符编码库,执行命令之后通过locale -a查看,结果还是没有支持这两种编码方式。
修改/etc/locale.gen文件,打开对zh_CN.UTF-8以及en_US.UTF-8的支持,之后运行locale-gen命令:
pi@raspberrypi:/etc $ sudo locale-gen
Generating locales (this might take a while)...
en_GB.UTF-8... done
en_US.UTF-8... done
zh_CN.UTF-8... done
Generation complete.
OK编译成功,可以安装tmux了。
详细locale的详细原理没有做进一步的探究,感兴趣可以看一下这篇博文
locale的设定及其LANG、LC_ALL、LANGUAGE环境变量的区别