Calculate Linux 13 - LiveCD RUS с Firefox

Задача - получить русскоязычный livecd образ системы с браузером по умолчанию Firefox. Проделав эту операцию, вы сможете в дальнейшем проводить различного рода эксперименты. Для примера загрузите свежий образ Calculate Linux. Мне под руку попался 32-битный CLDX 20130124.

Все эксперименты я буду проводить на флешке, без установки системы на жесткий диск. В результате работы я получу загрузочную флешку с необходимыми мне изменениями. Полученную систему можно в любой момент установить на жесткий диск. Поскольку мне понадобится запись на флешку, для установки на нее системы я воспользуюсь установщиком Calculate. Установщик использует файловую систему FAT32, а это значит, что я смогу в конце работы сгенерировать и записать на неё новый Squash-образ c системой.

Для эксперимента подойдет флешка с размером памяти в 2 раза превышающим размер образа. Желательно взять с некоторым запасом. Так как в процессе работы я буду распаковывать портежи, оперативной памяти на компьютере также должно быть не менее 2 Гб. В моём случае было 4 Гб.

Все теже действия можно проделать и при помощи CD/DVD диска с той лишь разницей, что на выходе получим новый ISO образ, который нужно будет куда-то сохранить, например подмонтировав раздел жесткого диска, либо вставив флешку.

Итак, загружаемся с флешки, пожеланию выбираем в меню загрузчика русский язык, кликнув F2, выбираем загрузку в Builder-режиме. После загрузки получаем привычный вид рабочего стола (см. рис. 1).

cldx1.png

рис. 1.

Первое, что необходимо сделать - выйти в интернет. Воспользуйтесь NetworkManager, кликнув в правом-верхнем углу трея по иконке.

Итак, приступим. Откроем консоль и получим права root, набрав:

su

Переходим builder-режим:

cl-builder

После ввода команды, цвет текста изменится на коричневый. Идея builder-режима в том, чтобы отделить систему от пространства пользователя посредством использования слоеной файловой системы AUFS. cl-builder работает в отдельном слое, содержимое которого видит пользователь и эти изменения как раз можно включить в новый образ системы. Более подробно можно почитать здесь.

Дистрибутивы Calculate Linux включают только запакованную копию портежей. Поэтому первое, что необходимо сделать, это распаковать и синхронизировать портежи и оверлей:

eix-sync

Calculate использует бинарные обновления и к тому же rolling-release модель обновления, поэтому возьмём за правило первым делом всегда обновлять систему:

 # emerge -uDNa world

These are the packages that would be merged, in order:

Calculating dependencies... done!
[binary     U  ] media-libs/freetype-2.4.11 [2.4.9-r1] USE="-infinality%" 
[binary   R    ] virtual/udev-197  USE="kmod%*" 
[binary     U  ] sys-apps/portage-2.2.0_alpha161 [2.2.0_alpha160]
[binary     U  ] sys-fs/udisks-1.0.4-r4 [1.0.4-r2]
[binary     U  ] sys-power/upower-0.9.19 [0.9.18]
[binary     U  ] net-misc/networkmanager-0.9.6.4-r1 [0.9.6.4] USE="consolekit%*" 

Would you like to merge these packages? [Yes/No]

Теперь я могу смело удалить браузер Chromium.

 # emerge -C chromium -a
 * This action can remove important packages! In order to be safer, use
 * `emerge -pv --depclean <atom>` to check for reverse dependencies before
 * removing packages.

>>> These are the packages that would be unmerged:

 www-client/chromium
    selected: 24.0.1312.56 
   protected: none 
     omitted: none 

All selected packages: www-client/chromium-24.0.1312.56

>>> 'Selected' packages are slated for removal.
>>> 'Protected' and 'omitted' packages will not be removed.

Would you like to unmerge these packages? [Yes/No]

Немаловажно после удаления подчистить зависимости:

emerge -ac

Здесь вы увидите, что одному пакету с расширением, входящему в world-файл (/var/lib/portage/world), всё же нужен Chromium, удалим и его:

