システムロケールを削除する方法パッケージで求められるロケールとは対照的に 不要なロケールを削除する方法 ?
次のエラーが発生します最近:
locale: Cannot set LC_ALL to default locale: No such file or directory
私のシステムにはen_US
ロケールがあります:
$ grep en /var/lib/locales/supported.d/local
en_US ISO-8859-1
en_US.UTF-8 UTF-8
$ locale -a | grep en
en_US
en_US.iso88591
en_US.utf8
en
から不満があるので、Perl
ではありません。
Perl: warning: Setting locale failed.
Perl: warning: Please check that your locale settings:
LANGUAGE = "",
LC_ALL = (unset),
LC_MEASUREMENT = "en",
LC_PAPER = "en",
LC_MONETARY = "en",
LC_NAME = "en",
LC_ADDRESS = "en",
LC_NUMERIC = "en",
LC_TELEPHONE = "en",
LC_IDENTIFICATION = "en",
LC_TIME = "en",
LANG = "C"
だから私は ロケールを追加en
によって:
% locale-gen en
Generating locales (this might take a while)...
en_AG.UTF-8... done
en_AU.UTF-8... done
en_BW.UTF-8... done
en_CA.UTF-8... done
en_DK.UTF-8...^C
上記のロケール(en_US
のみ)は必要ありませんが、削除できません-次の手順に従いました https://serverfault.com/questions/394610/remove-a-locale-in-ubunt
しかし、最後のステップになると、私はまだ得ています:
% locale-gen
Generating locales (this might take a while)...
en_AG.UTF-8... done
en_AU.UTF-8... done
en_BW.UTF-8... done
en_CA.UTF-8... done
en_DK.UTF-8...^C
上記のすべてのロケールを削除してen_US
のみを保持する方法
結論と補足
Gunnarの回答のおかげで、これらの余分なロケールの/etc/locale.gen
のエントリが原因となっています。 FTRだけですが、これがlocale-gen en
で/etc/locale.gen
が変更された点です。
$ sed '/^#/d; /en/p;' /etc/locale.gen
en_AG UTF-8
en_AG UTF-8
en_AU.UTF-8 UTF-8
en_AU.UTF-8 UTF-8
en_BW.UTF-8 UTF-8
en_BW.UTF-8 UTF-8
en_CA.UTF-8 UTF-8
en_CA.UTF-8 UTF-8
en_DK.UTF-8 UTF-8
en_DK.UTF-8 UTF-8
en_GB.UTF-8 UTF-8
en_GB.UTF-8 UTF-8
en_HK.UTF-8 UTF-8
en_HK.UTF-8 UTF-8
en_IE.UTF-8 UTF-8
en_IE.UTF-8 UTF-8
en_IL UTF-8
en_IL UTF-8
en_IN UTF-8
en_IN UTF-8
en_NG UTF-8
en_NG UTF-8
en_NZ.UTF-8 UTF-8
en_NZ.UTF-8 UTF-8
en_PH.UTF-8 UTF-8
en_PH.UTF-8 UTF-8
en_SC.UTF-8 UTF-8
en_SC.UTF-8 UTF-8
en_SG.UTF-8 UTF-8
en_SG.UTF-8 UTF-8
en_US.UTF-8 UTF-8
en_US.UTF-8 UTF-8
en_ZA.UTF-8 UTF-8
en_ZA.UTF-8 UTF-8
en_ZM UTF-8
en_ZM UTF-8
en_ZW.UTF-8 UTF-8
en_ZW.UTF-8 UTF-8
比較として、デフォルトは次のようになります(つまり、上記の追加のロケールがない場合)。
$ sed '/^#/d;' /etc/locale.gen; echo ---
---
編集する必要があります/etc/locale.gen
して、不要なロケールにコメントを付けます。次に実行します
Sudo locale-gen
en
という名前のロケールは存在しません。おそらく使いたいのはen_US.UTF-8
ではなくen_US
。 (後者は、latin1エンコーディングを有効にします。)