Всем привет, это снова я с новостями с фронта.
В этом выпуске:
I. Итоги плановых работ 5го января II. Что такое UTF-8, зачем он нужен и чем это нам всем грозит.
Итоги.
Вчера на серверах ЛВК были проведены некоторые работы, результаты которых вы возможно заметите.
1. Была обновлена версия системы виртуализации (гипервизор Xen версии 3.2, ядро Linux версии 2.6.26, Debian 5.0). Результатом этого должны быть: * Ускорение работы сети между виртуальными машинами. * Исчезновение подвисаний сети, приводивших к замиранию интерфейса. * Возможность создавать виртуальные машины архитектуры amd64 (x86_64).
2. desktopvm была обновлена до Debian GNU/Linux 5.0 "Lenny", а это KDE 3.5.10, GNOME 2.22, Firefox 3.0, Thunderbird 2.0, OpenOffice.org 3.0 и многое другое.
3. desktopvm, zigzag и вспомогательные сервера и виртуальные машины были переведены на UTF-8. Об этом подробнее ниже.
Если вы столкнулись с какими-то сложностями или с неработоспособностью какого-то ПО - не стесняйтесь обращаться к системным администраторам.
Из известных проблем: если у вас неадекватно ведет себя OpenOffice.org - попробуйте удалить его настройки у себя из домашнего каталога (подкаталоги ~/.openoffice.org/ и ~/.openoffice.org2/)
UTF-8
1. Что такое UTF-8? Это одна из кодировок Unicode. Подробнее про нее можно почитать [1].
2. Зачем нужна UTF-8, когда и так есть KOI8-R, CP1251 и, не к ночи будь помянута, ISO-8859-5? Переход на UTF-8 позволяет избавиться от плясок с кодировками. (Которые становятся особенно забавными, как только появляется задача совмещать в одном тексте фрагменты на русском, немецком, китайском, японском и прочих языках, которые раньше требовали применения различных несовместимых между собой кодировок.) В настоящее время UTF-8 является стандартом де-факто в мультиязычных средах и в ОС Linux в частности (особенно в десктопной user-friendly части). Значительное количество прикладного и, что важнее, системного ПО устанавливается в расчете на UTF-8 и для достижения его работоспособности в 8-битной среде KOI8-R может требоваться либо дополнительная настройка, либо дополнительные костыли. Не смотря на то, что некоторое ПО до сих пор не совместимо с UTF-8, мы считаем, что момент, когда на новых системах следует использовать UTF-8 уже давно позади, и настало время, когда встает вопрос "А когда же мы сможем перевести существующую систему на UTF-8?" Исходя из вышеописанного, нами было принято решение совместить обновление ОС на desktopvm и переход на UTF-8.
3. Что было сделано? На dektopvm, zigzag и ряде служебных серверов была установлена локаль по-умолчанию UTF-8. Имена файлов на файловой системе /home были изменены на UTF-8. (Для тех кто интересуется: была выполнена команда "convmv -r -f koi8r -t utf8 /home".)
4. Чем это грозит? Ряд ПО перестанет работать или начнет работать неправильно при сборке/запуске в локали UTF-8. Доподлинно известно что в UTF-8 не может работать Стенд СММ КБО. (Василий выдохни, выход есть.) Некоторое ПО при открытии файлов может предполагать, что содержимое файла в той же кодировке, что задает текущая локаль, а текстовые файлы, созданные ранее, скорее всего будут в кодировке KOI8-R, а не UTF-8.
5. Что делать в случае, если требуется работать с файлом, а он в кодировке KOI8-R? Простейшее решение - перекодировать содержимое файла. Например командой konwert koi8r-utf8 -O <имя файла> Либо запускать приложение в локали KOI8-R (см. ниже)
6. Что делать если приложение не работает в локали UTF-8 или крайне необходимо работать в файлами именно в кодировке KOI8-R? Локаль - это свойство процесса. Она берется из переменной окружения $LANG (если не заданы переменные $LC_*). Убедиться в том, какая локаль используется в данный момент можно выполнив команду "locale". Запустить команду в локали KOI8-R можно предварительно переопределив переменную LANG:
$ LANG=ru_RU.KOI8-R <command> или $ export LANG=ru_RU.KOI8-R $ <command1> $ <command2> $ <...>
Однако вывод этих команд будет не в той кодировке, в которой работает терминал. Для этого вывод необходимо пропустить через фильтр konwert или задать текущую кодировку в настройках терминала (в konsole это Настройка->Кодировка->...). Для ввода с консоли аналогично.
NB! При открытии файла с русским именем имеет значение текущая локаль. То есть программа, запущенная в локали KOI8-R, не сможет нормально работать с русскими именами файлов, которые у нас по-умолчанию в UTF-8. Соответственно, кириллические имена файлы, создаваемых из приложения в локали KOI8-R, будут отображаться в локали UTF-8 знаками вопроса. Переименовать файлы можно командой convmv.
В качестве еще одного решения вопроса под номером 6 может использоваться отдельная виртуальная машина с локалью по-умолчанию KOI8-R. Именно такой вариант используется для проекта СММ КБО. (Подробности будут завтра в соответствующий список рассылки.)
PS Еще раз повторю: если у вас возникла какая-то проблема, связанная с обновлением desktopvm или с переходом на UTF-8, обращайтесь к системным администраторам ЛВК.
[1]. http://ru.wikipedia.org/wiki/UTF-8