web-dev-qa-db-ja.com

どうすればlocale-archiveのサイズを小さくできますか?

一部のRHEL6システムでlocale-archiveファイルのサイズを小さくする必要があります。

これが私のシステム上のファイルです:

[root@-dev-007 locale]# ls -l
total 96800
-rw-r--r--. 1 root root 99158704 Sep  9 15:22 locale-archive
-rw-r--r--. 1 root root        0 Jun 20  2012 locale-archive.tmpl

だから私はこれをしました...

[root@-dev-007 locale]# localedef --list | grep zh_CN
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8

... zh_CNを削除できると思ったので...

[root@-dev-007 locale]# localedef --delete-from-archive zh_CN

... zh_CNがリストに表示されないことがわかります...

[root@-dev-007 locale]# localedef --list | grep zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8

...しかし、locale-archiveのサイズは小さくなりません...

[root@-dev-007 locale]# ls -l  
total 96800
-rw-r--r--. 1 root root 99158704 Sep  9 17:16 locale-archive
-rw-r--r--. 1 root root        0 Jun 20  2012 locale-archive.tmpl

...他に必要なことはありますか?

18
Red Cricket

最初に、次のようにして不要なロケールをすべて削除できます。

$localedef --list-archive | grep -v -i ^en | xargs localedef --delete-from-archive

どこ ^enは、保持したいロケールに置き換えることができます

その後

$build-locale-archive

これにより、次のようなエラーが発生する場合

$build-locale-archive
/usr/sbin/build-locale-archive: cannot read archive header

次にこれを試してください

$mv /usr/lib/locale/locale-archive /usr/lib/locale/locale-archive.tmpl
$build-locale-archive

それでも失敗する場合は、バージョンを確認してください。 このページ によると、新しいバージョンには、スペースを節約するためにアーカイブを再構築するために必要なファイルがありません。実行する必要があります

yum reinstall glibc-common

Red Hat Enterprise Linuxの今後のリリースでは、同様のアプリケーションであるdnfを使用できます。

24
Joel Taylor

Amazon Linuxの場合

  1. 未使用のアーカイブをlocale-archiveから削除します。このコマンドは、enで始まるものを除くすべてを削除します。

    localedef --delete-from-archive $(localedef --list-archive | grep -v -i ^en | xargs)
    
  2. Locale-archive(ロケールが削除された)ファイルを新しいlocale-archive.tmplファイルにコピーします。

    cp /usr/lib/locale/locale-archive /usr/lib/locale/locale-archive.tmpl
    
  3. Build-locale-archiveを実行します。

    build-locale-archive
    

注: build-locale-archiveを実行すると、実行ごとに.tmplファイルがゼロになり、再度実行するとエラーが表示されます。

build-locale-archive: cannot read archive header

現在のlocale-archiveをlocale-archive.tmplにコピーするか、glibc-commonをダウンロードして解凍することにより、locale-archive.tmplファイルのコピーを取得できます。 glibc-common RPMのデフォルトのlocale-archive.tmplファイルを使用してbuild-locale-archiveを実行すると、完全な(〜102MB)ロケールアーカイブが作成されます。小さいサイズのアーカイブを取得するには、上記の手順を繰り返す必要があります。

上記の場合、ロケールアーカイブのen_ *以外のすべてのロケールを削除すると、102MBから3.4MBになりました。

2
James McDonald