web-dev-qa-db-ja.com

vagrant centos 6にSSH接続すると警告setlocale LC_CTYPEが発生しました

私は浮浪者の初心者です。コンピューターに仮想マシン(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=

1時間探しましたが、それでも直せません。

14
Hien Nguyen

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が空であることを確認する必要があります。これは、ユーザーがSSH経由でアクセスする場合に推奨されるdpkg-reconfigure localesNoneを選択した結果です( Debian Wiki を参照)。

/etc/environmentDebian Lenny(5.0)以降廃止予定 です。

33
Dominik

Bashrcのルートの下に以下を追加します。

vi /root/.bashrc

export LC_ALL=en_US.UTF-8

export LANG=en_US.UTF-8

その後、システムを再起動します。

2
Slava

次に試してください:

localedef -i en_US -f UTF-8 en_US.UTF-8
1
Slava

私の場合、Slackware64 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

楽しい。

1

LC_ALLCに設定できます。

export LC_ALL=C

またはVMに接続する前のプレフィックス:

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_configおよびman sshd_configも確認してください。

0
kenorb