Здравствуйте!
Помогите пожалуйста с параметрами locale. FreeBSD 6.1
Сейчас locale выдает:
LANG=ru_RU.KOI8-R
LC_CTYPE="C"
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=Как я понимаю, должно быть (списал со второго сервера):
LANG=ru_RU.KOI8-R
LC_CTYPE="ru_RU.KOI8-R"
LC_COLLATE="ru_RU.KOI8-R"
LC_TIME="ru_RU.KOI8-R"
LC_NUMERIC="ru_RU.KOI8-R"
LC_MONETARY="ru_RU.KOI8-R"
LC_MESSAGES="ru_RU.KOI8-R"
LC_ALL=Сейчас perl и иже с ним ругаются на параметры locale
Например perl выводить так:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LC_ALL = (unset),
LANG = "ru_RU.KOI8-R"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").Я пробовал искать - подобных вопросов много. Но ответ обычно один - приписать присвоение значение.
Пробовал через setenv, через export - значения не меняются.
Не понятно с чего все началось.
Что посоветуете, коллеги?
>Пробовал через setenv, через export - значения не меняются.Способ установки переменных окружения зависит от используемого шелла, у вас какой?
Однако значительно важнее, что переменные это далеко не все. Сами локали должны быть установлены в системе, переменные окружения лишь осуществляют выбор между ними. А вот с этим у вас похоже проблемы. Попробуйте воспользоваться sysconfig, если не найдете нужного, то таки придется открыть handbook :)
>>Пробовал через setenv, через export - значения не меняются.
>
>Способ установки переменных окружения зависит от используемого шелла, у вас какой?
>sh
>Однако значительно важнее, что переменные это далеко не все. Сами локали должны
>быть установлены в системе, переменные окружения лишь осуществляют выбор между ними.
>А вот с этим у вас похоже проблемы. Попробуйте воспользоваться sysconfig,Вы наверно имели ввиду sysinstall?
>если не найдете нужного, то таки придется открыть handbook :)с радостью. Только вот что именно почитать? Как устанавливать значение этих переменных в FreeBSD?
>Как устанавливать значение этих переменных в FreeBSD?man login.conf
less /etc/login.conf
/ russian
q
vipw
>
>>Как устанавливать значение этих переменных в FreeBSD?
>
>man login.conf
>less /etc/login.conf
>/ russian
>q
>vipwМеня смущает, что это как раз не изменилось.
...
#
# Russian Users Accounts. Setup proper environment variables.
#
russian|Russian Users Accounts:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:\
:tc=default:
...
Как было, так и есть.
Что на этом сервере, что на том где все в порядке.
Но как сделать все остальные переменные равными ru_RU.KOI8-R ?
>Вы наверно имели ввиду sysinstall?Да, очень давно не пользовался FreeBSD, так что забыл.
>с радостью. Только вот что именно почитать? Как устанавливать значение этих переменных
>в FreeBSD?Ну например:
http://www.freebsd.org/doc/en/books/handbook/using-localizat...А вообще в bash(и скорее всего в sh тоже)
export LC_ALL=нужная_локаль
Проверить, все ли в порядке в /usr/share/locale, в случае чего сделать installworld или взять ее с другой машины.sysinstall и login.conf тут не при чем. Если LANG установлен в корректную локаль, locale должна показывать ее во всех LC_* кроме LC_ALL. Если этого не происходит, скорее всего что-то случилось с файлами локалей.
А уж где устанавливается LANG - в конфиге шелла или в login.conf - совершенно не важно.А LC_ALL вообще лучше не трогать, потому что она имеет приоритет над всеми LC_*, а обычно имеет смысл некоторые установки оставить в C. Я например, устанавливаю в C LC_MESSAGES, LC_TIME и LC_NUMERIC.
>[оверквотинг удален]
>
>sysinstall и login.conf тут не при чем. Если LANG установлен в корректную
>локаль, locale должна показывать ее во всех LC_* кроме LC_ALL. Если
>этого не происходит, скорее всего что-то случилось с файлами локалей.
>А уж где устанавливается LANG - в конфиге шелла или в login.conf
>- совершенно не важно.
>
>А LC_ALL вообще лучше не трогать, потому что она имеет приоритет над
>всеми LC_*, а обычно имеет смысл некоторые установки оставить в C.
>Я например, устанавливаю в C LC_MESSAGES, LC_TIME и LC_NUMERIC.Все, решил. Спасибо за совет.
Сравнил ru_RU.KOI8-R в locale с "нормальным" сервером - почему-то не было файла MONETARY. Перекопировал каталог - все стало хорошо. Программы перестали ругаться.
Еще раз спасибо.