로캘 아카이브의 크기를 어떻게 줄일 수 있나요?

로캘 아카이브의 크기를 어떻게 줄일 수 있나요?

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

dnfRed Hat Enterprise Linux의 최신 버전에서는 유사한 애플리케이션을 사용할 수 있습니다 .

답변2

아마존 리눅스에서

  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를 실행하면 각 실행 후 .tmpl 파일이 0이 되고 다시 실행하면 오류가 표시됩니다.

build-locale-archive: cannot read archive header

현재 locale-archive를 locale-archive.tmpl에 복사하거나 glibc-common을 다운로드하고 압축을 풀어 locale-archive.tmpl 파일의 복사본을 얻을 수 있습니다. glibc-common RPM에서 기본 locale-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에 없는 파일에 대해 이 작업을 수행하는 방법을 찾으려고 노력했지만 지금까지 모든 시도가 실패했습니다. 그러나 이 문제를 해결하려면 다른 스레드가 필요할 수 있습니다.

관련 정보