# После последнего обновления появились проблемы с коди

## Rainbow goblin

Некоторые программы - Midnight commander,Eclipse,Scite сали отображать русские буквы в непонятном порядке. Вот, например, у меня был скрипт, в котором перечислялись буквы по алфавиту:"а,б,в,г,д и т.д." большие и маленькие. Теперь маленькие в Eclipse и Scite отображаются большими и наоборот,большие маленькими (я про верхний и нижний регистры).И порядок поменялся: "а,б,в,г,д" стало "б,в,ч,з,д"

  Ничего не пойму! Как это побороть? :Crying or Very sad: 

----------

## russianpirate

mne kagedtsya shto ti ne tot encoding ispolzuesh.. prover' shtobi encoding bil koi8-r/cp1251, u menya voobsche netu ruskogo  :Sad:  (ispolzoval tvoy 'guide')

ps: izvini ne mogu po ruski, v biblioteki segu

(i u menya tage samaya problemma poverh drugih)

----------

## Rainbow goblin

У меня все было нормально, пока позавчера emerge sync&&emerge -u world не сделал. Попробую все перекомпилировать поверх с нуля: emerge -e world. Потом напишу, что получилось.

----------

## viy

1. Много раз писалось и будет писаться, что emerge -u world есть зло, ну не надо так делать;

2. Возможно, полетели настройки локали, что говорит locale? Как и где прописаны установки (полагаю, что в /etc/env.d/00basic)? Проверить настройки, возможно они были затерты вследствии обновления каких-то пакетов.

----------

## Rainbow goblin

Пока послушался, остановил полную перекомпиляцию. 

locale:

1)

LANG=ru_RU.KOI8-R

LC_CTYPE="ru_RU.KOI8-R"

LC_NUMERIC=POSIX

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=

2) /etc/env.d/00basic  - все на месте

3) Ошибки касаются некоторых программ, а также make при компиляции тоже выдает "неправильные" сообщения на русском. Eclipse, mc, xnc - вот здесь неправильно читается. Также в firefox вместо буквы "И" знак вопроса. 

Причем не вообще абракадабра, а просто буквы стоят в неправильном порядке. Большие стли маленькими и наоборот, потом вместо абвгд идет бвчзд (у меня скрипт был, в котором была строчка с рус.алфавитом, оттуда вижу)

----------

## Rainbow goblin

ниего в голову вообще не приходит, полная перекомпиляция всего - это последнее перед переустановкой системы, а это неделя, как правило.

----------

## Rainbow goblin

A gde posmotret, kakie paketi obnovlialis?

----------

## viy

/var/log/emerge.log

----------

## Rainbow goblin

Вот и посмотрел, там 26 пакетов обновлялось, там и qt и motif, и x11.

Блин! На фига я обновлял! Наверное, придется опять переставлять все, быстрее будет...

----------

## Rainbow goblin

Вот список пакетов, которые обновлялись:

gcc-config-1.3.10-r1

glibc-2.3.4.20050125

eject-2.0.13-r1

bash-3.0-r8

perl-5.8.6-r3

opengl-update-2.1.1-r1

xorg-x11-6.8.2

openmotif-2.2.3

readline-5.0-r2

bc-1.06-r6

openssl-0.9.7e-r1

gpm-1.20.1-r4

xemacs-21.4.15-r3

gftp-2.0.18-r1

cpio-2.6-r1

glib-2.6.2-r1

mc-4.6.0-r12

gawk-3.1.4-r3

ming-0.2a-r1

net-tools-1.60-r11

qt-3.3.4-r2

arts-1.3.2-r1

libidn-0.5.13

kdelibs-3.3.2-r3

elfutils-0.97

prelink-20041123

ftp-0.17-r4

Из этого всего, думаю, только xorg-x11,openmotif,readline,glib,qt,kdelibs могут иметь отношение к моей нынешней проблеме. Что скажете, люди добрые? :Confused: 

----------

## russianpirate

смотри в /etc/locales.build кажетса што стёрлась запись русских кодингов

----------

## mobILL

Да поможет тебе:

Открой /etc/locales.build и приведи к следующему виду (твой же совет):

