Oracle Linux(Red Hat 시리즈) 로케일이 누락되었습니다.

Oracle Linux(Red Hat 시리즈) 로케일이 누락되었습니다.

저는 dev oracle linux 7 시스템에 로그인하고 있는데 로그인하는 동안 다음 경고를 발견했습니다.

Last login: Thu Mar 24 15:23:29 2022 from x.x.x.x
-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)
-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.utf-8)

그래서 시스템의 모든 로케일을 확인하고 가장 기본적인 시스템 로케일만 가지고 있음을 확인합니다.

$localectl list-locales
C.utf8

$ locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
C
C.utf8
POSIX

문제는 사용 가능한 모든 로케일이 어디에 있습니까? 어떻게 다시 받을 수 있나요?

아래에 내 질문에 대한 답변이 있으며 다른 사람들을 위해 여기에 게시했습니다.

답변1

린 시스템 구축에 대한 열정을 가진 개발자가 이를 /usr/lib/locales/locale-archive에서 제거한 것으로 나타났습니다.

로케일 아카이브의 로케일이 삭제되면 이를 복원하는 좋은 방법은 소스 패키지에서 아카이브를 검색하고 다시 빌드하는 것입니다(저는 yum 제공 /usr/lib/locales/C.utf8을 사용하여 필요한 패키지를 찾았습니다) , glibc -common), 다음과 같이 아카이브를 재구성했습니다.

cd /tmp/tempdir
yumdownloader glibc-common
rpm2cpio glibc-common-2.17-325.0.1.el7_9.x86_64.rpm | cpio -idmv
cp /tmp/tempdir/usr/lib/locale/locale-archive.tmpl usr/lib/locale/locale-archive.tmpl
build-locale-archive

템플릿 파일의 소스 패키지 버전에서 아카이브를 다시 빌드한 후 모든 로케일을 다시 볼 수 있으며 로케일을 다시 참조할 수 있으므로 이제 경고가 사라졌습니다. 이것은 약간 큰 망치 접근 방식일 수 있습니다. build-locale-archive의 --help 플래그에서 보다 간단한 설치 또는 누락된 로케일 복구를 허용할 수 있는 설치 옵션이 있다는 것을 알았지만 이 시점에서는 다시 빌드했습니다. 모든 것.

이것이 앞으로 다른 사람들에게 도움이 되기를 바랍니다.

관련 정보