ロケールを設定しようとしましたが、en_US.UTF-8
成功しませんでした。インターネットの他の回答によると、まず次のようにロケールを生成する必要があります。
sudo locale-gen en_US.UTF-8
それでは適用してください
sudo dpkg-reconfigure locales
しかし、locale-gen
実行すると奇妙なことが発生します。
user@Host /home/user $ sudo locale-gen en_US.UTF-8
Generating locales (this might take a while)...
en_US.ISO-8859-1... done
Generation complete.
ご覧のとおり、実際にはUTF-8を生成しませんが、引き続きISO-8859-1に戻ります。LC_ALL
に設定できませんen_US.UTF-8
。おそらくビルドされていないからです。
私は何が間違っていましたか?私はDebian 8.1を使用しています。
答え1
DebianでUbuntuの方法を適用しようとしました。これは通常は機能しますが、この特別な場合は機能しません。
Ubuntu は Debian から派生しており、インストーラや GUI 以外はあまり変わりませんでした。順序locale-gen
は変更される他のいくつかの項目の1つです。理由はわかりません。
Debianでは、このlocale-gen
コマンドは引数を使用せず、設定されたロケールのリストに基づいてコンパイルされたロケール定義を再生成します。使用するロケール選択を変更するには、ファイルを編集してコマンドを/etc/locale.gen
実行します。locale-gen
または、dpkg-reconfigure locales
rootとして実行し、必要な追加ロケールを選択し(不要なロケールを選択解除)、[OK]をクリックします。
Ubuntuでは、引数なしでコマンドを実行すると、設定されたロケールのリストlocale-gen
に基づいてコンパイルされたロケール定義が再生成されます。ただし、一部のパラメータを渡すと、そのパラメータがリストに追加され、すぐに生成されます。ロケールリストはに保存されます/var/lib/locales/supported.d/local
。dpkg-reconfigure locales
実行すると、選択内容を変更する機会を与えることなく、コンパイルされたロケールのみが再生成されます。
要約すると、en_US.UTF-8
利用可能なロケールのリストに追加するには:
- Debian、インタラクティブ:
dpkg-reconfigure locales
- Debian、オートメーション:
sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen && locale-gen
- Ubuntu、自動化:
locale-gen en_US.UTF-8
答え2
インターネットを盲目的に信頼するのではなく、実際にlocal-genのmanファイルを読んだ後、locale-gen
実際に生成する必要があることがわかりました/etc/locale.gen
。コメントを削除してen_US.UTF-8
正常に作成しました。