데비안 스퀴즈에서 로케일 설정을 수정하는 방법


17

때때로 로케일 오류가 발생하고 문제를 해결하기 위해 dpkg-reconfigure locale을 실행하려고했습니다. 출력은 다음과 같습니다.

:~$ sudo dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "C"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "C"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

/ usr / bin / locale을 찾았지만 시스템에는 없습니다. 그것을 만들어야합니까? 거기에 무엇을 넣습니까?

또한 그의 문제의 원인이 sshd_config 파일에 있다고 말하는 관련 질문 을 발견했습니다 . 파일에는 다음과 같은 항목이 있습니다.

AcceptEnv LANG LC_*

주로 VPS에 문제가 발생할 수 있다는 점에 관심이 있습니다. 어떻게해야합니까? 감사!


Mac에서 Linux 박스로 ssh를 통해 로그인 할 때 이와 동일한 문제 (LC_CTYPE = UTF-8, 잘못된)가 발생할 수 있으며 터미널은 자동으로 환경 변수를 설정합니다. 확인란이 있습니다. 선택을 해제하면 잘됩니다. iTerm에서는 프로파일-> 터미널 탭에 있습니다.
raarts

데비안 기반 배포판 (우분투 포함)에 버그가있는 것 같습니다. fr_FR.UTF-8을 사용하면 문제가 발생했으며 로케일이 존재했습니다. locale-gen fr모든 fr 로케일 (fr_BE, fr_CH 등)을 빌드 하면 문제가 해결됩니다. 아마도 시도locale-gen en
Antony Gibbs

답변:


10

먼저:

sudo apt-get purge locales

그때:

sudo aptitude install locales

그리고 유명한 :

sudo dpkg-reconfigure locales

이것은 로케일 시스템을 제거한 다음 로케일을 다시 설치하고 libc6을 2.19에서 2.13으로 다운 그레이드합니다. 이것이 문제입니다. 그런 다음 로케일을 다시 구성하십시오.


나는 똑같은 문제가 있습니다. 따라서이 답변과 jessie 저장소를 포함하여 locales다운 그레이드하지 않고 설치할 수 libc6있습니다.
shgnInc

이것은 도움이되지 못했습니다
aexl

8

콘솔에서가 아닌 박스로 SSH 를 연결할 때 이런 일이 발생하면 로컬 컴퓨터에서 ssh 클라이언트를 재구성하십시오 . Mac OS X에서 예를 들어 / private / etc / ssh_config를 편집하고 주석 처리하십시오.

# SendEnv LANG LC_*

Rasberry Pi 게시판 에 사육사의 게시물 덕분에 .


이 파일은 다음과 같습니다 : / private / etc / ssh / ssh_config
b4d

7

나는이 문제를 오랫동안 가지고 있었고 dpkg-reconfigure locales, locale-gen 등에 관한 모든 일반적인 조언은 도움이되지 못했습니다. 그래서 나는 환경 변수로 약간 놀았고, 내가 찾은 것은 시스템이 LC_CTYPE환경 변수 에서 붕을 that다는 것입니다! UTF-8올바른 값이 아닙니다. en_US.UTF-8고정하도록 설정 .

변경 사항을 영구적으로 유지하기 위해

update-locale LC_CTYPE=en_US.UTF-8

에 쓴다 /etc/default/locale. 그런 다음 시스템을 재부팅하여 완전히 적용하십시오.


불행하게도,이 수익률perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = "UTF-8", LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). *** update-locale: Error: invalid locale settings: LC_CTYPE=en_US.UTF-8
aexl

2

나는 이전 데비안 설치에서 이것을 보았고, 성가신 동안 문제를 일으키는 것을 본 적이 없습니다.

만약

  /usr/bin/locale 

누락 된 경우 (루트로) 시도하십시오.

  apt-get install libc-bin

/ usr / bin / locale을 제공하는 libc-bin을 설치해야합니다.

