web-dev-qa-db-ja.com

システムロケールを削除する方法

システムロケールを削除する方法パッケージで求められるロケールとは対照的に 不要なロケールを削除する方法

次のエラーが発生します最近

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 ---


---
2
xpt

編集する必要があります/etc/locale.genして、不要なロケールにコメントを付けます。次に実行します

Sudo locale-gen

enという名前のロケールは存在しません。おそらく使いたいのはen_US.UTF-8ではなくen_US。 (後者は、latin1エンコーディングを有効にします。)

3