如何减小区域归档的大小?


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

...还有什么我需要做的吗?

Answers:


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可以防止这种情况发生吗?
Red Cricket'Sept

2
我会小心尝试。中断了我的CentOS服务器,花了30分钟找出解决方案。unix.stackexchange.com/questions/246705/...
PJ布吕

dnf in rhel ???当然,您是说yum ;-)
Dani_l,2016年

1

在Amazon Linux上

  1. 从区域归档中删除未使用的归档。此命令删除所有以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或下载并解压缩glibc-common来获得locale-archive.tmpl文件的副本。如果您使用glibc通用RPM中的默认locale-archive.tmpl文件并对其运行build-locale-archive,它将创建完整的(〜102MB)locale-archive。您需要重复上述步骤以获取较小尺寸的存档。

在上述情况下,删除我的语言环境存档中的en_ *除外的所有语言环境,从102MB减小到3.4MB

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.