
たとえば、不要なロケールがいくつかインストールされていることに気付きましたfirefox-locale-
。必要なロケールは 1 つだけです。
残りをすべて削除するにはどうすればいいですか?
答え1
まず、locale
現在のロケール設定を印刷するコマンドを入力します。また、 を使用して、locale -a
使用可能なすべてのロケールのリストを表示することもできます。
未使用のロケールのクリーンアップ
インストールするlocalepurge
と、不要な言語が削除され、保持したい言語が選択されます。この方法では、システムのロケール設定は変更されないことに注意してください。選択していないロケールが消去されるだけです。自己責任で使用してください。
sudo apt-get install localepurge
その後、再起動することができますまたは走ろうとする source /etc/default/locale
。
これを再設定するには、ターミナルに次のように入力するだけです。
sudo dpkg-reconfigure localepurge
別の方法ここで回答は
sudo locale-gen --purge <locales YOU WANT TO KEEP>
参照
答え2
常にさまざまなロケールに切り替える必要がない限り、使用していないロケールをアンインストールして、システム内のストレージ容量をいくらか解放することができます。
ターミナル経由でLocalepurgeをインストールします。
sudo apt-get install localepurge
インストールが完了すると、システムから不要なロケール ファイルがすべて削除されます。
答え3
注記:以下のコマンドの一部には root 権限が必要なので、 の使用を検討してくださいsudo
。
基本情報
によるとman locale-gen
ロケールは複数のファイルで設定されます。
/etc/locale.gen
メイン構成ファイルは、単純な形式です。空ではなく、# で始まらないすべての行は、構築されるロケール定義として扱われます。
/var/lib/locales/supported.d/
言語パック パッケージによって提供される locale.gen スニペットを含むディレクトリ。これらを手動で編集しないでください。パッケージのアップグレード時に上書きされます。
ロケールは 1 つのファイルにコンパイル (生成) されます。
/usr/lib/locale/locale-archive
通常のデフォルト ロケール アーカイブの場所です。
場所に関する包括的な詳細アーチウィキ。
ロケールとロケールの確認
利用可能な(既知の)ロケールを一覧表示するには、次のいずれかのコマンドを実行します(出力には若干の違いがあります)。
locale -a
localectl list-locales
(すでに)生成されたロケールを確認するには、次のコマンドを実行します。
localedef --list-archive
現在使用されているロケールを確認するには、次のいずれかのコマンドを実行します (出力には若干の違いがあります)。
locale
localectl
(新しい)ロケールの設定と生成
ロケールは通常、 の行のコメントを解除することによって設定され/etc/locale.gen
、その後 を実行するlocale-gen
必要があります。
nano /etc/locale.gen # uncomment desired lines (locales)
locale-gen
これにより、 内/usr/lib/locale/locale-archive
のコメントされていない行ごとに、以前にコンパイルされたかどうかに関係なく、ロケールが にコンパイル (生成) されます。/etc/locale.gen
/var/lib/locales/supported.d/
あるいは、コマンド
locale-gen <locale>
locale-gen
目的のロケールを生成するときに、対応する行のコメントを解除し、この行のみを生成します。
注意: の実装はlocale-gen
ディストリビューションに依存します。たとえば、上記のコマンドは Ubuntu/Debian では有効ですが、ArchLinux では有効ではありません。
ロケールの削除
を発行するとlocale-gen
、コンパイルされたアーカイブが消去され、 内/etc/locale.gen
および の下にあるすべてのロケール/usr/lib/locale/locale-archive
が新たに再生成されます。このコマンドは、locale-gen --purge <locale>
修飾子が示すことではなく、その逆のことを行います。つまり、指定されたものを除くすべてのコンパイル済みロケールを削除します。 が発行されるか、更新が実行されたときに特定のロケールだけが生成されるようにするには、と のlocale-gen
両方を考慮する必要があります。/etc/locale.gen
/usr/lib/locale/locale-archive
でロケールを削除するには/etc/locale.gen
、必要な行をコメント化し、 を使用してロケールを再生成するだけですlocale-gen
。
下のロケールを削除するのは、/var/lib/locales/supported.d/
少し複雑です。すべてのファイルは/var/lib/locales/supported.d/<code>
パッケージ に依存しているためlanguage-pack-<code>-base
、前者の変更は後者が更新されると復元されます。これを解決するには、 の下のファイルを更新するパッケージを保持するだけです/var/lib/locales/supported.d/
。Ubuntu/Debian でこれを実現するコマンドは次のとおりです。
apt-mark language-pack-<code>-base
保留中のパッケージを更新するには、マークを外すそれか単に--ignore-hold
。
回避策。より侵入的だが一般的な解決策は、以下の変更を防ぐため、/var/lib/locales/supported.d/
以下のファイルを設定することである。「不変 (i)」属性したがって、ファイルを削除するのではなく、空にします。たとえば、次のようになります。
cd /var/lib/locales/supported.d/
rm <code> && touch <code> # <code> has been emptied
lsattr <code> # regular attributes
chattr +i <code> # adding (+) immutable
lsattr <code> # checking attributes
ロケールの設定
ロケールを設定および生成しても、システム ロケールは設定されません。これを実現するには、次のコマンドのいずれかを使用します。
echo LANG=<code> | sudo tee /etc/locale.conf # reboot (might be ignored in Ubuntu)
localectl set-locale LANG=<code>