Минимальный комплект
В целях самообразования пытаюсь выяснить минимально-необходимый комплект для корректной локализации, подскажите плиз.
Начало: Создаю файлик размером 1G, форматирую в ext3, монтирую его дерево каталогов. Разворачиваю в него stage3, монтирую туда-же из рабочей системы каталоги portage, distfiles, tmp, proc, dev. В make.conf добавляю USE - флаги unicode, userlocales. Корректирую файлы:
# /etc/locale.gen en_US ISO-8859-1 en_US.UTF-8 UTF-8 ru_RU.CP1251 CP1251 ru_RU.KOI8-R KOI8-R ru_RU.UTF-8 UTF-8
# /etc/conf.d/keymaps KEYMAP="-u ru4" SET_WINDOWKEYS="yes" EXTENDED_KEYMAPS="" DUMPKEYS_CHARSET="koi8-r"
# /etc/conf.d/consolefont CONSOLEFONT="Cyr_a8x16"
# /etc/env.d/02locale LANG="ru_RU.UTF-8" LC_NUMERIC=POSIX
Дальше chroot и пересобираю систему. Локализация получается нормальная.
Часть - 2: Опять - же создаю файлик размером 100М, форматирую его в ext3, монтирую его в дерево каталогов. Создаю в нем корневую структуру папок. Переношу туда из ранее собранной системы файлы busybox, bash разворачиваю архив busybox-links.tar, командами:
ldd -v /bin/bash ldd -v /bin/busybox
определяю требуемые библиотеки и переношу их тоже. Понятно, что нужен так-же шрифт прописанный в /etc/conf.d/consolefont
Вопрос: Что еще необходимо для нормальной локализации?
- Для комментирования войдите или зарегистрируйтесь
В /etc/locale.gen достаточно
В /etc/locale.gen достаточно одной строки ru_RU.UTF-8 UTF-8 , английский/русский работают нормально.
Так же стоит обратить внимание на конфигурацию ядра, а точнее:
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_UTF8=y
.
И оно даст корректую локализацию в консоли (
init 3
)???:wq
--
Live free or die
даст, но нада еще параметр
даст, но нада еще параметр unicodemap настроить
потом сделать
в Gentoo используется BSD стиль инициализации системы, а init 3 присущ System V ;-)
Theli написал(а):даст, но
Это не пакет-ли dev-perl/Unicode-MapUTF8?
вроде нет... не думаю, что
вроде нет... не думаю, что это имеет отношение к перлу... просто локализация у меня UTF-8, а шрифт используется для koi8-r... о чем и говорит параметр unicodemap
/
Я же говорил, что чего-то там не хватает...
В Gentoo используется гремучая смесь из System V и BSD.
Если сомневаешься --- можешь поискать в FreeBSD уровни, соответствующие
boot
илиdefault
;)ЗЫ: Тот факт, что ИМХО System V правильнее будет, пока опустим.
:wq
--
Live free or die
Anarchist написал(а): ЗЫ: Тот
опустим, но я скажу всё же свое имхо =) там есть 9 уровней, 6 из которых заранее предопределены и используется программа init от и до, а у нас init передает управление openrc, благодаря чему у нас уровней может быть бесконечно больше 9 и они могут иметь осмысленные названия. Затем зависимости в System 5 разруливаются именованием ссылок на скрипты в init.d, у нас же зависимости разруливаются самим openrc по данным внутри скрипта, отсюда возможность параллельного запуска "сервисов" и т.д.
System V достаточно гибкий и надежный, но уже слишком старый
немного оговорюсь, но FreeBSD я видел из-за плеча товарища, а потому утверждать не буду. Просто вижу огромную разницу между Gentoo и большинством других дистрибутивов повозившись со скриптами инициализации системы ;-)
Спасибо всем откликнувшимся
Возможно я неясно выразился. В системе - которую я пересобрал из stage3, русская локализация нормальная.
Как видно я пропустил env-update и source /etc/profile, но локаль корректная.
Теперь из этой системы я беру busybox, bash, runscript со всеми необходимыми библиотеками и скриптами, складываю их в новый образ. Запуск.
А здесь локаль уже "буржуйская".
Файлы инициализации подопытной системы:
Так какую мне кнопку нажимать, всмысле куда копать?
Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...
1. Цитата: А здесь локаль уже
1.
Чё то не пойму никак. Вы локализацию в уже в чруте делали или в своей системе? какой из каталогов /etc использовался?
просто, чтобы в чруте была русская локаль, то ее нада настраивать в /etc этого чрута ;-)
2. зачем вы что-то вручную копируете?! У emerge есть параметр --root
и все пакеты с их зависимостями будут установлены в /mnt/linux и ничего монтировать и чрутиться не нада ;-)
потом заполняете locale.gen по своему вкусу и регенерируете локаль. потом, вроде, нада пересобрать glibc
потом устанавливаете нужные шрифты и настраиваете конкретные приложения будь то bash или что-либо еще...
простите, если снова неправильно вас понял, но вопрос какой-то запутанный для меня (((
Видно внятно выражать мысли я неумею, сорри
Я сейчас работаю в Calculate 9.5 немного под себя переделанную с самосборным ядром. Все прекрасно, локаль корректная, претензий нет.
Но мне хочется понять все, что происходит с момента старта системы (для чего тут такой, а там другой скриптик, файлик и т.д.). Для этих целей я командой dd создаю образ image.img, размером в 10М. Монтирую его в дерево каталогов. Создаю в нем джентельменский набор папок ( mkdir bin dev etc lib proc usr sbin var). Из материнской системы беру busybox и копирую в созданный образ. С помощью команды ldd -v, выясняю у материнской системы какие библиотеки использует busybox, и тоже копирую их в созданный образ. В это-же образ распаковываю архив /usr/share/busybox/busybox-links.tar и получаю полный набор инструментов и готовую (почти) новую, маленькую систему. Проверяю :)
В полученной системе busybox собран с поддержкой unicode и русской локали (он же взят из материнской, рабочей). Как его уговорить перейти на русский в полученной системе с минимальными затратами?
Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...
unicodemap="koi8r"
Позволю себе немного отвлечься;
Выставил ради эксперимента в /etc/conf.d/consolefont данную опцию,
перезапустил /etc/init.d/consolefont restart, после чего в моей консоли вместо
русских букв стали выводиться символы псевдографики. Моя локаль - ru_RU.UTF-8.
Может быть надо какой-нибудь хитрый пакет поставить, для того, чтобы работала
опция unicodemap="koi8r"?
Вообще-то, у меня в консоли проблем с русским вроде-бы и нет, просто интересно о_О.
крякозябры исчезнут, если
крякозябры исчезнут, если выставишь там шрифт koi8-r ... этот параметр нужен тока в случае, если локаль и шрифт не совпадают по кодировкам! это ведь так - для общего развития ;-)
Благодарю :)
Мдя,со шрифтами и кодировками у меня плохо...
Да и не мудрено - в этом зоопарке и заблудиться можно %)
зачем нужны export
зачем нужны
export LC_ALL=''
export LC_NUMERIC='C'
уберите их (покраней мере LC_ALL='')
ОПА - буду мучить bash :)
Простой эксперимент в "материнской" системе
показал, что busybox русский язык никак не понимает :(
Теперь добавлю в минимальную систему bash и буду над ним опыты ставить :)
Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...