LINUX.ORG.RU

История изменений

Исправление bormant, (текущая версия) :

Каких файлов/директорий не может открыть locale?

Например:

$ LANG=blah locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
...
А не может открыть те, на которые open вернул ошибку (ENOENT):
$ LANG=blah strace -e open locale
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib64/locale/locale-archive", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib64/locale/blah/LC_CTYPE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
locale: Cannot set LC_CTYPE to default locale: No such file or directory
open("/usr/lib64/locale/blah/LC_MESSAGES", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
open("/usr/lib64/locale/blah/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
locale: Cannot set LC_ALL to default locale: No such file or directory
...
то есть, вот эти:
/usr/lib64/locale/locale-archive   # это нормально
/usr/lib64/locale/blah/LC_CTYPE
/usr/lib64/locale/blah/LC_MESSAGES
/usr/lib64/locale/blah/LC_MESSAGES

Скомпилированные локали лежат в /usr/lib64/locale/.
В /usr/share/i18n/locales/ лежат исходники локалей.

Что значит cannot set to default локаль?

В переменной окружения указана локаль, но прочитать ее с диска не удалось.

Ну и про ошибки localedef - что не так?

Не надо ее звать. Комплект исправных локалей поставляется с дистрибутивом.

Исправление bormant, :

Каких файлов/директорий не может открыть locale?

Например:

$ LANG=blah locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
...
А не может открыть те, на которые open вернул ошибку (ENOENT):
$ LANG=blah strace -e open locale
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib64/locale/locale-archive", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib64/locale/blah/LC_CTYPE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
locale: Cannot set LC_CTYPE to default locale: No such file or directory
open("/usr/lib64/locale/blah/LC_MESSAGES", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
open("/usr/lib64/locale/blah/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
locale: Cannot set LC_ALL to default locale: No such file or directory
...
то есть, вот эти:
/usr/lib64/locale/locale-archive
/usr/lib64/locale/blah/LC_CTYPE
/usr/lib64/locale/blah/LC_MESSAGES
/usr/lib64/locale/blah/LC_MESSAGES

Скомпилированные локали лежат в /usr/lib64/locale/.
В /usr/share/i18n/locales/ лежат исходники локалей.

Что значит cannot set to default локаль?

В переменной окружения указана локаль, но прочитать ее с диска не удалось.

Ну и про ошибки localedef - что не так?

Не надо ее звать. Комплект исправных локалей поставляется с дистрибутивом.

Исправление bormant, :

Каких файлов/директорий не может открыть locale?

Например:

$ LANG=blah locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
...
А не может открыть те, на которые open вернул ошибку (ENOENT):
$ LANG=blah strace -e open locale
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib64/locale/locale-archive", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib64/locale/blah/LC_CTYPE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
locale: Cannot set LC_CTYPE to default locale: No such file or directory
open("/usr/lib64/locale/blah/LC_MESSAGES", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)[br]locale: Cannot set LC_MESSAGES to default locale: No such file or directory
open("/usr/lib64/locale/blah/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
locale: Cannot set LC_ALL to default locale: No such file or directory
...
то есть, вот эти:
/usr/lib64/locale/locale-archive
/usr/lib64/locale/blah/LC_CTYPE
/usr/lib64/locale/blah/LC_MESSAGES
/usr/lib64/locale/blah/LC_MESSAGES

Скомпилированные локали лежат в /usr/lib64/locale/.
В /usr/share/i18n/locales/ лежат исходники локалей.

Что значит cannot set to default локаль?

В переменной окружения указана локаль, но прочитать ее с диска не удалось.

Ну и про ошибки localedef - что не так?

Не надо ее звать. Комплект исправных локалей поставляется с дистрибутивом.

Исходная версия bormant, :

Каких файлов/директорий не может открыть locale?

Например:

$ LANG=blah locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
...
А не может открыть те, на которые open вернул ошибку (ENOENT):
[br]$ LANG=blah strace -e open locale[br]open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3[br]open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3[br]open("/usr/lib64/locale/locale-archive", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)[br]open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3[br]open("/usr/lib64/locale/blah/LC_CTYPE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)[br]locale: Cannot set LC_CTYPE to default locale: No such file or directory[br]open("/usr/lib64/locale/blah/LC_MESSAGES", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)[br]locale: Cannot set LC_MESSAGES to default locale: No such file or directory[br]open("/usr/lib64/locale/blah/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)[br]locale: Cannot set LC_ALL to default locale: No such file or directory[br]...[br]
то есть:
/usr/lib64/locale/locale-archive
/usr/lib64/locale/blah/LC_CTYPE
/usr/lib64/locale/blah/LC_MESSAGES
/usr/lib64/locale/blah/LC_MESSAGES

Скомпилированные локали лежат в /usr/lib64/locale/.
В /usr/share/i18n/locales/ лежат исходники локалей.

Что значит cannot set to default локаль?

В переменной окружения указана локаль, но прочитать ее с диска не удалось.

Ну и про ошибки localedef - что не так?

Не надо ее звать. Комплект исправных локалей поставляется с дистрибутивом.