```

 POSIX 

 en_US/ISO-8859-1 

 en_US.UTF-8/UTF-8 

 en_US/UTF-8 

 ru_RU/KOI-8 

 ru_RU/KOI8-R 

 ru_RU/CP1251 

 ru_RU/UTF-8 

 ru_RU/IBM866 

 ru_RU.KOI8-R/KOI8-R 

 ru_RU.UTF-8/UTF-8 

 ru_RU.KOI-8/KOI-8 

 ru_RU.CP1251/CP1251 

 ru_RU.CP866/IBM866 

```

потом:

```

emerge -u --deep --newuse world

```

а после этого 

```

emerge gentoolkit

emerge gentoolkit-dev

revdep-rebuild 

```

После чего создай (подправь) файл /etc/env.d/02locale

```

LC_ALL=""

LANG="ru_RU.KOI8-R"

```

p.s. в файле 00basic не нужно прописывать LANG="ru_RU.KOI8-R" (это делалось только для старых версий baselayout)

----------

## russianpirate

ya ne dumayu shto LANG="ru_RU.koi8-r" pravelno ya dumayu shto nugno LANG="en_US.utf8" i samo perekluchetso na ru_RU.utf8 kagda nugno

i userlocales luche ne delat'.. glibc perepisavaet /etc/locales.build posle emerge glibc

prosto smotri v gaydah:

http://ru.gentoo-wiki.com/HOWTO_ru_RU.utf8_Gentoo_way

http://gentoo-wiki.com/HOWTO_Make_your_system_use_unicode/utf-8

----------

## mobILL

 *russianpirate wrote:*   

> ya ne dumayu shto LANG="ru_RU.koi8-r" pravelno ya dumayu shto nugno LANG="en_US.utf8" i samo perekluchetso na ru_RU.utf8 kagda nugno.....
> 
> 

 

Не соглашусь. Я пробовал делать основной кодировкой UTF-8 - всё конечно работает, кроме GTK - конечно и GTK настраивается, но....... всё таки косячки проскакивают то там, то здесь. И пока просто не вижу смысла в UTF8.

ИМХО как была KOI8-R самой стабильной так и осталась! Рано пока на UTF-8, рано!!!

----------

## mobILL

Rainbow goblin, не забудь в ядро вкомпилить по умолчанию KOI8-R  - у меня почему-то это было критично

```

File system -->

       Native Language Support -->

                (KOI8-R) Default NLS Option

                <*>Windows CP1251

                <*>NLS KOI8-R

                <*>NLS UTF-8

остальное модулями

```

----------

## Rainbow goblin

Та, хлопцi, все сделал. А шо толку? Буду переустанавливать. Конфиги есть, пиво будет - остальное все, как по маслу!   :Laughing: 

----------

## Rainbow goblin

Ничего не по маслу.  Переустановил, а все равно не во всех приложениях кириллица. Теперь вот гадай, отчего и почему.

----------

## mobILL

 *Rainbow goblin wrote:*   

> Ничего не по маслу.  Переустановил, а все равно не во всех приложениях кириллица. Теперь вот гадай, отчего и почему.

 

Приведи конкретные примеры!!! Я по твоему методу уже на 2 машины поставил Gentoo-amd-2004.3 и ни в одной программе нету проблемы с кириллицей причём пробовал и KOI8-R и UTF-8 (c UTF8 только всем известные проблемы с GTK которые решаются опять же всем известными методами). Всё пашет на УРА!

Какую версию baselayout ты ставил и какая кодировка у тебя по умолчанию???

----------

## Rainbow goblin

