Debian과 Ubuntu에서 구성해야 하는 로케일을 제한할 수 있습니까?
어떤 로케일이 구성되고 있는지 알고 /var/lib/locales/supported.d/local
관리 /var/lib/locales/supported.d/en
하지만 사후(즉, 이후)에 수동으로 수정하는 것이 다소 부족하여 원하는 로케일 apt-get dist-upgrade
로 제한할 수 있는 방법을 찾지 못했습니다 .en_US.*
따라서 패키지를 터치할 때마다 language-pack-en
( language-pack-en-base
제가 본 바로는 일반적으로 동기식으로 업데이트됩니다) 다음과 같은 결과가 나타납니다.
Setting up language-pack-en (1:14.04+20150219) ...
Setting up language-pack-en-base (1:14.04+20150219) ...
Generating locales...
en_AG.UTF-8... done
en_AU.UTF-8... done
en_BW.UTF-8... done
en_CA.UTF-8... done
en_DK.UTF-8... done
en_GB.UTF-8... done
en_HK.UTF-8... done
en_IE.UTF-8... done
en_IN.UTF-8... done
en_NG.UTF-8... done
en_NZ.UTF-8... done
en_PH.UTF-8... done
en_SG.UTF-8... done
en_US.UTF-8... up-to-date
en_ZA.UTF-8... done
en_ZM.UTF-8... done
en_ZW.UTF-8... done
Generation complete.
불행하게도 일부 업그레이드는 위의 두 파일을 덮어써서 내가 수정한 내용을 재설정한 것 같습니다.
대신 우리가 보고 싶은 것은 다음과 같습니다.
Setting up language-pack-en (1:14.04+20150219) ...
Setting up language-pack-en-base (1:14.04+20150219) ...
Generating locales...
en_US.UTF-8... up-to-date
Generation complete.
어떻게 해야 하나요?
답변1
데비안의 경우
넌 할 수있어:
dpkg-reconfigure -plow locales
우분투 사용
Debian 솔루션은 Ubuntu에서 작동하지 않습니다. 아마도 패키지 locales
가 . 그러나 설치할 패키지를 선택할 수 있습니다 .langpack-locales
glibc
eglibc
language-pack-*
/var/lib/locales/supported.d
보다 세부적인 구성을 위해서는 디렉터리(예 : /var/lib/locales/supported.d/en
기반 로케일) 아래의 파일을 수정해야 할 수 있습니다 en
. 예를 들어 필요하지 않은 로케일에 해당하는 줄을 삭제할 수 있습니다. 그런 다음 dpkg-reconfigure locales
.경고하다: 이 파일은구성 파일dpkg
, 이는 패키지 업그레이드 중에 변경 사항을 덮어쓸 수 있음을 의미합니다 . 덮어쓰기를 다른 파일로 이동하도록 지시하여 dpkg
이를 방지 할 수 있습니다.
cp -a /var/lib/locales/supported.d/en /var/lib/locales/en.upstream
dpkg-divert --local --divert /var/lib/locales/en.upstream --add /var/lib/locales/supported.d/en
위의 전송 코드는 supported.d
로케일 시스템이 병합되므로 의도적으로 전송된 파일을 디렉터리 외부에 배치합니다.모두디렉토리에 있는 파일 supported.d
.
또는 language-pack-*
원치 않는 로케일을 설치하는 패키지를 제거하고 다른 로케일을 지정할 수 있습니다 /var/lib/locales/supported.d/local
(동일한 형식 사용).로케일 (재)생성에 대한 Ubuntu 도움말더 많은 정보를 알고 싶습니다. 그러나 이러한 language-pack-*
패키지는 로케일을 컴파일할 뿐만 아니라 사용자가 놓칠 수 있는 번역도 제공합니다.
답변2
@vinc17의 답변에 추가: dpkg
파일에 대한 변경 사항 덮어쓰기를 방지하려면 다음과 같이 /var/lib/locales/supported.d/en
사용하세요 dpkg-divert
.
cp -a /var/lib/locales/supported.d/en /var/lib/locales/en.upstream
dpkg-divert --local --divert /var/lib/locales/en.upstream --add /var/lib/locales/supported.d/en
참고: 위의 코드는 supported.d
로케일 시스템이 병합되었기 때문에 의도적으로 전송된 파일을 디렉터리 외부에 배치합니다.모두디렉토리에 있는 파일 supported.d
.
답변3
해결책.변경을 방지하려면 /var/lib/locales/supported.d/
다음 명령을 사용하여 파일을 설정하십시오."불변(i)" 속성. 따라서 파일을 삭제하는 대신 파일을 비우십시오. 예를 들어(루트 액세스 가정):
cd /var/lib/locales/supported.d/
rm <code> && touch <code> # <code> has been emptied
lsattr <code> # regular attributes
chattr +i <code> # adding (+) immutable
lsattr <code> # checking attributes
확장된 세부정보여기.