我需要如何处理“ man:无法设置语言环境;确保$ LC_ *和$ LANG是正确的”


20

我输入man sudoers但得到

man: can't set the locale; make sure $LC_* and $LANG are correct
No manual entry for sudoers

这是什么意思?


我对OS X相似的问题,并能够通过注释掉修复它SendEnv LANG LC_*/etc/ssh/ssh_config
Ilya I

Answers:


13

您的语言环境尚未设置。在Debian-Base你应该dpkg-reconfigure locales用来设置它。

有些packages依赖于locales package它,variable例如LC_* series...!

这意味着$LANG是空的。


6

由环境变量指示的语言环境设置使用系统上不可用的语言环境名称。

语言环境设置控制命令和终端使用的字符集(LC_CTYPE),排序规则(LC_COLLATE),日期格式(LC_TIME),数字(LC_NUMERIC)和货币数量(LC_MONETARY),消息的语言(LC_MESSAGES)等。这些值变量是语言环境名称。在大多数系统上,名称的格式为xx_YYxx_YY@variantxx_YY.charsetwhere xx是两个字母的语言代码YY一个两个字母的国家代码

运行命令locale以查看当前设置。运行locale -a以查看可用的语言环境名称。

如果您想使用的语言环境缺失,则可能需要生成它。这是依赖于分布的。例如,在Debian上,dpkg-reconfigure locales以root用户身份运行。在Ubuntu上,运行locale-gen xx_YY以生成locale xx_YY


1

这意味着您的系统不知道该信息应以哪种语言显示。

粘贴区域-a的输出可能是你haven`t产生的语言环境,这是一个有点发行特定但通常运行区域根将产生的语言环境,因此你删除错误。看一下这个链接


1

以下是对use的推荐的补充dpkg-reconfigure locales,对我来说是失败的(我的直觉是,如果它可以正常工作,我就不会遇到这个问题。

问题

me@pc:~$ man
man: can't set the locale; make sure $LC_* and $LANG are correct
What manual page do you want?

首先尝试解决它,失败

me@pc:~$ sudo dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "en_US"
    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
Generating locales...
  en_AG.UTF-8... up-to-date
  ...(lines omitted)...

第二次尝试,成功。我仍然在en_ZW上遇到错误,但是我没有使用它。

me@pc:~$ sudo locale-gen en_US en_US.UTF-8 && sudo dpkg-reconfigure locales
...
me@pc:~$ man
what manual page do you want?

man命令上不再有LOCALE错误!

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.