Come posso ridurre la dimensione dell'archivio locale?


18

Ho bisogno di ridurre la dimensione del locale-archivefile su alcuni dei miei sistemi RHEL6.

Ecco quel file sul mio sistema:

[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

Quindi ho fatto questo ...

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

... quindi ho pensato di potermi liberare zh_CNcosì ...

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

... e vedo zh_CNche non viene più elencato in questo modo ...

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

... ma la dimensione del locale-archivenon si riduce ...

[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

... c'è qualcos'altro che devo fare?

Risposte:


24

Puoi prima rimuovere tutte le localizzazioni non necessarie effettuando:

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

Dove ^enpuò essere sostituito dalle impostazioni internazionali che si desidera conservare

Poi

$build-locale-archive

Se questo ti dà un errore simile a

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

Allora prova questo

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

Se il problema persiste, controlla la tua versione. Secondo questa pagina le versioni più recenti non hanno i file necessari per ricostruire l'archivio al fine di risparmiare spazio. Dovrai correre

yum reinstall glibc-common

Nelle versioni successive di Red Hat Enterprise Linux, è possibile utilizzare dnfun'applicazione simile.


3
Ho notato, tuttavia, che ho perso la mia connessione SSH con l'host quando eseguo build-locale-archive... un modo per impedirlo?
Red Cricket,

2
Starei attento a provare questo. Ho rotto il mio server CentOS e mi ci sono voluti 30 minuti per trovare una soluzione. unix.stackexchange.com/questions/246705/…
PJ Brunet

dnf in rhel ??? Sicuramente intendi yum ;-)
Dani_l

1

Su Amazon Linux

  1. Elimina gli archivi inutilizzati dall'archivio locale. Questo comando cancella tutto tranne quelli che iniziano con en.

    localedef --delete-from-archive $(localedef --list-archive | grep -v -i ^en | xargs)
    
  2. Copia il file locale-archive (con locale rimosso) come nuovo file locale-archive.tmpl

    cp /usr/lib/locale/locale-archive /usr/lib/locale/locale-archive.tmpl
    
  3. Esegui build-locale-archive

    build-locale-archive
    

Nota: se esegui build-locale-archive, azzera il file .tmpl dopo ogni esecuzione e quando lo eseguirai di nuovo vedrai l'errore:

build-locale-archive: cannot read archive header

Puoi ottenere una copia del file locale-archive.tmpl copiando l'attuale locale-archive in locale-archive.tmpl o scaricando e scompattando glibc-common. Se si utilizza il file locale-archive.tmpl predefinito dall'RPM glibc-common e si esegue build-locale-archivesu di esso, verrà creato un archivio locale completo (~ 102 MB). È necessario ripetere i passaggi precedenti per ottenere un archivio di dimensioni inferiori.

Nel caso precedente, eliminando tutte le impostazioni locali tranne quelle en_ * il mio archivio delle impostazioni locali è passato da 102 MB a 3,4 MB

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.