Hac*_*ell 558 server command-line locale
每次我执行诸如启动或停止服务之类的操作时都会收到此消息。
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US:en",
LC_ALL = (unset),
LC_MESSAGES = "en_US.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
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
(Reading database ... 21173 files and directories currently installed.)
Removing bind9 ...
* Stopping domain name service... bind9 [ OK ]
Processing triggers for man-db ...
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
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?
小智 557
首先运行locale以列出当前为当前用户帐户定义的语言环境:
$ locale
LANG=C
LANGUAGE=
LC_CTYPE=fi_FI.UTF-8
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE=fi_FI.UTF-8
LC_MONETARY="C"
LC_MESSAGES=fi_FI.UTF-8
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)
然后生成缺少的语言环境并重新配置语言环境以注意:
$ sudo locale-gen "en_US.UTF-8"
Generating locales...
en_US.UTF-8... done
Generation complete.
$ sudo dpkg-reconfigure locales
Generating locales...
en_US.UTF-8... up-to-date
Generation complete.
Run Code Online (Sandbox Code Playgroud)
现在你不会再看到任何错误了!
小智 400
在我的情况下,上面建议的任何内容都不起作用(Ubuntu Server 12.04LTS)。最终有帮助的是放入文件/etc/environment:
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它不见了。语言环境和其他命令的输出看起来像是正确定义了变量。换句话说,不要想当然地认为所有基本的东西都在应该声明的地方声明。
Rin*_*ind 165
它们应该在发出后消失:
sudo locale-gen en_US en_US.UTF-8
sudo dpkg-reconfigure locales
Run Code Online (Sandbox Code Playgroud)
dpkg-reconfigure在安装包后重新配置包。将一个或多个包的名称传递给它以进行重新配置。它会询问配置问题,就像第一次安装软件包时一样。
小智 131
只需将以下内容添加到您的.bashrc文件中(假设您使用的是 bash)
export LC_ALL="en_US.UTF-8"
Run Code Online (Sandbox Code Playgroud)
小智 104
如果您远程连接,这是一个常见问题,因此解决方案是不转发您的区域设置。编辑/etc/ssh/ssh_config并注释掉SendEnv LANG LC_*行。
小智 81
有一个命令:
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)
它/etc/default/locale使用提供的值进行更新。
要应用更改,您可以
source /etc/default/locale
Run Code Online (Sandbox Code Playgroud)
小智 35
在 12.10 上对我有用的是:
apt-get install language-pack-en-base
Run Code Online (Sandbox Code Playgroud)
这是在dpkg-reconfigure locales没有结果之后。
小智 21
不要忘记通过退出并重新登录来退出 SSH 会话(或 X11)。除非我重新登录,否则所有这些建议对我都不起作用....
小智 12
对于 Ubuntu 12.10,除了 Ratzs 的解决方案外,上述方法均无效。我建议将此添加到您的 /etc/bash.bashrc 文件中:
export LC_ALL="en_ZA.UTF-8"
export LC_CTYPE="en_ZA.UTF-8"
Run Code Online (Sandbox Code Playgroud)
Cha*_*aye 12
我陷入了一种奇怪的状态,我的本地机器被设置为es,因此远程机器(via vagrant)已被配置为未处理状态。因此,我不得不使用手册export=来促进成功的dpkg-reconfigure. 然后系统就好了。
export LC_ALL="en_US.UTF-8"
sudo dpkg-reconfigure locales
Run Code Online (Sandbox Code Playgroud)
Aje*_*han 10
我编写了一个bash 脚本来解决上述问题。上述答案很有用,但通过简单地导出 shell 变量中的值来设置语言环境变量仅适用于会话。我通过导出 .bash_profile 文件中的语言环境变量永久解决了这个问题。您也可以使用/etc/profilefile 而不是.bash_profile.
echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8">>~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
不要忘记source了.bash_profile,按照剧本中易于安装。
小智 8
你可以试试:
export LANGUAGE=ru_RU.UTF-8
export LC_CTYPE=ru_RU.UTF-8
export LC_NUMERIC=ru_RU.UTF-8
export LC_TIME=ru_RU.UTF-8
export LC_COLLATE=ru_RU.UTF-8
export LC_MONETARY=ru_RU.UTF-8
export LC_MESSAGES=ru_RU.UTF-8
export LC_PAPER=ru_RU.UTF-8
export LC_NAME=ru_RU.UTF-8
export LC_ADDRESS=ru_RU.UTF-8
export LC_TELEPHONE=ru_RU.UTF-8
export LC_MEASUREMENT=ru_RU.UTF-8
export LC_IDENTIFICATION=ru_RU.UTF-8
export LC_ALL=ru_RU.UTF-8
Run Code Online (Sandbox Code Playgroud)
ru_RU你的国家代码在哪里。
当前接受的答案在故障排除策略中是不够的,因为您可能会出现人为错误。您设置您的系统,en_US但你必须en_GB在启用/etc/locale.gen像我曾在线程这里的树莓派3B。你应该有所有在启用了您使用的语言环境/etc/locale.gen。
我en_GB.UTF-8 UTF-8只在/etc/locale.gen. 我应该只启用它,en_US.UTF-8 UTF-8因为它运行了其他命令。所以我评论了 GB 和未评论的美国,现在一切正常
masi@raspberrypi:~ $ sudo vim /etc/locale.gen
masi@raspberrypi:~ $ sudo locale-gen
Generating locales (this might take a while)...
en_US.UTF-8... done
Generation complete.
masi@raspberrypi:~ $ sudo a2enmod rewrite && a2enmod headers && a2enmod ssl
Module rewrite already enabled
Module headers already enabled
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Module socache_shmcb already enabled
Module ssl already enabled
Run Code Online (Sandbox Code Playgroud)
现在,我没有使用任何命令遇到这些语言环境错误。
系统:Raspbian Jessie
硬件:Raspberry Pi 3b
正如Debian Wiki 中所述,您可以编辑/etc/locale.gen和添加所有希望在您的系统上获得支持的语言环境(或取消注释它们,我有一个所有语言环境的列表,但除了我用作注释的语言之外的所有语言环境)。然后,执行
sudo dpkg-reconfigure locales
Run Code Online (Sandbox Code Playgroud)
更新系统上的语言环境。现在,您添加/取消注释的所有语言环境/etc/locale.gen都可以在您的系统上使用而没有任何警告。
小智 5
如果您使用 KDE 环境,请检查setlocale.sh以下文件~/.kde/env/:
$ cat ~/.kde/env/setlocale.sh
export LANG=en_US.UTF-8
export LANGUAGE=en_US:ru:en
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1035018 次 |
| 最近记录: |