在远程连接 ubuntu的时候,有时候会碰到类似以下错误:
Cannot set LC_CTYPE to default locale: No such file or directory
原因大约有以下几种:
- 操作系统找不到指定的系统语言包
- 远程连接时没有指定默认语言
步骤1:先查看当前系统语言
locale
步骤2:检查已安装的语言并安装缺乏的语言
locale -a
如果其中没有你想要的语言,则执行以下命令来安装:
//例如,安装中文
/usr/share/locales/install-language-pack zh_CN
//删除不想要的语言
/usr/share/locales/remove-language-pack zh_CN
如果因为某些原因,语言已安装,但locale信息没有自动生成,可以执行以下命令手工生成:
//zh_CN.UTF-8为你需要使用的语言
locale-gen zh_CN.UTF-8
步骤3:修改当前用户的环境变量
//只在当前会话中生效
export LC_ALL="en_US.UTF-8"
//再次检查 locale 设置是否没问题
locale
//正常情况,你会看到如下信息
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.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=en_US.UTF-8
步骤4:此时已经可以确定配置成功,需要将环境变量写入用户配置文件,以便每次连接都会正确设置 locale
echo "export LC_ALL=\"en_US.UTF-8\"" | tee ~/.bash_profile
大功告成!