ZaLinux.ru

Ошибка «trid: loadlocale.c:129: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed.» (РЕШЕНО)

При запуске той или иной команды вы можете столкнуться с ошибкой, в которой встречается слово «loadlocale.c». Вы можете сообщить об этой ошибке автору, чтобы он её исправил, поскольку это скорее баг программы. Тем не менее, имеется несколько способов исправить эту ошибку.

Как можно понять по строке «locale», ошибка имеет отношение к локали.

Пример ошибки:

trid: loadlocale.c:129: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed.
Аварийный останов (стек памяти сброшен на диск)

Самым распространённым советом является выполнить перед командой:

export LC_ALL=C

А затем уже выполнить команду, которая вызывала ошибку — ошибка должна исчезнуть.

Но этот совет может сломать шрифты в некоторых других приложениях. Поэтому данный способ с LC_ALL используйте как резервный если что-то не установлено (как в случае выше это LC_TIME).

Другой совет — выполнить следующее:

LANG=/usr/lib/locale/en_US

и затем запустить проблемную команду — это также должно сработать. Возможно, это окажет меньше побочных эффектов на шрифты других языков.

Также предлагается способ решить эту проблему на постоянной основе — удобно, если вы часто запускаете команду, вызывающую ошибку с loadlocale.c.

Вначале отредактируйте файл /etc/locale.gen и добавьте локали, которые хотите.

К примеру в моём случае:

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

Теперь запустите как root:

sudo rm -f /usr/lib/locale/locale-archive
sudo locale-gen --no-archive
sudo locale-gen --no-archive en_US.UTF-8
sudo locale-gen --no-archive ru_RU.UTF-8

Флаг --no-archive важен, используйте его как показано в командах.

Рекомендуемые статьи:

Оставить комментарий

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