这个自我回答的问题解决了以下问题:
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
以及其他一些与区域相关的问题。
编辑:回想起来,将这个问题限制在我自己的问题上似乎效率不高。请随意发表您的意见。或者尽可能多地发表意见……
答案1
我们完全在 shell (bash) 中工作。
每个人应该做的第一件事是
sudo dpkg-reconfigure locales
输出可能是上面提到的错误和区域列表脚本生成的。请注意,生成的语言环境是唯一对您的系统有效的语言环境。如您所见,语言设置只是一堆环境变量。您可以尝试使用不同的语言 bash,只是为了好玩,如下所示:
LANG=es_NI.UTF-8 bash
ls somedirectorynamethatdoesnotexistonyoursystem
你会说西班牙语吗?:-)(如果 es_NI.UTF-8 不在你的区域列表只需选择另一个)
好的。显然,LANG 环境变量有助于完成其余设置,因为在我们的西班牙语 bash 中,我们现在可以执行
dpkg-reconfigure locales
或者任何命令的错误消息会引导你到这里,并且应该没有错误。如果有错误,那么就存在一些更严重的错误,本文将不涉及这些错误。
那么,我们在哪里设置这个变量 LANG?快速搜索目录/etc/
(使用rgrep LANG /etc/*
)会找到文件/etc/default/locale
。在那里,你可以将变量的值设置为不同的/正确的值。例如
LANG=en_US.UTF-8
(这个应该总是有效的)完成此操作:错误消息中提到的变量全部“源自”LANG,这意味着它们默认为 LANG 所设置的任何值,但如果您希望 shell 使用不同的语言,您可以根据自己的喜好设置它们。language-env 包可帮助实现这一点。
sudo apt-get install language-env
set-language-env
该脚本旨在自动为您的 .bashrc 等创建条目。
我自己还没尝试过。
我希望这可以帮助别人。
顺便提一句:
- 您可以在以下位置找到生成的语言环境
ls usr/share/locale
答案2
我尝试过很多解决方案,但是在 Debian 7 上都没有奏效。
因此,我添加了导出LC_ALL=en_US.UTF-8
,/etc/default/locale
警告就消失了。
答案3
简短回答:
以 root 身份运行dpkg-reconfigure locales
。
(在对话框中按Enter
直到找到您的语言,看到其编号,Enter
再次按 直到系统要求您输入编号。输入您的语言编号,Enter
完成。如果您不知道更好的方法,请使用您的语言的 UTF8 版本)
答案4
我使用的是德国 VPS,由于没有安装英语语言包,因此无法更改语言环境。
安装后我终于可以更改语言环境了
aptitude install language-pack-en