Yerel arşivin boyutunu nasıl küçültebilirim?


18

locale-archiveBazı RHEL6 sistemlerimdeki dosyanın boyutunu küçültmem gerekiyor .

İşte benim sistemdeki dosya:

[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

Bunu yaptım ...

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

... ben de zh_CNöyle kurtulabileceğimi düşündüm ...

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

... ve zh_CNartık böyle listelenmediğini görebiliyorum ...

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

... ama boyutu locale-archiveküçülmez ...

[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

... yapmam gereken başka bir şey var mı?

Yanıtlar:


24

Öncelikle aşağıdakileri yaparak gereksiz tüm yerel ayarları kaldırabilirsiniz:

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

Nerede ^ensaklamak istediğiniz yerel ayarla değiştirilebilir?

Sonra

$build-locale-archive

Bu size benzer bir hata verirse

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

O zaman bunu dene

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

Bu yine de başarısız olursa, sürümünüzü kontrol edin. Bu sayfaya göre, yeni sürümlerde yer kazanmak için arşivi yeniden oluşturmak için gerekli dosyalar bulunmuyor. Koşman gerekecek

yum reinstall glibc-common

Red Hat Enterprise Linux'un sonraki sürümlerinde, dnfbenzer bir uygulamayı kullanabilirsiniz.


3
Gerçi ben yürüttüğümde ana bilgisayar ile ssh bağlantımı kaybettim ... bunu build-locale-archiveönlemek için herhangi bir yolu?
Kırmızı Kriket

2
Bunu denerken dikkatli olurdum. CentOS sunucumu kırdım ve bir çözüm bulmam 30 dakika sürdü. unix.stackexchange.com/questions/246705/…
PJ Brunet

df içinde rhel ??? Kesinlikle yum ;-) demek
Dani_l

1

Amazon Linux'ta

  1. Kullanılmayan arşivleri yerel arşivden silin. Bu komut en ile başlayanlar dışındaki tüm öğeleri siler.

    localedef --delete-from-archive $(localedef --list-archive | grep -v -i ^en | xargs)
    
  2. Locale-archive (kaldırılmış yerel ayarlarla) dosyasını yeni locale-archive.tmpl dosyası olacak şekilde kopyalayın

    cp /usr/lib/locale/locale-archive /usr/lib/locale/locale-archive.tmpl
    
  3. Build-locale-arşivini çalıştır

    build-locale-archive
    

Not: build-locale-archive komutunu çalıştırırsanız, her çalıştırmadan sonra .tmpl dosyasını sıfırlar ve tekrar çalıştırdığınızda hatayı görürsünüz:

build-locale-archive: cannot read archive header

Locale-archive.tmpl dosyasının bir kopyasını, geçerli locale-arşivini locale-archive.tmpl dosyasına kopyalayarak veya glibc-common dosyasını indirerek ve açarak alabilirsiniz. Glibc-ortak RPM'den varsayılan locale-archive.tmpl dosyasını kullanır ve build-locale-archivebuna karşı çalıştırırsanız , tam (~ 102MB) bir yerel arşiv oluşturur. Daha küçük boyutlu arşiv elde etmek için yukarıdaki adımları tekrarlamanız gerekir.

Yukarıdaki durumda, yerel ayarımın en_ * olanlar dışındaki tüm yerel ayarların silinmesi 102MB'dan 3.4MB'ye düştü

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.