Ну вот все началось (см.выше) с обновления, я пытался решить, потом переустановил. Не помогло - проблемы все равно остались.  Порочная это методика - все переустанавливать, осталась у меня с виндузных времен... :Embarassed: 

   Теперь - проблемы с кириллицей не везде, а местами. Например - make выдает сообщения в кракозябре и еще кое-какие утилиты, всех не упомню. licq текст на ввод печатаю правильными буквами вроде, но в хаотичном порядке. В KDE там,где раскладки клавиатуры назначаются - пусто, но так как я /home не стирал, то настройки пользователя сохранились и я все же имею переключалку раскладок и значок в панели задач, но вот изменить там ничего не могу. Отсюда делаю вывод, что список раскладок где-то там есть, но я его не вижу из-за тех же проблем с кириллицей.

   LANG="ru_RU.KOI8-R" в ядре кодировку по умолчанию выставил koi8-r. В /usr/share/locale/locale.alias выставил russian ru_RU.KOI8-R ...

   Интересно, что, например,в  midnight commander в KDE в менюшках была кракозябля, а вот в когда переключался в Gnome - то все было нормально. И название ссылки на десктопе на русском, сделанное из Гнома в КДЕ правильно не читалось. Делаю вывод, что бардак как-то связан с библиотечками КДЕ или QT. Через какую билиотечку licq вводит сообщения? Выводит она их правильно, то есть сообщения, посланные мне читаются, а от меня - нет.

   ПОМОГИ РАЗОБРАТЬСЯ? Я за тебя ящик две бутылки пива выпью!  :Crying or Very sad: 

   Нужно найти по вине какой библиотечки это все происходит, или где в конфигах может быть ошибка. :mol:

----------

## mobILL

Давай попробуем разобраться.

I)Для начала перечисли версии твоих пакетов (сравним с моими), интересуют:

  1)portage

  2)baselayout

  3)ncurses

  4)slang  

  5)mc

  6)xorg

II)Покажи что у тебя прописано в следующих файлах

   1)/etc/env.d/02locale

   2)/etc/env.d/00basic

   3)/etc/rc.conf

   4)/etc/conf.d/keymaps

   5)/etc/locales.build

   6)/etc/X11/xorg.conf

III)Покажи что у тебя выдаётся по команде locale

IV)Посмотри на логи при запуске иксов

p.s. кстати, а у тебя сделано rc-update add xfs default???????????? без этого в иксах должны быть конкретные проблемы с кодировками. О, ещё с шрифтами KDE глючит, пока через панель управления не зайдёш в Администрировани->Шрифты. После того как зайдёшь туда, в файле xorg.conf обновятся пути к шрифтам. Перезапусти иксы и проблемы возможно решаться

----------

## Rainbow goblin

[ebuild   R   ] sys-apps/portage-2.0.51-r15

*** Portage will stop merging at this point and reload itself,

    recalculate dependencies, and complete the merge.

    You may avoid the remerging of packages by updating portage on its own.

[ebuild   R   ] sys-apps/baselayout-1.11.9-r1

[ebuild   R   ] sys-libs/ncurses-5.4-r5

[ebuild   R   ] sys-libs/slang-1.4.9-r1

[ebuild   R   ] x11-base/xorg-x11-6.8.2

----------

## Rainbow goblin

locale -a

C

en_US

en_US.iso88591

en_US.utf8

he_IL

he_IL.cp1255

he_IL.utf8

POSIX

POSIX.ansix341968

ru_RU

ru_RU.cp1251

ru_RU.ibm866

ru_RU.iso88595

ru_RU.koi8

ru_RU.koi8r

ru_RU.utf8

russian

----------

## Rainbow goblin

/etc/env.d/02locale:

LANG="ru_RU.KOI8-R"

LC_NUMERIC="POSIX"

----------

## Rainbow goblin

XFS добавлен в дефолт и пути к шрифтам прописаны в /etc/X11/fs/config , а также в /etc/X11/xorg.config

----------

## chiko

Тоже после обновления испытываю некоторые трудности. А именно: в aterm не могу писать по-русски, по 2 левых символа вводится вместо символов великого и могучего. И весьма странная вещь: в xterm пишу locale:

```
$ locale

LANG=en_US.UTF-8

LC_CTYPE="en_US.UTF-8"

LC_NUMERIC="en_US.UTF-8"

LC_TIME="en_US.UTF-8"

LC_COLLATE="en_US.UTF-8"

LC_MONETARY="en_US.UTF-8"

LC_MESSAGES="en_US.UTF-8"

LC_PAPER="en_US.UTF-8"

LC_NAME="en_US.UTF-8"

LC_ADDRESS="en_US.UTF-8"

LC_TELEPHONE="en_US.UTF-8"

LC_MEASUREMENT="en_US.UTF-8"

LC_IDENTIFICATION="en_US.UTF-8"

LC_ALL=
```

