一部の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
...他に必要なことはありますか?
最初に、次のようにして不要なロケールをすべて削除できます。
$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
を使用できます。
Amazon Linuxの場合
未使用のアーカイブをlocale-archiveから削除します。このコマンドは、enで始まるものを除くすべてを削除します。
localedef --delete-from-archive $(localedef --list-archive | grep -v -i ^en | xargs)
Locale-archive(ロケールが削除された)ファイルを新しいlocale-archive.tmplファイルにコピーします。
cp /usr/lib/locale/locale-archive /usr/lib/locale/locale-archive.tmpl
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になりました。