Необхідність мати свій варіант системи для системного адміністратора, ну і буденного користувача може бути продиктована багатьма факторами. Серед головних - зручність розгортання, коли в встановлюваної системі знаходиться все потрібні програми, останні версії ядра і системних бібліотек, модулі локалізації, драйвера і т.д ..
У Microsoft до речі це теж чудово розуміють і компанія пропонує засоби пересборки системи - пакет автоматичної установки Windows (Windows Automated Installation Kit) і Microsoft Deployment Toolkit. Природно Linux розвивається дещо іншим способом, так дистрибутиви виходять ще частіше Windows і збираються за іншим принципом.
Очевидно, це одна з подій по якій в Linux більшого поширення набули системи автоматичної установки, наприклад такі як - Kickstart. За допомогою приготованого Kickstart файлу можна встановити дистрибутив з даними параметрами і набором додатків.
Спочатку Kickstart з'явився в RedHat, і на даний момент вживається його численними клонами і деякими іншими збірками начебто Ubuntu. Перезбірка системи робиться в основному ентузіастами і для власних потреб.
Основою Calculate Linux послужив Gentoo. До недавнього часу розвивалися дві головні гілки - серверна CDS (Calculate Directory Server) і для настільних систем CLD (Calculate Linux Desktop).
Остання була представлена в 2-ух варіантах з різними робочими столами: CLD це KDE 4.x і CLDX - XFCE 4.6.х. Не так давно в сімействі Calculate Linux з'явився абсолютно новий варіант Calculate Linux Scratch (CLS) - вдає із себе LiveCD, призначений для самостійної збірки системи під будь-які завдання.
Ідея взагалі проста - замість готових збірок, в яких часто немає відповідного певному користувачеві софта, дати успішний інструмент дозволяє зробити потрібне рішення самостійно. Історія появи CLS проста.
Спочатку, було зібрано інформацію про те, що не влаштовує користувачів Gentoo в інших бінарних дистрибутивах побудованих на Gentoo, а конкретно Calculate і Sabayon. З'ясувалися дві передумови: відсутність відповідного софта і відсутність збірки Calculate Linux з робочим столом GNOME.
Версія CLSG містить полегшену середу Gnome (gnome-base / gnome-light), менеджер сеансів GDM і Wicd для графічної функції дротяних і wifi мереж (всього на
80 пакетів більше CLS). Дистрибутив випущений під дві архітектури i686 та x86_64.
Спочатку CLS орієнтувався безпосередньо на стороннього користувача, самі ж розробники не планували використовувати його для складання Calculate Linux. Але результат змусив переглянути це світорозуміння і на даний момент CLS є основною для всіх майбутніх версій Calculate Linux, як серверних так і настільних.
Адже CLS може виступати при складанні в ролі stage3, містить portage і базовий софт, а все що відрізняється в USE прапорах (наприклад, в KDE версії) при необхідності збирати заново, але таких пакетів достатньо не досить. Так якщо при стандартній зборці Gentoo (і CLS) "emerge -e system" робиться двічі, то далі вже в цьому немає необхідності, а значить економиться час і ресурси.
- CLS 9.9: i686 - 500 70 три MB, x86_64 - 600 20 дев'ять MB
Збираємо дистрибутив в інтерактивному режимі
Щоб скористатися режимом інтерактивної збірки слід встановити дистрибутив на жорсткий диск з параметром "-build", або вибрати режим завантаження "Builder" в завантажувальному меню LiveCD.
У завантажувальному меню Calculate Linux Scratch вибираємо Build
В цьому випадку файлова система після завантаження системи буде складатися з 3-х шарів aufs2 (Advanced Multi Layered Unification File System, являє собою вдосконалену реалізацію файлової системи Unionfs 2):
- calculate - 1-ий шар, який є образом системи завантажується з носія (livecd.squashfs) і змонтований в режимі «тільки для читання». Це база майбутнього дистрибутива, яку можна поміняти.
- delta - шар, в якому зберігаються всі конфігурації, вироблені під час складання;
- workspace - робочий шар, в якому проводяться всі маніпуляції по зміні вихідної системи.
Усі зазначені шари є підкаталогами в / mnt / scratch і автоматом утворюються після завантаження системи.
Практично за наявністю каталогу / mnt / scratch і визначається поточний режим роботи системи (в нашому випадку Builder).
Переходимо в режим інтерактивної збірки, ввівши в консолі "cl-builder", після виконання команди запрошення змінить колір. Вся майбутня робота в поточної віртуальної консолі буде проводитися в chroot оточенні / mnt / builder.
На даний момент можна працювати як в зазвичай в Gentoo - оновити портежей, встановлювати, оновлювати програми. Тут необхідно зробити принципове зауваження. У звичайному режимі шари встановлюються в такому порядку: calculate + delta + workspace, в інтерактивному - calculate + delta.
Після установки кожного пакета (закінчення виконання emerge) скрипт "cl-builder" робить команду "mount -o remount" перемонтіруя заново шар delta. У підсумку все конфігурації в delta відразу стають доступними в основній системі (наприклад з'являються ярлики додатків) і їх можна протестувати, перед складанням нового виду.
Запуск програми в chroot оточенні призводить до створення непотрібних тимчасових файлів, які пізніше потрапляють в образ. Саме тому, щоб уникнути конфліктів в роботі встановлюються програм, установку і видалення пакетів слід створювати тільки в chroot оточенні через cl-builder, а тестувати в звичайному. Оновлюємо утиліту calculate.
Оновлюємо портежей (в принципі релізи CLS виходять раз на місяць і цей крок можна пропустити):
Ще принциповий момент. Якщо CLS для збірки встановлений на флешку (calculate -d / dev / sdX), можна пересобрать унікальний файл livecd.squashfs, в якому практично, і знаходиться система зберігши конфігурації. Для цього достатньо ввести команду:
Новий файл буде мати інший порядковий номер збірки. При наступному завантаженні буде вже використаний новий образ з усіма змінами.
Слід побачити, що набутий в інтерактивному режимі дистрибутив підходить для масового користувача, але вважається несумісним з Calculate Directory Server (CDS). Щоб зібрати сумісний з CDS варіант, необхідно використовувати звичайний режим збірки.
Звичайний режим збірки
Щоб використовувати звичайний режим складання системи слід встановити Calculate Linux, (яку версію CLS / CLSG, CLD, CLDX або CDS) на жорсткий диск звичайним чином. Пізніше копіюємо в каталог / usr / calculate / share / linux встановленої системи ISO образ CLS унікальний (якщо потрібна унікальна версія системи, запропонована розробниками) або виготовлений нами в інтерактивному режимі. Спочатку слід приготувати систему для збірки командою "calculate" запустивши її з параметром "-c / -configure".
Готуємо систему до збірки
За замовчуванням буде проводитися збірка поточної версії системи, іншими словами якщо працюємо в CLS, то і збиратися буде CLS. Щоб вказати інший варіант дистрибутива, додаємо параметр -s / -os = [CLD | CLDX | CLS | CLSG | CDS]. І готуємо систему до збірки, наприклад CLDX.
У поточній версії скрипта calculate (1.2.6), що не прибрані перевірки наявності архівів stage3 і portage, які були потрібні раніше для складання системи. Так якщо в процесі з'явиться повідомлення: