locale
MacユーザーがSSHを介してLinuxシステムにログインすると、エラーについて不平を言い、誤ったLC_CTYPE=UTF-8
設定について不平を言うさまざまなフォーラムで多くの質問が見つかりました。
LC_*
もう少し詳しく説明すると、MacOSのシェルはこの値を設定しているように見え、SSH経由でログインすると(端末などでオプションを有効にした場合)、ローカル変数がリモートシステムにエクスポートされます。
LC_CTYPE
Linuxは有効なロケールに設定する必要があると主張localegen
しますが(時々Linuxシステムの管理者としてこれを変更することができます)、UTF-8
当初はロケールではありません。
私のもの基本的な問題は、これがMacOSのバグですか?それとも、変数が完全に指定されたロケール名に設定されるべきであると主張するLinuxは間違っていますか?
第二に、どちらが正しいのか、そしてその理由は何であるかを議論できるように、これはどこに記載されていますか?
第三に、Macユーザー(自分自身を含む)が異なるようにすることができるか、別のものを必要とするものがありますか?
確実な解決策は、次のようなものを配置することです。
LC_CTYPE=en_US.UTF-8
ただし、これは明らかに個人アカウントの問題のみを解決し、.bash_profile
他の設定と一致する場合と一致しない可能性がある値をハードコードするだけです。locale
ベストアンサー1
私は誰が「正しいと誰が正しいか」について詳細に説明していませんが、その問題のために同じように迷惑になりました。これに対するいくつかの解決策は次のとおりです。
- サービス端末:
- 変更/
AcceptEnv LC_*
無効/etc/ssh/sshd
- 短所:システムのデフォルトに設定されます。
- 編集する
.profile
- 欠点:シングルユーザー
- 編集
/etc/bash*
する/etc/profile
- 欠点:アップデートに戻すことができる
- 変更/
- 顧客:
alias ssh="LC_CTYPE=\"${LANG}\" ssh"
.bashrc
//.profile
どこでも- 欠点:シングルユーザー
.bashrc
/.profile
のサーバー側と同じ...- 端末で設定変更/追加
- 欠点:ローカルでもリモートでもフルセッション
だから私はついにサーバーにmac-locale-fix.sh
次の行を作成しました/etc/profile.d
(私の場合はraspian)。
[ "A${LC_CTYPE}" == "AUTF-8" ] && export LC_CTYPE="${LANG}"
これが他の人に役立つことを願っています...