この自己回答の質問は、次の問題を解決します。
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
およびその他のロケール関連の問題。
編集:これを私自身の答えに制限することは、振り返ってみると、かなり非効率的であるように思われます。お気軽に2セント追加してください。またはあなたが惜しまない限り多く....
私たちは完全にシェル(bash)で作業しています。
誰もが最初にすべきことは
Sudo dpkg-reconfigure locales
出力は、上記のエラーと、スクリプトが生成するロケールのリストである可能性があります。そこに生成されたロケールは、システムに有効なロケールのみであることに注意してください。ご覧のとおり、言語設定は単なる環境変数の集まりです。楽しみのために、次のような別の言語のbashを試すことができます。
LANG=es_NI.UTF-8 bash
ls somedirectorynamethatdoesnotexistonyoursystem
Tu hablas espaniol? :-)(es_NI.UTF-8があなたのロケールのリストになかった場合は別のものを選択してください)
OK。明らかに、LANG環境変数は残りの設定に役立ちます。これは、スペイン語のbashで実行できるようになったためです。
dpkg-reconfigure locales
または、エラーメッセージがここに表示されたコマンドであれば、エラーは発生しないはずです。ある場合は、この投稿ではカバーされない、もっと不吉な問題があります。
では、この変数LANGをどこに設定しますか? /etc/
ディレクトリ(rgrep LANG /etc/*
を含む)をすばやく検索すると、ファイル/etc/default/locale
が表示されます。そこで、変数の値を別の/正しいものに設定できます。例えば
LANG=en_US.UTF-8
(これは常に機能するはずです)これを完了するには:エラーメッセージに記載されている変数はすべてLANGから「派生」します。つまり、デフォルトではLANGが設定されているものになりますが、シェルが必要な場合は好みに設定できます。別の言語を話す。パッケージlanguage-envはこれに役立ちます。
Sudo apt-get install language-env
set-language-env
このスクリプトは、.bashrcなどのエントリを自動的に作成することを目的としています。
自分で試したことはありません。
これが誰かに役立つことを願っています。
ところで:
ls usr/share/locale
の下にあります。私は多くの解決策を試しましたが、Debian7ではどれもうまくいきませんでした。
そこで、export LC_ALL=en_US.UTF-8
を/etc/default/locale
に追加しましたが、警告は消えました。
ドイツ語のVPSを使用していましたが、英語の言語パックがインストールされていなかったため、ロケールを変更できませんでした。
インストール後、ようやくロケールを変更できました
aptitude install language-pack-en
短い答え:
実行dpkg-reconfigure locales
ルートとして。
(ダイアログで、言語が見つかるまでEnter
を押しながら、その番号を確認し、番号を求められるまでもう一度Enter
を押します。言語の番号を入力します。Enter
、完了。よくわからない場合は、UTF8バージョンの言語を使用してください)