sshd_config의 AcceptEnv 줄은 매우 표준 적이며 여기서 문제의 원인이되어서는 안됩니다.


libc-bin이 이미 설치되어 있으므로 업데이트하고 dpkg-reconfigure locales다시 실행 해 보았습니다 . 기쁨 없음 :(
blogjunkie

/ usr / bin / locale이 현재 있습니까? 그렇다면 :의 결과는 locale -a무엇 /etc/default/locale입니까?
채드 펠러

`/ etc / default / locale '의 내용 : # update-locale에 의해 생성 된 파일 LANG = en_US.UTF-8
blogjunkie

locale -a로케일 : LC_CTYPE을 기본 로케일로 설정할 수 없음 : 해당 파일 또는 디렉토리가 없습니다. en_US.utf8 POSIX
blogjunkie

apt는 libc-bin이 설치되었다고 주장했지만 적어도 하나의 파일이 누락되었거나 (/ usr / bin / locale) libc-bin을 다시 설치하면 문제가 해결 된 것으로 보입니다. 당신은 시도 할 수 있습니까 apt-get install --reinstall locales? 그런 다음 제대로 측정 하려면 locale-gen에서 주석 처리되지 않은 로케일을 재생성하십시오 /etc/locale.gen(와 같은 줄이 있어야 함 en_US.UTF-8 UTF-8). 그런 다음 locale -a작동하는지 확인하십시오 .
채드 펠러

2

Manoj와 같이 다음 작업을 수행했지만 # ~ / .bashrc에 추가했습니다.

export LC_ALL=en_US.utf8
export LANGUAGE=en_US.utf8

1

원격 시스템에 ssh하는 동안 오류가 발생하고 sshd_config를 변경하여 원격 시스템을 수정하지 않으려는 경우 로컬 시스템에서 다음을 수행 할 수 있습니다 (bash 가정)

export LC_ALL=en_US
export LANGUAGE=en_US

그리고 ssh user@remote


1

새로운 데비안 설치 (최소) 로케일에서 완전히 누락되었습니다. 그것을 설치하고 ( aptitude install locales) 실행 locale-gen하면 속임수가되었습니다. Chad Feller가 언급했듯이 패키지를 locales먼저 설치 했는지 확인하십시오 .


0

/etc/ssh/sshd_config( UsePAM no)에서 ssh에 대해 PAM 인증을 비활성화 한 경우 담당 구성 /etc/pam.d/login은 유효하지 않습니다.

session required pam_env.so readenv=1 envfile=/etc/default/locale

결과 : /etc/default/locale효과가없는 것 같습니다.

당신은 LANG이 바르 보내거나 ENV 같은 프로파일 스크립트에서 바르 수출하도록 클라이언트를 구성해야합니다 그래서 ~/.profile, ~/bashrc

더 : http://wiki.debian.org/Locale#Standard


0

독일어 VPS를 사용하고 있으며 영어 팩이 설치되어 있지 않아 로캘을 변경할 수 없습니다.

설치 후 마침내 로케일을 변경할 수 있습니다

aptitude install language-pack-en

0

데비안 시스템에서 이것은 당신의 문제를 해결할 것입니다 :

apt-get install locales-all

Ubuntu 시스템에서 다음과 같은 특정 언어 팩을 설치하십시오.

apt-get install language-pack-en

locale-gen en_US.UTF-8


0

Mac을 새로운 데비안 10 설치에 연결. Stack Exchange 전체에서 Google에 대한 답변은 도움이되지 않았습니다. 수행 한 작업은 다음과 같습니다 (직관적이고 신뢰할 수 있음).

sed -i "s/^AcceptEnv/#AcceptEnv/g" /etc/ssh/sshd_config

데비안 박스에서 이것을 실행하면 연결하는 맥 터미널이 서버 로케일을 망칠 수 없습니다 ( 추가 정보 ).

보너스로 서버의 보안향상시킬 수도 있습니다 .

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