
Локаль в Linux определяет формат отображения даты, времени, чисел, валюты и языка интерфейса приложений. Неправильная локаль может привести к некорректному отображению текста или ошибок при работе с программами, чувствительными к региональным настройкам. Важной частью настройки системы является точная проверка и установка нужной локали.
Изменение локали может производиться как для одного пользователя, так и глобально для всей системы. Для пользователя достаточно изменить переменные LANG и LC_ALL в файле ~/.profile или ~/.bashrc. Для системной настройки применяются файлы /etc/locale.conf и /etc/environment. Важно правильно задать переменные и выполнить генерацию локали, чтобы изменения вступили в силу без ошибок.
В этом руководстве представлены практические шаги для проверки текущей локали, установки новых языковых пакетов, генерации и применения локалей. Каждая инструкция снабжена командами, которые можно использовать напрямую в терминале, чтобы минимизировать риск неправильной конфигурации.
Изменение locale в Linux: пошаговое руководство
Для изменения локали в Linux сначала убедитесь, что нужная локаль сгенерирована. Выполните команду locale -a для просмотра доступных локалей. Если нужной нет, на Debian/Ubuntu используйте sudo dpkg-reconfigure locales, выбрав нужный язык и регион. На Red Hat, CentOS и Fedora установите пакет glibc-common и выполните localedef -i <имя_локали> -f <кодировка> <имя_локали>.UTF-8.
Для изменения локали текущего пользователя откройте файл ~/.profile или ~/.bashrc и добавьте строки: export LANG=<имя_локали>.UTF-8 и export LC_ALL=<имя_локали>.UTF-8. После сохранения файла выполните source ~/.profile или source ~/.bashrc, чтобы применить изменения без перезагрузки.
Чтобы изменить локаль для всей системы, отредактируйте файл /etc/locale.conf и добавьте строки LANG=<имя_локали>.UTF-8 и LC_ALL=<имя_локали>.UTF-8. На системах Debian/Ubuntu можно дополнительно изменить /etc/default/locale. После внесения изменений выполните sudo update-locale (для Debian/Ubuntu) или перезапустите систему, чтобы новые настройки вступили в силу.
Проверка корректности изменений выполняется командой locale, которая отобразит активные значения переменных локали. Если какие-либо параметры не соответствуют ожидаемым, проверьте, что локаль сгенерирована и переменные указаны без опечаток.
Проверка текущих настроек локали в системе
Чтобы узнать список всех доступных локалей, используйте команду locale -a. Она показывает, какие локали уже сгенерированы и могут быть применены без дополнительных действий.
Если необходимо проверить локаль для конкретного пользователя без влияния системных настроек, выполните echo $LANG и echo $LC_ALL. Эти команды отображают текущие значения переменных окружения для сессии пользователя.
Установка нужного пакета локали через пакетный менеджер
На системах Debian и Ubuntu локали поставляются в пакете locales. Для установки выполните sudo apt update, а затем sudo apt install locales. После этого можно сгенерировать нужную локаль с помощью sudo dpkg-reconfigure locales, отметив необходимую в списке и подтвердив выбор.
На системах Red Hat, CentOS и Fedora локали содержатся в пакете glibc-common. Чтобы убедиться, что пакет установлен, выполните rpm -q glibc-common. При необходимости установите его через sudo yum install glibc-common или sudo dnf install glibc-common. Генерация локали производится командой localedef -i <имя_локали> -f UTF-8 <имя_локали>.UTF-8.
После установки пакета и генерации локали рекомендуется выполнить проверку доступных локалей командой locale -a, чтобы убедиться, что новая локаль отображается в списке и готова к применению.
Генерация выбранной локали с помощью команды locale-gen
Для генерации локали на Debian и Ubuntu используется команда locale-gen. Сначала убедитесь, что нужная локаль включена в файл /etc/locale.gen. В этом файле закомментированы все локали; удалите знак # перед нужной, например ru_RU.UTF-8 UTF-8.
После редактирования файла выполните команду sudo locale-gen. Она создаст необходимые языковые пакеты и применит их в системе. Для проверки успешной генерации выполните locale -a, чтобы убедиться, что выбранная локаль появилась в списке.
Если требуется сгенерировать локаль только для текущего пользователя без изменения глобальных настроек, можно использовать команду sudo update-locale LANG=ru_RU.UTF-8 LC_ALL=ru_RU.UTF-8, которая обновит переменные окружения и обеспечит корректное отображение языка и форматов.
Изменение локали для текущего пользователя