в aterm:

```
$ locale

LANG=ru_RU.koi8r

LC_CTYPE="ru_RU.koi8r"

LC_NUMERIC="ru_RU.koi8r"

LC_TIME="ru_RU.koi8r"

LC_COLLATE="ru_RU.koi8r"

LC_MONETARY="ru_RU.koi8r"

LC_MESSAGES="ru_RU.koi8r"

LC_PAPER="ru_RU.koi8r"

LC_NAME="ru_RU.koi8r"

LC_ADDRESS="ru_RU.koi8r"

LC_TELEPHONE="ru_RU.koi8r"

LC_MEASUREMENT="ru_RU.koi8r"

LC_IDENTIFICATION="ru_RU.koi8r"

LC_ALL=
```

```
$ locale -a | grep koi

ru_RU.koi8r

ru_UA.koi8u

tg_TJ.koi8t

uk_UA.koi8u
```

```
$ cat /etc/env.d/00basic

PATH="/opt/bin"

ROOTPATH="/opt/bin"

LDPATH="/usr/local/lib"

MANPATH="/usr/local/share/man:/usr/share/man"

INFOPATH="/usr/share/info"

CVS_RSH="ssh"

PAGER="/usr/bin/less"

LESSOPEN="|lesspipe.sh %s"

#LANG="ru_RU.koi8r"
```

```
$ cat /etc/env.d/02locale 

LANG="ru_RU.koi8r"

LC_NUMERIC="POSIX"
```

Как такое может быть - в xterm вывод локали разнится с выводом aterm'a... Причем кириллицу в aterm, хоть и не могу печатать, прекрасно вижу и вставляю из клипборда без проблем. Грешу на изменения в /etc/conf.d/* .

----------

## mobILL

 *Rainbow goblin wrote:*   

> /etc/env.d/02locale:
> 
> LANG="ru_RU.KOI8-R"
> 
> LC_NUMERIC="POSIX"

 

А вот и первая ошибка! На которой я попалился сам когда-то =))))))))

Вот как должен выглядеть файлик /etc/env.d/02locale

```

LC_ALL=""

LANG="ru_RU.KOI8-R"

LC_NUMERIC="POSIX"

```

Но сначала попробуй без строки LC_NUMERIC="POSIX" =)

Я сам как то забыл прописать LC_ALL="" в итоге глюки подобные твоим проскальзывали

ВНИМАНИЕ!!! в строке

```

LC_ALL=""

```

между кавычками пробела НЕТ, это очень важно.

p.s. у меня пакеты все тех же версий, у тебя только xorg поновее

----------

## viy

У меня в 02locale всего одна строчка: LANG=ru_RU.UTF-8

----------

## mobILL

 *viy wrote:*   

> У меня в 02locale всего одна строчка: LANG=ru_RU.UTF-8

 

Гы, ну с UTF8 это может и прокатывает, но вот с KOI8-R ты точно бы с  одной строкой обломался  :Very Happy: 

----------

## viy

Знаешь, нет. Год назад у меня точно также была прописана только koi8-r.

Попробуй грепнуть на "LC_" в /etc, возможно у тебя где-то завалялось старое определение.

Типа так: find /etc -type f -exec grep -l LC_ '{}' ';'

----------

## Rainbow goblin

A ja dumaju pro glibc - tam chto-to naportachili. Posle bootstrappinga tolko-tolko, dopisal /etc/locales.build (bootstrap ego zatiraet), perecompiliroval glibc i nano, vistavil locale ru_RU.koi8r  i uge v nano krakoziabra!

----------

## viy

Хм, тут еще идея появилась.

Если кракозябли в консоли (не в Хах), то для нормальной работы utf-8 надо сделать echo -n -e '\033%G'. Я себе в /etc/profile добавил такой блок:

```
# Added by viy for auto-unicode

if test -t 1 -a -t 2 ; then

        echo -n -e '\033%G'

fi
```

Ну а Хы сами все подхватывают.