emerge -C chromium-adblock

Теперь можно удалить зависимости, всего 9 пакетов:

 # emerge -ac
...
All selected packages: dev-python/ply-3.4 dev-libs/ppl-0.11.2-r1 dev-libs/cloog-ppl-0.15.10 media-libs/libvpx-1.0.0 dev-lang/v8-3.14.5.3 dev-python/simplejson-2.6.2 dev-lang/nacl-toolchain-newlib-0_p9093 media-libs/opus-1.0.1 media-libs/libwebp-0.2.1

Мне повезло, я работаю НЕ в винде и могу это делать с запущенным браузером Chromium, продолжая писать эту статью даже после удаления браузера с зависимостями. :wink:

Осталось установить Firefox. Зная, что браузер прожорливый, я воспользуюсь пакетом firefox-bin, чтобы не забить всю память. Опять же, в случае необходимости, я могу задействовать своп с жесткого диска.

Установлю Firefox:

emerge -a firefox-bin

Проверим на обновления конфигурационных файлов:

dispatch-conf

Поскольку я работаю в так называемом режиме интерактивной сборки системы, я могу уже запустить Firefox и проверить насколько он меня устраивает. В нижней панельке программ я его увижу только после перезахода в сеанс, в силу особенностей XFCE. Если вы подскажите какой командой можно обновить панель, мы с удовольствием добавим это действие в шаблоны.

Всё, осталось систему запаковать. Не забудем выйти из builder-режима:

exit

Сгенерируем Squash-образ с нашими изменениями:

 # cl-image --lang=ru_RU --keep-tree squash
 * Пересборка live образа Calculate Linux
Системная информация
 * Собираемая система: Calculate Linux Desktop XFCE
 * Версия системы: 13
 * Тип оборудования машины: i686
 * Язык по умолчанию: ru_RU
 * Свободное место на flash: 14G
Выполнение проверок
 * Образ будет создан в: /mnt/flash

Продолжить пересборку на flash (yes/no):

Вот наиболее интересные опции:

  • ‘–compress’ выбирая более простой метод сжатия, например gzip, можно получить существенный выигрыш в скорости;
  • '-keep-tree’ иногда бывает удобно сохранять распакованным дерево портежей, особенно если вы захотите продолжить эскпериментировать с флешкой;
  • ‘–lang’ и '-timezone’ язык и часовой пояс по умолчанию;

Если вместо squash ввести iso, будет создан новый ISO файл.

После выполнения создался новый образ (livecd.squashfs.1), увидеть который можно в директории /mnt/flash. При этом первоначальный образ livecd.squashfs сохранился. При последующих запаковках он будет удалён, сохраняться будет только предыдущий, текущий на момент выполнения операции образ.

Осталось перезагрузить компьютер и сделать скриншот. Теперь мне уже не понадобится нажимать F2 в меню загрузчика, чтобы указать родной язык. Вид рабочего стола после перезагрузки:

cldx2.png

Разумеется, все изменения останутся в системе и после установки на жесткий диск.

Ещё раз порядок действий из консоли:

su
cl-builder
eix-sync
emerge -uDNa world
emerge -C chromium chromium-adblock
emerge -ac
emerge -a firefox-bin
dispatch-conf
exit
cl-image --lang=ru_RU --keep-tree squash

P.S. Я всё же нашел глюк в работе запущенной версии хрома после удаления пакета - ничего нельзя открыть в новых вкладках. :slight_smile:

С чем связано торможение выпадающего меню в фаерфоксе 18? и собирал и бинарный ставил… одно и то же. (кальк13 кде)

Александр, это фантастика. Очень, в итоге удобно. Спасибо большое за инструкцию!
Сам вчера проделывал точь-в-точь эту процедуру, учился как и что правильно делать. Научился. Но не успел сам написать в блоге, как это делается. Если разработчик опережает пользователей - это очень хороший, имхо, показатель. Спасибо!

может есть смысл также написать, как записывается образ на флешку