로케일 아카이브의 크기를 어떻게 줄입니까?


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

... 내가해야 할 다른 일이 있습니까?

답변:


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...이를 방지하는 방법은 무엇입니까?
레드 크리켓

2
나는 이것을 시도하면서 조심할 것입니다. CentOS 서버를 중단하고 솔루션을 파악하는 데 30 분이 걸렸습니다. unix.stackexchange.com/questions/246705/…
PJ Brunet

rhel의 dnf ??? 확실히 당신은 yum ;-)을 의미합니다
Dani_l

1

Amazon Linux에서

  1. 로케일 아카이브에서 사용되지 않은 아카이브를 삭제하십시오. 이 명령은 en으로 시작하는 것을 제외한 모든 것을 삭제합니다.

    localedef --delete-from-archive $(localedef --list-archive | grep -v -i ^en | xargs)
    
  2. 로케일 아카이브가 제거 된 로케일 아카이브 파일을 새 locale-archive.tmpl 파일로 복사하십시오.

    cp /usr/lib/locale/locale-archive /usr/lib/locale/locale-archive.tmpl
    
  3. 빌드 로케일 아카이브를 실행하십시오.

    build-locale-archive
    

참고 : build-locale-archive를 실행하면 각 실행 후 .tmpl 파일을 0으로 만들고 다시 실행하면 오류가 표시됩니다.

build-locale-archive: cannot read archive header

현재 로케일 아카이브를 locale-archive.tmpl에 복사하거나 glibc-common을 다운로드하여 압축을 풀면 locale-archive.tmpl 파일의 사본을 얻을 수 있습니다. glibc-common RPM에서 기본 locale-archive.tmpl 파일을 사용하여 실행 build-locale-archive하면 전체 (~ 102MB) 로케일 아카이브가 작성됩니다. 더 작은 크기의 아카이브를 얻으려면 위의 단계를 반복해야합니다.

위의 경우 내 로케일 아카이브가 en_ * 로케일을 제외한 모든 로케일을 삭제하면 102MB에서 3.4MB로 감소했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.