不要な言語パックをすべて削除する方法


11

/usr/share/help70か国語のubuntuヘルプファイルがあることに気づきました。私が話すのは2つだけで、実際には1つだけ計算します。また、/ usr / share / help-langpackへの壊れたシンボリックリンクがたくさんあることにも気付きました。

不要なすべての言語を削除したいだけです。すべてをrm -r幸せにせずにこれを行うにはどうすればよいですか?私の主な目的はマシン上の余分なものを取り除くことですので、新しいパッケージをインストールせずにこれを行う方法を探しています。できればdpkgまたはaptでこれを行う方法を見つけたいのですが。


1
これらのシンボリックリンクは、すべてのマシンにすべての言語でヘルプファイルをインストールしないようにするための設定の一部です。そう、はい、かなりの数の「壊れた」シンボリックリンクがありますが、それはヘルプファイルより優れていますよね?私のアドバイス:気にしないでください。シンボリックリンクはさまざまなパッケージに属しており、それらを削除すると、次にそれぞれのパッケージが更新されたときに再び表示されます。
Gunnar Hjalmarsson 2014

回答:


10


localeコマンドを使用して、システムで生成および設定されているロケールを確認できます。

  • locale ...現在のロケール設定を一覧表示します
  • locale -a ...システムで生成されたすべてのロケールを一覧表示します
  • locale -a -v ...すべてのロケールをリストし、有用な追加情報(ロケール情報データファイルを含むディレクトリ名など)を表示します

上記の最後のコマンドを実行すると/usr/lib/locale/、生成されたすべてのロケールがにあることがわかります。不要な場合は、それらを削除できます。ロケール情報の各パックは、テキストファイルとその他のディレクトリを含むディレクトリです。

システムでサポートするすべてのロケールは、のテキストファイルにリストされています/var/lib/locales/supported.d/。これらのファイルには、言語タグと文字マップの2つの列があります。

私のシステムには米国英語のみを認識させたいので、enと呼ばれるファイルが1つだけあります。

en_US UTF-8

エラーメッセージ
ロケールコマンドの発行時にエラーメッセージが表示された場合は、次のようになります。

locale: Cannot set LC_ALL to default locale: No such file or directory

ファイル/etc/default/localeが存在し、次のような適切な内容であることを確認してください。

LANG="en_US"
LANGUAGE="en_US:en"

不要なロケールデータを取り除く-ステップバイステップ

これで、システムのロケール情報のクリーンアップを開始するために必要なすべての詳細がわかりました。

  1. でロケールファイルを編集し、/var/lib/locales/supported.d/不要なロケールをすべて削除します(1行に1つのロケール)。
  2. 作成および編集/etc/default/locale(上記の例を参照)
  3. 生成されたすべてのロケールデータを削除します。 rm -rfv /usr/lib/locale/*
  4. 新しいロケールを再生成します。 locale-gen

それで全部です!マシンを再起動して、変更を有効にします。次に、上記のロケールコマンドの例を1つ以上実行して、期待どおりの結果になることを確認します。

~# locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
~# 
~# locale -a -v
locale: en_US.utf8      directory: /usr/lib/locale/en_US.utf8
-------------------------------------------------------------------------------
    title | English locale for the USA
   source | Free Software Foundation, Inc.
  address | 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
    email | bug-glibc-locales@gnu.org
 language | English
territory | USA
 revision | 1.0
     date | 2000-06-24
  codeset | UTF-8

ロケールとロケール関連ファイル(例:manページ)の削除を処理できるDebian / Ubuntu用のパッケージがありますlocalepurge。あなたはそれを発行してインストール/実行することができます:

sudo apt-get install localepurge

インストールしたら、これを実行する必要があります:

dpkg --configure localepurge

言語設定が正しく設定されていることを確認します。

インストール後に手動で実行するには(dpkg自動的に実行するたびに実行する必要があるので、実際に実行する必要はありませんが)次のようにします。

sudo localepurge

ただし、使用する前にマニュアルページを読んでください。あなたがそれなしであなたの物事を成し遂げることができるならば、それを手放すことはおそらくより安全です。

このフォーラムから

ref:
1. 公式ドキュメントのLocaleConf
2. Linuxのmanページ
3. wikipeadiaのロケール
4. man localepurge


私のコンピュータに既にインストールされているものでこれを行う方法が見つからない場合、私は間違いなくこれを使用します。
blanket_cat 2014

1
@knotech単にインストールして実行せず、アンインストールしてみませんか。パッケージをインストールすることについてなぜあなたが気難しいのかわからない。
ブライアングラハム

1
@knotechは、公式ドキュメントを参照help.ubuntu.com/community/LocaleConfを
αғsнιη

申し訳ありませんが、localpurgeがOPの質問に何らかの方法で対処するとは思いません。
Gunnar Hjalmarsson 2014

1
OPは言語パックについて尋ねました...しかし、彼が冗長なロケールも削除することに関心があると仮定して、なぜlocalpurgeをインストールしますか?なぜlocale-gen --purgeですか?
Gunnar Hjalmarsson 2014

3

実際にインストールされている言語については、[システム設定]-> [言語サポート ]に移動し、[言語インストール/削除... ]ボタンをクリックします。次に、不要な言語のチェックを外します。

のシンボリックリンク/usr/share/helpについては、質問に対する私のコメントをご覧ください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.