К основному контенту

Настройка локали в консоли в CentOS

Взято с http://dedicatesupport.com/
Частенько владельцы выделенных серверов получают свои сервера от провайдеров с неверно сконфигурированной локалью. Как следствие в консоли не отображаются русские буквы. На тему русификации уже написана гора всяческих заметок, но я в двух словах опишу  методы  установки правильной локали в 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.
Надеюсь моя заметка поможет владельцам выделенных серверов увидеть таки русскую локализацию в консоли.
P.S. Специально для владельцев host-service.info. Это мой материал. Я его сам писал. Имейте совесть. Оставляйте ссылку наhttp://dedicatesupport.com. Потому как в бан гугла можно попасть элементарно. Да и карму портить не стоит.

Комментарии

Популярные сообщения из этого блога

Управление исходящей маршрутизацией вызовов Asterisk FreePBX

В данной статье рассматривается один из способов настройки исходящей маршрутизации средствами FreePBX с использованием шаблонов.  Управление исходящей маршрутизацией осуществляется на вкладке Connectivity > Outbound Routes Основными полями здесь являются: Route Name — имя маршрута, Dial patterns that will use this Route — здесь перечисляются шаблоны, используемые в данном маршруте, Trunk Sequence for Matched Routes — указываются маршруты используемые на этом направлении. В принципе этих полей достаточно для нормального функционирования исходящей маршрутизации. Шаблон — номер, некоторые цифры которого заменяются подстановочными символами и группами символов. Можно использовать следующие символы:  X — любая цифра 0 — 9; Z — любая цифра 1 — 9; N — любая цифра 2 — 9; [123] — любая из цифр, перечисленных в квадратных скобках. . — одна или неск...

Автообзвон на Asterisk (FreePBX)

Syntax of call files Specify where and how to call Channel : <channel>: Channel to use for the call. CallerID : «name» <number> Caller ID, Please note: It may not work if you do not respect the format: CallerID: «Some Name» <1234> MaxRetries : <number> Number of retries before failing (not including the initial attempt, e.g. 0 = total of 1 attempt to make the call). Default is 0. RetryTime : <number> Seconds between retries, Don't hammer an unavailable phone. Default is 300 (5 min). WaitTime : <number> Seconds to wait for an answer. Default is 45. Account : Set the account code to use. If the call answers, connect it here: Context : <context-name> Context in extensions.conf Extension : <ext> Extension definition in extensions.conf Priority : <priority> Priority of extension to start with Set : Set a variable for use in the extension logic (example: file1=/tmp/to ); in Asterisk 1.0.x use...

.call files Asterisk-Настройка call back для ТАКСИ

.call файлы — Текстовый файл соответствующий определенному синтаксису Синтаксис .call файлов Channel :  : Канал, который будет использоваться для исходящего вызова. CallerID: Name  CallerID, MaxRetries:  Количество попыток для неудачного вызова (не включая первую попытку, т.е. 0 = означает совершить 1 попытку вызова). Значение по умолчанию: 0. RetryTime:  Количество секунд между попытками вызова, не стоит очень часто ломиться на недоступный телефон. Значение по умолчанию: 300 (5 минут) WaitTime:  Количество секунд для ожидания ответа на вызов. Значение по умолчанию: 45. Account: Установка поля “account code”для записи в CDR. Если первый участник вызова ответил, то далее описываем с кем и как его соединить Context:  Контекст в файле extensions.conf. Extension:  Название екстеншена в extensions.conf.. Priority:  Номер приоритета для екстеншена, с которого нужно начать выполнение. Set: Установка переменных канала для использования их в логике обраб...