Для изменения локали конкретного пользователя необходимо изменить переменные окружения в его домашней директории. Основные переменные: LANG и LC_ALL. Рекомендуется использовать UTF-8 для корректной работы с русским и другими языками.
- Откройте файл ~/.profile или ~/.bashrc для редактирования.
- Добавьте строки:
- export LANG=ru_RU.UTF-8
- export LC_ALL=ru_RU.UTF-8
- Сохраните изменения и примените их командой source ~/.profile или source ~/.bashrc.
После применения переменных рекомендуется проверить изменения с помощью команды locale. Все значения должны соответствовать выбранной локали. Если какие-либо параметры не изменились, убедитесь, что нет конфликтующих настроек в ~/.bash_profile или ~/.pam_environment.
Настройка системной локали для всех пользователей
Для изменения локали для всей системы необходимо отредактировать глобальные конфигурационные файлы. В системах Debian и Ubuntu основной файл – /etc/default/locale. На Red Hat, CentOS и Fedora используется /etc/locale.conf. В этих файлах задаются переменные LANG и LC_ALL.
Пример настройки в /etc/locale.conf:
LANG=ru_RU.UTF-8 LC_ALL=ru_RU.UTF-8
После внесения изменений выполните команду sudo update-locale (только для Debian/Ubuntu) или перезагрузите систему, чтобы новые значения применились ко всем пользователям. Проверку корректности можно выполнить командой locale в терминале под любым пользователем.
Если на сервере используются службы, требующие специфической локали, убедитесь, что файлы конфигурации демонов (например, /etc/environment) также содержат корректные переменные. Это предотвращает ошибки при запуске приложений и скриптов, использующих системные локали.
Проверка и исправление ошибок после изменения локали
После изменения локали важно убедиться, что система корректно применяет новые настройки. Основные команды для проверки:
| Команда | Назначение |
|---|---|
| locale | |
| locale -a | Показывает список всех сгенерированных локалей, доступных в системе |
| echo $LANG | Отображает локаль текущего пользователя |
| echo $LC_ALL | Проверяет, задана ли глобальная переменная локали для сессии |
- Проверьте, что нужная локаль сгенерирована через locale -a.
- Убедитесь, что переменные LANG и LC_ALL заданы верно в ~/.profile, /etc/default/locale или /etc/locale.conf.
- Примените изменения командой source ~/.profile или перезагрузите систему.
- Если ошибка сохраняется, выполните повторную генерацию локали с помощью sudo locale-gen или localedef.
После исправления повторно проверьте команды locale и locale -a, чтобы убедиться, что выбранная локаль активна и все переменные корректны.
Вопрос-ответ:
Как проверить, какая локаль активна для моего пользователя?
Для проверки активной локали выполните команду locale в терминале. Она покажет значения всех переменных локали, включая LANG и LC_ALL. Чтобы увидеть только локаль текущего пользователя, используйте echo $LANG и echo $LC_ALL. Если вывод содержит POSIX или C, это значит, что локаль не была изменена.
Что делать, если нужной локали нет в списке, выводимом командой locale -a?
Если нужной локали нет, её необходимо сгенерировать. На Debian и Ubuntu откройте /etc/locale.gen, раскомментируйте нужную строку, например ru_RU.UTF-8 UTF-8, и выполните sudo locale-gen. На Red Hat, CentOS и Fedora используйте пакет glibc-common и команду localedef -i <имя_локали> -f UTF-8 <имя_локали>.UTF-8. После этого локаль появится в списке locale -a.
Как изменить локаль только для своего пользователя без влияния на систему?
Для изменения локали конкретного пользователя откройте файл ~/.profile или ~/.bashrc и добавьте строки: export LANG=ru_RU.UTF-8 и export LC_ALL=ru_RU.UTF-8. Сохраните файл и примените изменения командой source ~/.profile или source ~/.bashrc. После этого новые значения локали будут действовать только для текущего пользователя.
Можно ли изменить локаль для всех пользователей сразу, и как это сделать?
Да, системную локаль можно задать для всех пользователей через глобальные конфигурационные файлы. В Debian и Ubuntu редактируйте /etc/default/locale, добавив строки LANG=ru_RU.UTF-8 и LC_ALL=ru_RU.UTF-8. В Red Hat, CentOS и Fedora измените /etc/locale.conf аналогичным образом. После внесения изменений перезагрузите систему или выполните команду sudo update-locale на Debian/Ubuntu, чтобы новые настройки вступили в силу.
Какие ошибки могут возникнуть после изменения локали и как их исправить?
Если после изменения локали команды показывают POSIX или C, значит локаль не применена. Проверьте, что выбранная локаль сгенерирована командой locale -a. Убедитесь, что переменные LANG и LC_ALL правильно заданы в ~/.profile, /etc/default/locale или /etc/locale.conf. После внесения изменений примените их командой source ~/.profile или перезагрузите систему. Если ошибка сохраняется, выполните повторную генерацию локали с помощью sudo locale-gen или localedef.
Почему после изменения локали некоторые программы продолжают показывать неверный язык интерфейса?
Если программы отображают неправильный язык, чаще всего проблема связана с приоритетом переменных окружения. Система использует несколько переменных: LANG, LC_ALL, LC_MESSAGES и другие. Если LC_ALL не задана или указана другая локаль, она может переопределять настройки LANG. Проверьте текущие значения командой locale и убедитесь, что все переменные соответствуют выбранной локали. Также стоит проверить конфигурационные файлы пользователя (~/.profile, ~/.bashrc) и системные файлы (/etc/default/locale или /etc/locale.conf) на наличие конфликтующих настроек. После исправления переменных выполните source ~/.profile или перезагрузите систему, чтобы изменения вступили в силу.
