当我ssh连接到vagrant centos 6时,我收到了setlocale LC_CTYPE警告

wljmcqd8  于 2022-11-07  发布在  其他
关注(0)|答案(8)|浏览(147)

我是一个初学者。我试图用vagrant在我的电脑上创建一个虚拟机(cent os 6)。当我运行vagrant ssh时,它会打印以下警告:

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

当我运行locale时,得到的结果是:

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
LANG=en_US.UTF-8
LC_CTYPE=UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

我找了一个小时,但还是没能修好。

zu0ti5jz

zu0ti5jz1#

对于CentOS或Amazon AMI Linux,将以下行添加到/etc/environment(如果不存在,请创建它):

LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

要通过SSH控制台编辑此文件,请尝试

sudo nano /etc/environment

编辑

对于与Debian相关的发行版(Ubuntu等),您应该检查/etc/default/locale是否为空。这是在dpkg-reconfigure locales中选择 None 的结果,如果用户通过SSH访问,建议选择 * None *(参见Debian Wiki)。
/etc/environment自Debian Lenny(5.0)起已被弃用。

ojsjcaue

ojsjcaue2#

在bashrc中的root下添加以下内容:

vi /root/.bashrc

export LC_ALL=en_US.UTF-8

export LANG=en_US.UTF-8

然后重新启动系统。

mrfwxfqh

mrfwxfqh3#

您可以将LC_ALL设置为C,例如

export LC_ALL=C

或前缀:

LC_ALL=C ssh vagrant@localhost

注意:您也可以考虑为SSH配置(man ssh_config)设置SetEnv,如下所述。
要使其永久化,可以在~/.ssh/config中添加以下规则:

Host *
  SetEnv LC_ALL=C

假设您的服务器在/etc/ssh/sshd_config中获得了以下行:

AcceptEnv LANG LC_*

同时检查:man ssh_configman sshd_config

b09cbbtk

b09cbbtk4#

在我的例子中,在Slackware 64 14.1上,我得到了错误:

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

原来是缺少glibc包。
安装软件包:

glibc-2.17-x86_64-11_slack14.1
glibc-i18n-2.17-x86_64-11_slack14.1

解决了问题。
我的/etc/profile.d/lang.sh包含:

export LANG=en_DK.UTF-8
export LANGUAGE=en_DK.UTF-8
export LC_ALL=en_DK.UTF-8

export LC_COLLATE=C

请慢用

f0brbegy

f0brbegy5#

请尝试下一步:

localedef -i en_US -f UTF-8 en_US.UTF-8
zsohkypk

zsohkypk6#

这可能是由终端设置引起的。
对于iTerm2,取消选中此设置:
Profiles -> Terminal -> "Set locale variables automatically" .
上下文:如果您正在一个共享节点上工作,而您不能修改区域设置,则该警告可能是由您的终端尝试(并失败)更改区域设置引起的。

dy2hfwbg

dy2hfwbg7#

对于在MacOS中遇到此错误的用户:打开/etc/ssh/ssh_config文件(在您喜欢的任何编辑器中,我在示例中使用了vi编辑器)

sudo vi /etc/ssh/ssh_config
(enter sudo password)

在此文件中,注解掉下面的行:

SendEnv LANG LC_*

(use#用于注解:(一个月一个月)
请关闭文件。关闭并重新打开终端,然后重试ssh命令。
有关该问题的详细信息,请查看此技术博客:https://www.cyberciti.biz/faq/os-x-terminal-bash-warning-setlocale-lc_ctype-cannot-change-locale/

4ioopgfo

4ioopgfo8#

我用的是macOS,我把下面的内容放到我的~/.ssh/config里:

Host *
    SetEnv LC_CTYPE=

在我看来,这是更改ssh配置的最不具侵入性的方法。

相关问题