SVN не может установить локаль LC CTYPE


Я начал получать следующую ошибку всякий раз, когда я использую SVN на моем сервере:

svn: warning: cannot set LC_CTYPE locale
svn: warning: environment variable LC_CTYPE is UTF-8
svn: warning: please check that your locale name is correct

Я предполагаю, что может быть что-то не так с моим клиентом svn(используя приложение Versions) и сервером svn...

Как я могу заставить это предупреждение исчезнуть навсегда с сервера всякий раз, когда я использую такие команды?

11 54

11 ответов:

Проверьте вывод

locale -a

если языковой стандарт, на который жалуется SVN, не установлен, вы можете установить его.

вы должны:

sudo apt-get install language-pack-en-base

затем следует один из (в зависимости от точной ошибки от SVN, ваш первый случай):

sudo locale-gen UTF-8
sudo locale-gen en_GB.UTF-8
sudo locale-gen en_US.UTF-8

кроме того, как Анкит пишет в своем ответ:

export LC_ALL=C

может работать (в вашей текущей сессии, или в вашем .профиль.)

хотя установка lc_ctype на пустое значение работала для меня, основной причиной было то, что терминал приложения на моем Mac устанавливал локали при запуске, даже когда я SSH в другую систему.

Это можно исправить в терминале > настройки:

  • выберите вкладку " профили "и выберите" дополнительно " из вложенных вкладок
  • снимите флажок "установить переменные среды locale при запуске"

Если вы хотите исправить это, установите переменную" LC_ALL " вручную.

чтобы сделать его постоянным просто отредактируйте файл "/ etc / environment " и добавьте строку:

LC_ALL=C

сохраните файл и выйдите из редактора. Для его применения вам необходимо выйти из текущего сеанса оболочки. При следующем входе в систему проблема с SVN исчезнет.

настройки LC_ALL и LANG не работали для меня, но LC_CTYPE сделал.

LC_CTYPE=en_US.UTF-8

On Debian Jessie:

Я побежал:

sudo dpkg-reconfigure locales

добавлена и установлена отсутствующая локаль. Потом это сработало.

комментируя строки с SendEnv LANG LC_* in /etc / ssh/ssh_config помогает мне (openSUSE)

это вызвано тем, что в вашей системе не созданы соответствующие локали.

раскомментировать строки, которые вы хотите поддерживать в / etc / locale.ген

например:

en_GB.UTF-8 UTF-8
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8

и затем запустить sudo locale-gen

у нас была эта проблема и в нашей компании, при использовании IntelliJ. Мой коллега только что починил.

для нас проблемой была линия SendEnv LANG LC_* на /etc/ssh/ssh_config. Когда я прокомментировал эту строку, все работало нормально.

для iTerm2:

Профили → Открыть Профили ... → Редактировать Профили ... → Терминал → Unckeck установить переменные локали автоматически

Я обнаружил, что объединение нескольких ответов hear дает правильное поведение.

  1. мы должны установить поддержку для правильной локали (localadm для sunos, locale-gen для linux)
  2. мы должны установить LC_ALL в соответствующую локаль

Это зависит от того, какие имена файлов Вы имеете в исходном дереве. Например, у меня есть английский, иврит и арабский. язык.UTF-8 работает для меня "C" сам по себе привел к файлам, которые я не мог обновить.

Я получил проблему при подключении к удаленному серверу ssh (ssh используется командой svnserve -> svn update).

причина в том, что удаленный сервер не имеет доступного языкового пакета, который установлен в $LANG на локальном сервере.

вы можете проверить установленные языковые пакеты по 'locale-a'. Язык $LANG должен быть настроен на удаленном сервере.

например.

локальный сервер: LANG=en_US.UTF-8

удаленный сервер: locale - a - > только de_DE.UTF-8 доступен

разрешение: просто установите отсутствующий языковой пакет на удаленном сервере: dpkg-reconfigure locales;

кстати: выбранный язык по умолчанию не имеет значения.