----------

## theSoul

 *Rainbow goblin wrote:*   

> A ja dumaju pro glibc - tam chto-to naportachili. Posle bootstrappinga tolko-tolko, dopisal /etc/locales.build (bootstrap ego zatiraet), perecompiliroval glibc i nano, vistavil locale ru_RU.koi8r  i uge v nano krakoziabra!

 

Откатывайся на предыдущую версию glibc. Почти уверен, что грабли там.

----------

## Rainbow goblin

Как бы это сделать теперь, когда все закомпилено, попроще? И какая версия точно не портит кодировку?

----------

## theSoul

 *Rainbow goblin wrote:*   

> Как бы это сделать теперь, когда все закомпилено, попроще? И какая версия точно не портит кодировку?

 

У меня стоит sys-libs/glibc-2.3.4.20040808-r1 и всё работает. А вот чтобы не приходилось заново собирать софт при откате, нужно делать emerge с опцией -b, хотя бы для самых важных и жирных пакетов. Перед тем как откатываться на старую версию, лучше сделать `quickpkg glibc' на всякий случай.

----------

## Rainbow goblin

Спасибо, сейчас попробую  :Smile: 

----------

## Rainbow goblin

Может кто-нибудь на bugzilla перевести и запостить эту проблемку? Я по-английски не очень... :Sad: 

----------

## Rainbow goblin

Все, с меня хватит. От безысходности перехожу в Мандрейк. Пока glibc не поправят... Хнык-хнык...  :Crying or Very sad: 

----------

## mobILL

 *Rainbow goblin wrote:*   

> Все, с меня хватит. От безысходности перехожу в Мандрейк. Пока glibc не поправят... Хнык-хнык... 

 

Mandrake??????????? ну ты и извращенец. Уж проще сразу на Win =)

Короче, давай всё таки разбираться. Накинь мне на мыло все свои конфиги относящиеся к локалям. Конкретно что меня интересует я перечислял выше. ( ilovelinux@rambler.ru )

----------

## Rainbow goblin

 :Very Happy:    Все! Разобрался! Все дело все-таки в новых глибсях а не в каких не в конфигах. 

   Я решил быть хитрым и поставил весь портаж с инсталляционного CD. Так вот - русские LC_MESSAGES (в nano, make) есть уже сразу после распаковки stage3 (на прочие stage у меня нервов не хватило). 

   В общем - если у кого такая же проблема (а она будет у всех, кто ставит с нынешними глибсями) - пользуйтесь портажем с СиДи Рома! 

   Написал на багзиллу:

https://bugs.gentoo.org/shohttps://bugs.gentoo.org/show_bug.cgi?id=83363w_bug.cgi?id=83363

  Естессно, не зная достаточно английского, мне и ответили - напиши нормально, тогда рассмотрим. Напишите за меня кто-нибудь?

----------

## mobILL

 *Rainbow goblin wrote:*   

> 
> 
>    В общем - если у кого такая же проблема (а она будет у всех, кто ставит с нынешними глибсями) - пользуйтесь портажем с СиДи Рома! 
> 
> 

 

Ну у меня portage от 19.02.05 - никаких проблем нету! =)

----------

## Rainbow goblin

A glibc kakoy versii?

----------

## Rainbow goblin

Prosto zamaskiroval glibc-2.3.4.20050125 , prodolgaiu installiatziu, poka vse rabotaiet

----------

## mobILL

 *Rainbow goblin wrote:*   

> Prosto zamaskiroval glibc-2.3.4.20050125 , prodolgaiu installiatziu, poka vse rabotaiet

 

 :Laughing:   ага, а на форум в транслите пишешь

----------

## Rainbow goblin

A ja tolko proveril, gdu vot okonchatelnoj ustanovki. Compilirujetsja... :Rolling Eyes: 

----------

## Rainbow goblin

УРРРЯ!!! Я снова с вами! 

    Спасение вот тут:

сразу после emerge sync в начале установки из stage1 нужно дописать вот это 

echo "=sys-libs/glibc-2.3.4.20050125">>/usr/portage/profiles/package.mask

 :Very Happy: 

----------

