如何在Debian squeeze中修复语言环境设置


17

我偶尔会遇到语言环境错误,并且尝试运行dpkg-reconfigure语言环境来解决此问题。这是输出:

:~$ sudo dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "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_ALL to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "C"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "C"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

我寻找了/ usr / bin / locale,但是在我的系统上不存在。我需要创建它吗?我在那放什么?

我也找到一个相关的问题,说他的问题的原因在sshd_config文件中。该文件具有以下条目:

AcceptEnv LANG LC_*

我主要担心这可能会导致我的VPS出现问题,否则,如果不是什么大问题,我将很乐意忽略该问题。我该怎么办?谢谢!


当您从Mac通过ssh登录到Linux机器时,也会发生相同的问题(LC_CTYPE = UTF-8,这是错误的),并且终端会自动设置环境变量。有一个复选框。取消选中它,您就很好了。在iTerm中,它位于配置文件->“终端”选项卡中。
拉尔特

一些基于debian的发行版(包括ubuntu)似乎存在一个错误。使用fr_FR.UTF-8会出现问题(并且存在区域设置)。这样做locale-gen fr将建立所有fr语言环境(fr_BE,fr_CH等)解决了该问题。也许试试看locale-gen en
Antony Gibbs,2016年

Answers:


10

第一:

sudo apt-get purge locales

然后:

sudo aptitude install locales

和著名的:

sudo dpkg-reconfigure locales

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


我有完全相同的问题。因此,通过此答案并包括jessie存储库,我可以进行安装locales而无需降级libc6
shgnInc

这没有帮助
aexl


7

我长期以来一直遇到这个问题,关于dpkg-reconfigure区域设置,locale-gen等的所有常规建议都没有帮助。因此,我对环境变量进行了一些测试,结果发现系统在LC_CTYPE环境变量方面很糟糕!UTF-8不是一个有效值。将其设置为en_US.UTF-8固定。

为了使更改永久生效,我跑了

update-locale LC_CTYPE=en_US.UTF-8

写入 /etc/default/locale。然后重新启动系统,以使其完全生效。


不幸的是,这产生了收益perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = "UTF-8", LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). *** update-locale: Error: invalid locale settings: LC_CTYPE=en_US.UTF-8
aexl

2

我以前在较旧的Debian安装中已经看到了这一点,虽然令人讨厌,但我从未见过它会引起问题。

如果

  /usr/bin/locale 

丢失,请尝试(以root用户身份):

  apt-get install libc-bin

应该安装libc-bin并提供/ usr / bin / locale。

sshd_config中的AcceptEnv行是非常标准的,并且不应成为造成问题的原因。


libc-bin已经安装,所以我对其进行了更新并尝试dpkg-reconfigure locales再次运行。
不高兴

现在是否存在/ usr / bin / locale?如果是这样,则输出是locale -a什么/etc/default/locale
乍得·费勒

/ etc / default / locale的内容:#由update-locale LANG = en_US.UTF-8生成的文件
blogjunkie 2011年

locale -a给我:区域设置:无法将LC_CTYPE设置为默认区域设置:无此类文件或目录C en_US.utf8 POSIX
blogjunkie 2011年

apt声称已安装libc-bin,但至少缺少一个文件(/ usr / bin / locale),并且重新安装libc-bin似乎已解决了该问题。你可以试试apt-get install --reinstall locales吗?然后,请尝试尝试locale-gen,这将重新生成所有未注释的语言环境/etc/locale.gen(您应该有一行en_US.UTF-8 UTF-8)。此后,看是否locale -a可行。
乍得·弗勒

2

作为Manoj,执行以下操作,但将其添加到#〜/ .bashrc中:

export LC_ALL=en_US.utf8
export LANGUAGE=en_US.utf8

1

如果在切换到远程系统时遇到错误,并且不想修改远程系统(例如,通过更改sshd_config),则可以在本地系统上执行以下操作(假设bash)

export LC_ALL=en_US
export LANGUAGE=en_US

接着 ssh user@remote


1

在我全新的Debian安装中,(最小)语言环境完全消失了。安装它(aptitude install locales)并运行locale-gen确实可以解决问题。伙计们,就像Chad Feller提到的那样,但是请先检查软件包是否locales安装。


0

如果您在/etc/ssh/sshd_configUsePAM no)中为ssh禁用了PAM身份验证,则其中的负责配置/etc/pam.d/login无效:

session required pam_env.so readenv=1 envfile=/etc/default/locale

结果:/etc/default/locale似乎没有效果。

所以,你必须配置你的客户端发送LANG瓦尔或导出ENV在配置文件脚本像瓦尔~/.profile~/bashrc等等。

更多:http : //wiki.debian.org/Locale#Standard


0

我使用的是德语VPS,因为没有安装英语包,所以无法更改语言环境。

安装后,我终于可以更改语言环境

aptitude install language-pack-en

0

在Debian系统上,这将解决您的问题:

apt-get install locales-all

在Ubuntu系统上安装特定的语言包,例如:

apt-get install language-pack-en

locale-gen en_US.UTF-8


0

Mac连接到全新的Debian 10安装。在整个Stack Exchange上搜索的所有答案都没有帮助。这是做的(也是直接且可靠的):

sed -i "s/^AcceptEnv/#AcceptEnv/g" /etc/ssh/sshd_config

在您的Debian机器上运行此程序,它将阻止连接的Mac终端弄乱服务器的语言环境(更多信息)。

另外,这甚至可以提高服务器的安全性

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.