找不到语言环境/设置语言环境失败-我该怎么办?


32

我已经在VPS(OpenVZ)上安装了Debian 7 i386。一切正常,除了语言环境-任何尝试安装的东西都显示:

[...]
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "pl_PL.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
[...]

我尝试过的

  1. 我自己生成语言环境update-locale LC_ALL="pl_PL.UTF-8"--显示:http : //www.wklej.org/id/1248438/
  2. apt-get install --reinstall locales http://www.wklej.org/id/1248442/
  3. dpkg-reconfigure locales+设置相同pl_PL.UTF-8pl_PL.ISO-8859-2甚至en_UShttp : //www.wklej.org/id/1248446/
  4. export LC_ALL=pl_PL.UTF-8 (即使在根目录上):

    -bash: warning: setlocale: LC_ALL: cannot change locale (pl_PL.UTF-8)
    

这是显示语言环境的内容:

root:~# locale
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
LANG=pl_PL.UTF-8
LANGUAGE=
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_ALL=

在/ var / log中找不到有趣的东西。即使将回购更改为官方+清除和手动安装区域设置也无法解决我的问题,这在Debian 7的每个全新安装中都会体现出来。

Answers:


22

似乎没有生成语言环境。通过按相应的行pl_PL.UTF-8正确选择了吗?dpkg-reconfigure localesspace

如果是,则行

pl_PL.UTF-8 UTF-8

/etc/locale.gen未添加注释(=不以开头#)。如果需要解决此问题,则还需要运行locale-gen以生成语言环境。其输出应为:

Generating locales (this might take a while)...
   pl_PL.UTF-8... done
Generation complete.

如果未输出您要生成的语言环境,则系统似乎有问题。原因之一可能是您已localepurge安装。如果没有文件,/usr/share/locale/pl/LC_MESSAGES或者/usr/share/locale/pl_PL/LC_MESSAGES是这种情况,或者系统已损坏。


1
有用!/etc/locale.gen中的选定位置仍然被注释,不知道为什么(是的,我记得关于空格键)-CHMOD可能有问题。谢谢!
luke_g 2014年

1
请注意,这-plow是默认设置,因此可以省略。您只需要调用dpkg-reconfigure,它将在您勾选所需的条目后调用locale-gen。
斯特凡Chazelas

@StephaneChazelas谢谢,我从答案中删除了它,并阐明了的用法locale-gen
jofel 2014年

另一种可能性是,如果您已经为en_US配置了系统等,但是您/etc/locale.gen只留下了注释en_GB。我在此线程unix.stackexchange.com/q/287716/16920中注意到了此错误,请也将其添加到故障排除策略中。
莱奥列奥波尔德赫兹준 영

12

第一:

sudo apt-get purge locales

然后:

sudo aptitude install locales

和著名的:

sudo dpkg-reconfigure locales

这会摆脱语言环境系统,然后重新安装语言环境并将libc6从2.19降级到2.13,这就是问题所在。然后再次配置语言环境。


似乎有所帮助,但下一次apt-get dist-upgrade将再次打破它。
ceving

为什么会破坏它?那时,语言环境是否应该与所使用的libc6兼容?我的libc6更改为使用其他程序。我已将其降级到默认的libc6版本,因此我的系统可以正常工作。此时,它应该与apt-get dist-upgrade非常兼容
tkjef 2014年

1
一个apt-get install locales安装在我的debian泊坞窗容器中的语言环境。
Stephane

7

快速简便的方法(尽管这将意味着比其他磁盘使用更多的磁盘):

apt install locales-all

1

尝试运行

locale -a

如果你有

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

解决这种情况的解决方案是以debian风味或glibc-all-langpacks CentOS / Fedora安装软件包语言环境(来自glibc软件包[1])。

[1] https://tracker.debian.org/pkg/glibc


glibc-locale软件包在Debian中不存在
-Yajo

应该是包区域...固定
塞尔吉奥
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.