|
|||||||
Настройка локали в консоли в CentOS
Время создания: 17.12.2012 16:11
Текстовые метки: linux, locale, локаль, utf-8
Раздел: Компьютер - Linux - Дистрибутив RedHat/CentOs/Scientific
Запись: xintrea/mytetra_syncro/master/base/1355746267qxvbh4592j/text.html на raw.github.com
|
|||||||
|
|||||||
Настройка локали в консоли в CentOS. Частенько владельцы выделенных серверов получают свои сервера от провайдеров с неверно сконфигурированной локалью. Как следствие в консоли не отображаются русские буквы. На тему русификации уже написана гора всяческих заметок, но я в двух словах опишу методы установки правильной локали в CentOS linux 4.x, 5.xТак как CentOS грубо говоря является клоном RedHat Enterprize Linux, то консоль использует кодировку UTF-8 то есть юникод. Ну так вот у них повелось. Лично мое мнение - юникод рулит. Постепенно юникод вытесняет кучу наших кодировок типа CP1251, KOI8-R. И это очень хорошо. Потому как так достали все эти прибабахи с кодировками - спасу нет. Итак. Для того чтобы увидеть нормальные русские буквы в нашей консоли первым делом нам необходимо настроить клиента. Подключаемся же мы удаленно, и наверняка с помощью нашей любимой проги putty. Для настройки putty запускаем ее выбираем необходимое соединение, загружаем его с помощью кнопки Load. Далее переходим в Window --> Translation и в выпадающем меню выбираем UTF-8. После чего сохраняем настройки для этого соединения с помощью кнопки Save. Как ни странно многие проблемы с кодировками решаются именно этим пунктом :-) Если ничего не получилось - идем дальше. Проверить какая локаль сейчас установлена можно с помощью команды locale обычно вывод команды выглядит примерно так: LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= Это означает что кодировка у нас в консоли используется en_US.UTF-8. Но вывод может выглядеть совсем иначе. Например вот так: LANG= LC_CTYPE="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" LC_COLLATE="POSIX" LC_MONETARY="POSIX" LC_MESSAGES="POSIX" LC_PAPER="POSIX" LC_NAME="POSIX" LC_ADDRESS="POSIX" LC_TELEPHONE="POSIX" LC_MEASUREMENT="POSIX" LC_IDENTIFICATION="POSIX" LC_ALL= Значит есть проблемы. Для того чтобы проверить наличие готовых локалей в системе выполняем команду locale -a | grep ru И в выводе команды ищем необходимую нам локаль. Для случая с кодировкой UTF-8 необходимая локаль имеет вид ru_RU.utf8. Если такая строка есть в выводе команды то делаем следующее: Создаем файл /etc/sysconfig/i18n командой: touch /etc/sysconfig/i18n После чего в файл пишем следующие строки: LANG="ru_RU.UTF-8" SUPPORTED="ru_RU.UTF-8:ru_RU:ru" SYSFONT="latarcyrheb-sun16" После этих изменений сохраняем файл, выходим из консоли и заходим в нее опять. После этих действий мы наблюдаем русский шрифт в локали. Если же при выводе команды locale -a | grep ru нет русской локали то ее необходимо сделать. Команда для этого выглядит так: localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 Что она делает. Она берет из папки /usr/share/i18n/locales/ файл ru_RU (это файл с русской локалью) и из папки /usr/share/i18n/charmaps файл UTF-8.gz (это символьная карта для юникода) и на основе этих файлов генерит нужную нам локаль ru_RU.UTF-8 После этого действия у нас в системе появляется нужная нам локаль, а дальше делаем все так как описано на абзац выше. Добавлю только что файлы находящиеся в папке /usr/share/i18n/ принадлежат glibc-common-2.x.x и если вы их не наблюдаете там, то необходимо разбираться с самим glibc-common. Надеюсь моя заметка поможет владельцам выделенных серверов увидеть таки русскую локализацию в консоли. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|