私は浮浪者の初心者です。コンピューターに仮想マシン(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時間探しましたが、それでも直せません。
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 locales
でNoneを選択した結果です( Debian Wiki を参照)。
/etc/environment
は Debian Lenny(5.0)以降廃止予定 です。
Bashrcのルートの下に以下を追加します。
vi /root/.bashrc
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
その後、システムを再起動します。
次に試してください:
localedef -i en_US -f UTF-8 en_US.UTF-8
私の場合、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
楽しい。
LC_ALL
をC
に設定できます。
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
も確認してください。