Добавление локали ru_RU.CP1251 с через localedef

Однажды при работе с git репозиторием возникла проблема:

# git pull
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "ru_RU.CP1251",
    LC_ALL = "ru_RU.CP1251",
    LC_PAPER = "ru_RU.CP1251",
    LC_ADDRESS = "ru_RU.CP1251",
    LC_MONETARY = "ru_RU.CP1251",
    LC_NUMERIC = "ru_RU.CP1251",
    LC_TELEPHONE = "ru_RU.CP1251",
    LC_IDENTIFICATION = "ru_RU.CP1251",
    LC_MEASUREMENT = "ru_RU.CP1251",
    LC_TIME = "ru_RU.CP1251",
    LC_NAME = "ru_RU.CP1251",
    LANG = "ru_RU.CP1251"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Already up-to-date.

Родной кодировкой проекта была cp1251. Но вот нечадача: данная локаль была установлена в системе (ubuntu).

После многочисленных тестов на разных осях выяснил,что и на debian-подобных,и на redhat-подобных системах возникает данный ворнинг.
После дебага с помощью strace пришел к выводу,что git (вернее gitolite) при пуллинге выполняет perl скрипты на самом сервере,где хранится репозиторий.

 

На сервере репозитория:

# locale -a | grep ru_RU
ru_RU
ru_RU.iso88595
ru_RU.koi8r
ru_RU.utf8

Не видим нужной локали,ставим:

localedef  --no-archive -c -i ru_RU -f CP1251 ru_RU.CP1251

После этого perl перестает ругаться.

Так как не нашел должного описания,пишу сюда. Для экономии времени заглянувшего сюда читателя

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *