SSH登录后提示LC_ALL: cannot change locale (en_US.UTF8) 的解决办法

发布时间 2023-07-17 16:50:08作者: Don

错误大概如下:

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_ALL: cannot change locale (en_US.UTF8)

 

解决方法: 

sudo localedef -i en_US -f UTF-8 en_US.UTF-8

 

关于Locale的解释:

locale把按照所涉及到的文化传统的各个方面分成12个大类,这12个大类分别是:

1、语言符号及其分类(LC_CTYPE)

2、数字(LC_NUMERIC)

3、比较和排序习惯(LC_COLLATE)

4、时间显示格式(LC_TIME)

5、货币单位(LC_MONETARY)

6、信息主要是提示信息,错误信息,状态信息,标题,标签,按钮和菜单等(LC_MESSAGES)

7、姓名书写方式(LC_NAME)

8、地址书写方式(LC_ADDRESS)

9、电话号码书写方式(LC_TELEPHONE)

10、度量衡表达方式 (LC_MEASUREMENT)

11、默认纸张尺寸大小(LC_PAPER)

12、对locale自身包含信息的概述(LC_IDENTIFICATION)。


所以说,locale就是某一个地域内的人们的语言习惯和文化传统和生活习惯。一个地区的locale就是根据这几大类的习惯定义的,
这些locale定义文件放在 /usr/share/i18n/locales 目录下面,例如en_US, zh_CN and de_DE@euro都是locale的定义文件,
这些文件都是用文本格式书写的,你可以用写字板打开,看看里边的内容,当然出了有限的注释以外,大部分东西可能你都看不懂,
因为是用的Unicode的字符索引方式。

更多详细解释可参考这篇:https://www.cnblogs.com/wn1m/p/10837609.html