Локаль для пользователя и крякобязы mc

Автор Nordwest, 20 июля 2011, 21:32:47

« назад - далее »

0 Пользователи и 3 гостей просматривают эту тему.

Nordwest

Здравствуйте.
Не могу добиться того, чтобы при кодировке пользователя ru_RU.UTF-8 в mc правильно отображался русский.
Исходная ситуация. У рута кодировка utf-8, у пользователя KOI8-R:
# locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

$ locale
LANG=ru_RU.KOI8-R
LC_CTYPE="ru_RU.KOI8-R"
LC_NUMERIC="ru_RU.KOI8-R"
LC_TIME="ru_RU.KOI8-R"
LC_COLLATE="ru_RU.KOI8-R"
LC_MONETARY="ru_RU.KOI8-R"
LC_MESSAGES="ru_RU.KOI8-R"
LC_PAPER="ru_RU.KOI8-R"
LC_NAME="ru_RU.KOI8-R"
LC_ADDRESS="ru_RU.KOI8-R"
LC_TELEPHONE="ru_RU.KOI8-R"
LC_MEASUREMENT="ru_RU.KOI8-R"
LC_IDENTIFICATION="ru_RU.KOI8-R"
LC_ALL=


mc в обоих случаях отображается правильно. Но при подключении к удаленному компьютеру по ssh, запускаемый там mc в крякобязах. На той стороне локаль utf-8.
dpkg-reconfigure locales не помогает
Получается установить utf-8 пользователю, если в ~/.bashrc прописать:

LANG=ru_RU.UTF-8
export LANG

Там предупреждающие надписи стоят о недопустимости изменений. Но изначально там прописана как раз KOI8-R и я не припомню, чтобы я её туда писал.
После такой правки locale выдает везде utf-8, но mc - крякобяз. Удаленно тоже :(
Пробовал ещё создать ~/.bash_login с таким содержанием:
LANG=ru_RU.UTF-8 mc
Тоже никак, пришлось возвращать koi8-r.

Пробовал и так:
localedef -i ru_RU -f UTF-8 ru_RU.UTF-8
Результат тот же.

Что ещё можно попробовать?

rayanAyar

Это конечно оффтоп...
Но если не затруднит - для чего понадобилась KOI8 ?
Просто любопытство :) . Первый раз вижу, чтобы в нынешнее время кто-то использовал "НЕ-UTF8".

paulcarroty

Открыть содержимое (спойлер)
Цитата: rayanAyar от 20 июля 2011, 21:39:22
Это конечно оффтоп...
Но если не затруднит - для чего понадобилась KOI8 ?
Просто любопытство :) . Первый раз вижу, чтобы в нынешнее время кто-то использовал "НЕ-UTF8".
+1
[свернуть]

Udachnik

Я не понял  что надо. Сменить локаль, что ли?

Nordwest

Цитата: rayanAyar от 20 июля 2011, 21:39:22
Это конечно оффтоп...
Но если не затруднит - для чего понадобилась KOI8 ?
Просто любопытство :) . Первый раз вижу, чтобы в нынешнее время кто-то использовал "НЕ-UTF8".
Т.е. как она вообще у меня оказалась? Сложно сказать, возможно выбрал где-то при установке. У меня 2 системы, ещё винда есть, возможно из-за совместимости устанавливал, хз.

Цитата: Udachnik от 20 июля 2011, 21:55:14
Я не понял  что надо. Сменить локаль, что ли?
Ну да, сменить на utf-8. Замена в ~/.bashrc приводит к желаемому выводу locale, но mc русский перестает показывать. Да и вообще, в консоли тоже русский неправильно отображается, так что возможно проблема не в mc.

Udachnik

В /etc/locale.gen закомментировать все локали кроме ru_RU.UTF-8 UTF-8. Затем выполнить
# locale-gen
Ну и установить пакет console-cyrillic

Nordwest

#6
Цитата: Udachnik от 21 июля 2011, 12:56:50
В /etc/locale.gen закомментировать все локали кроме ru_RU.UTF-8 UTF-8. Затем выполнить
# locale-gen
Ну и установить пакет console-cyrillic
Сделал, перезагрузился. Меню гнома встретила английским. locale пользователя осталось KOI8-R. Заменил в ~/.bashrc KOI8-R -> UTF-8. Всё то же - консоль крякобязная.

--
Вот новый пользователь с нормальной кодировкой создается. Ну на самом деле новый-старый, с lenny был в /home, подключил его только. И UTF-8 у него, и русское меню и mc нормальный. В ~/.bashrc вообще ничего про локаль нет. Где же она, локаль эта, в какой корень зрить?
--
Ещё вот. Если из ~/.bashrc вообще убрать локаль, то 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
LANG=ru_RU.KOI8-R
LC_CTYPE="ru_RU.KOI8-R"
LC_NUMERIC="ru_RU.KOI8-R"
LC_TIME="ru_RU.KOI8-R"
LC_COLLATE="ru_RU.KOI8-R"
LC_MONETARY="ru_RU.KOI8-R"
LC_MESSAGES="ru_RU.KOI8-R"
LC_PAPER="ru_RU.KOI8-R"
LC_NAME="ru_RU.KOI8-R"
LC_ADDRESS="ru_RU.KOI8-R"
LC_TELEPHONE="ru_RU.KOI8-R"
LC_MEASUREMENT="ru_RU.KOI8-R"
LC_IDENTIFICATION="ru_RU.KOI8-R"
LC_ALL=

Вот, уже интереснее. А вот что с console-cyrillic:
$ sudo dpkg-reconfigure console-cyrillic
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "ru_RU.KOI8-R"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
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
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "ru_RU.KOI8-R"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
insserv: warning: script 'freenx-server.outformat' missing LSB tags and overrides

Причем это с sudo и меню конфигуратора английское. Если от рута - то меню русское и никаких ошибок не выдает.
Явно куда-то я влез :(

Nordwest

Заработало! :)
Вобщем стал экспериментировать по поводу различий между учетными записями. Оказалось, что правильные настройки экспортируются заменой системных файлов в корне домашней директории. В bashrc закоментировал уже. В krusader'е поискал файлы с текстом "koi8-r", нашел в файле .xsession такое:
LANG=ru_RU.KOI8-R
export LANG

Закоментировал и всё стало красиво. Странно, что этого файла вообще нет в образцовой учетке. И откуда они вообще... А потом ломай себе голову - почему все рекомендации по смене кодировки не работают.