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
dnf
Red Hat Enterprise Linux의 최신 버전에서는 유사한 애플리케이션을 사용할 수 있습니다 .
답변2
아마존 리눅스에서
로캘 아카이브에서 사용하지 않는 아카이브를 제거합니다. 이 명령은 en으로 시작하는 항목을 제외한 모든 항목을 제거합니다.
localedef --delete-from-archive $(localedef --list-archive | grep -v -i ^en | xargs)
locale-archive(삭제된 로캘) 파일을 새 locale-archive.tmpl 파일에 복사합니다.
cp /usr/lib/locale/locale-archive /usr/lib/locale/locale-archive.tmpl
빌드-로캘-아카이브 실행
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에 없는 파일에 대해 이 작업을 수행하는 방법을 찾으려고 노력했지만 지금까지 모든 시도가 실패했습니다. 그러나 이 문제를 해결하려면 다른 스레드가 필요할 수 있습니다.