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
…他にやるべきことはありますか?
答え1
まず、次の手順を実行して不要なロケールを削除できます。
$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
dnf
Red Hat Enterprise Linuxの最新バージョンでは、同様のアプリケーションを使用できます。
答え2
Amazon Linuxで
ロケールアーカイブで使用されていないアーカイブを削除します。このコマンドは、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を実行すると、各実行後に.tmplファイルが0になり、再実行するとエラーが表示されます。
build-locale-archive: cannot read archive header
現在の locale-archive を locale-archive.tmpl にコピーするか、glibc-common をダウンロードして解凍して locale-archive.tmpl ファイルのコピーを取得します。 glibc-common RPMからデフォルトのlocal-archive.tmplファイルをインポートしてbuild-locale-archive
実行すると、完全な(〜102MB)ロケールアーカイブが作成されます。小さいサイズのアーカイブを取得するには、上記の手順を繰り返す必要があります。
上記の場合、en_*を除くすべてのロケールを削除すると、私のロケールアーカイブは102MBから3.4MBに減少しました。
答え3
もう少し簡単な方法は、
cp /usr/lib/locale/locale-archive /usr/lib/locale/locale-archive.tmpl
build-locale-archive --install="en"
ここで、「en」は「de:en:ja」などのコロンで区切られたリストです。
/usr/lib/localeにないファイルに対してこれを行う方法を見つけようとしましたが、これまですべての試みは失敗しました。ただし、この問題を解決するには別のスレッドが必要な場合があります。