ロケールアーカイブのサイズを縮小するにはどうすればよいですか?


18

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

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

[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

...他に何かする必要がありますか?

回答:


24

最初に、不要なロケールをすべて削除します:

$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は、同様のアプリケーションであるを使用できます。


3
しかし、実行時にホストへのssh接続が失われることに気づきましたbuild-locale-archive...これを防ぐ方法はありますか?
レッドクリケット

2
私はこれを慎重に試みます。CentOSサーバーを壊して、30分かけて解決策を見つけました。unix.stackexchange.com/questions/246705/...
PJ黒髪

rhelのdnf ??? 確かにあなたはヤムを意味します;-)
Dani_l

1

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

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

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