- Gentoo stage1, stage2, stage3. Зачем они?
- Re: Gentoo stage1, stage2, stage3. Зачем они?
- Re: Gentoo stage1, stage2, stage3. Зачем они?
- Re: Gentoo stage1, stage2, stage3. Зачем они?
- Готовим свой Linux на базе Gentoo
- 1. То что нам понадобится
- 2. Подготовим систему к сборке
- 3. Обновим систему
- 4. Внесем изменения
- 5. Сохраним изменения
- 5. Создадим новый образ
- 6. Завершение сборки
- 7. Итог
Gentoo stage1, stage2, stage3. Зачем они?
1. Зачем в Gentoo есть stage1(28Mb), stage2(49Mb), stage3(102Mb)? В HandBook’e описывается установка только со stage3.
2. Нужно поставить Gentoo на компьютер с HDD объемом 210Mb. Возможно ли это и каким stage нужно воспользоваться (если например развернуть stage3 то будет занято около 410 Mb).
Re: Gentoo stage1, stage2, stage3. Зачем они?
раньше поддерживаемых методов установки gentoo было несколько,
от stage1 — собираешь все с нуля, до stage3 все уже собрано просто распаковываешь,
на маленький HDD поставить можно напирмер собрав все со stage1 на отдельной машине, и удалив ненужное, типа /usr/portage
Re: Gentoo stage1, stage2, stage3. Зачем они?
1.
> Настольная книга Gentoo только объясняет, как установить ОС, используя
> файл stage3. Однако, все еще осталась возможность установки из stage1
> или stage2.
—
> stage1 — используя его Вам необходимо производить bootstrap —
> перекомпиляцию всего toolchain — системы portage, gcc, binutils,
> ncurces, glibc согласно настройкам в конфигурационных файлах, которые
> Вы укажете. Затем, уже новым тулчейном Вы собираете свою систему,
> максимально её подогнав под идеал. Так сложилось, что для i686
> существует только stage3, но это упущение можно исправить.
> stage2 — в нём у Вас имеется полусырая система, которую надо просто
> пересобрать в соответствии с файлами конфигурации.
> stage3 — это наиболее простая форма установки. Распаковываете stage3 в
> корневой раздел, правите конфиги, ставите ядро, загрузчик, и вперёд, в
> даль светлую.
Re: Gentoo stage1, stage2, stage3. Зачем они?
Ок. А есть ли смысл пользоваться stage1? В том плане заметан ли разница в скорости между сборкой системы со stage1 и stage3?
Источник
Готовим свой Linux на базе Gentoo
Многие любят Gentoo за ее универсальность. Используя портежи, можно сделать инструмент под любые задачи. И пускай вас не смущает то, что секретарь никогда не будет компилировать Firefox — Боже упаси ей дать возможность ставить софт! Что может быть лучше дистрибутива, установив который вам больше ничего не понадобится с ним делать! Представьте себе — 5-10 минут времени и вы получаете систему с необходимым набором софта, собранного, настроенного и оптимизированного по вашим предпочтениям.
В этой статье я опишу процесс создания своей версии дистрибутива на основе Gentoo при помощи утилит Calculate 2.2. На выходе вы получите гибридный ISO диск для записи на CD/DVD или USB-Flash, полностью совместимый с Gentoo, поддерживающий установку на USB-HDD, USB-Flash, HDD с поддержкой LVM и Raid, файловой системой ext4, ext3, ext2, reiserfs, btrfs, xfs, jfs, nilfs2 или fat32.
Статья в первую очередь адресована всем любителям Gentoo, системным администраторам, преподавателям компьютерных классов школ и вузов, а также всем любителям Linux. Все операции выполняются с правами пользователя root из консоли.
1. То что нам понадобится
Разумеется, у вас уже должен быть установлен Gentoo, либо любой Gentoo-based дистрибутив и настроен доступ к сети интернет. Все операции я выполнял из Calculate Linux Desktop 11.9 KDE 64 бит.
Для начала установите пакеты calculate-assemble и calculate-builder. В Gentoo для этого понадобится подключить оверлей Calculate:
emerge layman
layman -a calculate
emerge calculate-assemble calculate-builder
Теперь определитесь с тем, какую систему вы хотите собрать. Перед вами выбор базовых образов:
- Gentoo Stage3 — прожиточный минимум для начала сборки системы;
- Calculate Scratch Server (CSS) — по сути тот же Gentoo Stage3 с ядром, драйверами, загрузчиком, портежами и утилитами Calculate.
- Calculate Linux Scratch (CLS) — CSS + Xorg + wireless.
- Calculate Linux Desktop с рабочим столом KDE, Gnome или XFCE (CLD, CLDG, CLDX) либо Calculate Directory Server (CDS).
В зависимости от задачи, загрузите последний Stage-архив Gentoo или Stage-образ Calculate и поместите в директории /var/calculate/remote/stages и /var/calculate/linux соответственно:
cd /var/calculate/remote/stages
wget mirror.yandex.ru/gentoo-distfiles/releases/x86/current-stage3/stage3-i686-20111018.tar.bz2
cd /var/calculate/linux
wget mirror.cnet.kz/calculate/CLDX/stages/i686/cldx-20111024-i686.iso
Stage образ Calculate Linux включает дерево портежей. По сути это одно из основных отличий образа Calculate от Gentoo Stage4. Собирая систему из Gentoo Stage, вам также понадобится загрузить портежи в директорию /var/calculate/remote/snapshots:
cd /var/calculate/remote/snapshots
wget mirror.yandex.ru/gentoo-distfiles/snapshots/portage-20111024.tar.bz2
Обратите внимание, версии фалов постоянно обновляются.
В этой статье я остановлю свой выбор на CLDX 32 бит по следующим причинам:
- Дистрибутив уже содержит большинство необходимых программ;
- Нет привязки к Gnome/KDE;
- XFCE включает несколько небольших пакетов и при желании быстро удаляется.
2. Подготовим систему к сборке
Для подготовки системы к сборке служит утилита cl-assemble. Вы можете воспользоваться любым из доступных профилей. В профилях Calculate Linux флаги подобраны с учётом используемого рабочего стола. CLD оптимизирован с учётом использования Qt/KDE, CLDG — Gtk/Gnome, XFCE — Gtk. Профиль CLDX идеально подойдет, если вы не хотите использовать ни KDE, ни Gnome.
Если в качестве профиля указать «CLDX», программа попросит более точно ввести его название:
Вам также понадобится указать раздел для установки. Это может быть либо раздел жесткого диска (10-15 Гб), либо директория. В случае использования директории, будет тратиться дополнительное время на удаление старых файлов. По умолчанию утилита использует Gentoo Stage3 образ и свежие портежи:
Укажем, что мы хотим взять 32-битный образ CLDX, свежую версию которого можно скачать отсюда mirror.cnet.kz/calculate/CLDX/stages/i686. Для этого понадобится правильно указать профиль и, в случае если мы работаем в 64-битной системе, указать, что мы хотим использовать архитектуру i686:
cl-assemble -p desktop/CLDX/x86/binary -d /dev/sda2 —source=CLDX —march=i686
На моей машине вся подготовка заняла менее 10 минут:
3. Обновим систему
Для сборки системы служит утилита cl-make. Обратите внимание на несколько параметров. Если вы хотите собрать систему со Stage3 — используйте опцию сборки системы «-m» (или «—make»), если из образа Calculate — опцию обновления системы «-u», (или «—update»). Обратите внимание на опцию «-V» (или «—withvideo») для копирования проприетарных видеодрайверов. Копирование без установки пресекает нарушение лицензии GPL, при этом у вас остаётся выбор проприетарного видеодрайвера, который будет инсталлирован в систему во время процесса загрузки.
В приведенном примере я не указывал собираемый профиль. Его следует вводить в случае, если вы ставите на сборку несколько систем одновременно. Например, 32 и 64 битную версии. В этом случае профиль можно ввести как «-p amd64» и «-p x86». Путем сравнения собираемых версий, программа попытается определить нужный профиль.
В моем случае потребовалось обновить около 40 пакетов.
Свои действия утилиты Calculate отписывают в файл /etc/calculate/assemble.env:
Некоторые значения, например rsync-сервер портежей, доступные разделы, можно прописать в переменных утилит. Пример с реального сервера сборки:
После указания доступных разделов, передавать параметр раздела сборки уже не обязательно.
Я успел написать этот текст пока система обновляется. Мне попались под обновление сразу gtk с python, лучше бы я взял сегодняшний образ. Несмотря на то, что я выбрал бинарный профиль, компиляция идет из исходников. Пойду налью себе кофе 🙂
4. Внесем изменения
Наконец добрались до самого интересного. Что мы можем изменить:
- состав пакетов;
- флаги сборки;
- настройки программ;
- настройки рабочего стола пользователей;
- темы и т.п.
Как вы могли заметить, образ развернулся в директорию /mnt/calculate-desktop-CLDX-x86-binary/. Используйте этот путь для внесения изменений. На скриншотах видно, что с развернутой системой производится некоторая настройка. Собственно все шаблоны настройки можно посмотреть в директории /usr/share/calculate/templates/assemble/. Важно вносить изменения так, чтобы не вызывать конфликт настроек. Где-то можно создать свои шаблоны изменений, где-то использовать альтернативные файлы. Рассмотрим теперь подробней.
4.1. Флаги сборки
Управление параметрами сборки пакетов осуществляется через USE-флаги. Урезая зависимости, вы можете добиться нескольких преимуществ:
- ускорить выполнение программ;
- повысить защищенность системы;
- избавиться от лишних зависимостей;
- уменьшить требование к дисковому пространству.
Давайте посмотрим на содержимое переменной USE. Для этого в собираемой системе нужно выполнить следующую команду:
linux32 chroot /mnt/calculate-desktop-CLDX-x86-binary /bin/bash -c «emerge —info»
Обратите внимание, я использовал вызов chroot через утилиту linux32, т.к. я выполняю сборку 32-битной системы из-под 64-битной. В противном случае в утилите linux32 нет необходимости.
Флагов будет великое множество. Более подробно о них можно узнать, почитав следующие описания: общие — /usr/portage/profiles/use.desc и индивидуальные — /usr/portage/profiles/use.local.desc.
Для внесения изменений в флаги применительно ко всем пакетам сразу используется файл make.conf. В процессе сборки содержимое файла /etc/make.conf будет переписываться, поэтому для внесения изменений, мы рекомендуем использовать альтернативный путь — /etc/portage/make.conf.
В качестве примера, давайте исключим поддержку адресации ipv6 во всех пакетах, для этого добавьте в файл /mnt/calculate-desktop-CLDX-x86-binary/etc/portage/make.conf следующую строчку:
Посмотрим что получится. В этот раз запустим обновление с флагом «-U», вместо «-u». Это позволит сэкономить время на синхронизацию портежей. Выполним ‘cl-make -U -V’:
Примечание. Так как при обновлении пакетов был пересобран Xorg сервер, в конце программа выполнит пересборку его модулей. Если вы будете запускать несколько сборок подряд, анализируя файл emerge.log, программа будет каждый раз пересобирать драйвера Xorg-сервера. Чтобы этого не происходило, вы можете удалить файл var/log/emerge.log в директории собираемой системы. Во время запаковки системы в образ, этот файл будет в любом случае удален.
4.2. Флаги и маски пакетов
Для изменения флагов и масок используются следующие пути: etc/portage/package.use, etc/portage/package.keywords, etc/portage/package.mask, etc/portage/package.unmask. Менеджер пакетов emerge 2.2 умеет размаскировывать зависимости.
Рассмотрим размаскировку пакетов, на примере браузера Firefox. Для начала сменим корневой каталог:
linux32 chroot /mnt/calculate-desktop-CLDX-x86-binary
env-update && source /etc/profile
Определим правильное название пакета firefox и узнаем список доступных версий:
eix firefox
* www-client/firefox
Available versions: *3.6.12 3.6.20
Стабильная версия пакета 3.6.20. Размаскируем версию 7.0.1-r1:
Для обновления настроек используем утилиту dispatch-conf вместо etc-update:
Утилита обновит маски и USE-флаги. В обоих случаях нажмите «u» для принятия изменений.
Здесь же вы можете проверить и выписать названия других пакетов, необходимых для сборки. В конце, чтобы проверить все зависимости, выполните:
emerge -p пакет1 пакет2 ..
4.3. Добавление пакетов
Все устанавливаемые пакеты, за исключением зависимостей, прописываются в файле ‘world’. Если вы ставите пакет, он, вместе с зависимыми библиотеками, устанавливается в систему. Если какие-либо библиотеки в последствии пакету уже не понадобятся, команда ’emerge —depclean’ их удалит. Поэтому важно, чтобы все пакеты (без зависимостей), которые вы установили дополнительно, были прописаны в файле ‘world’. Удалить их можно опять же командой ’emerge —unmerge’ с указанием пакета(ов) или вручную, отредактировав файл и выполнив ’emerge —depclean’.
Для построения дерева зависимостей утилиты Calculate используют мета-пакеты, в основе которых лежит app-misc/calculate-meta. Посредством USE-флагов строятся всё дерево зависимостей. Так как в процессе сборки вы могли устанавливать для проверки софт, файл var/lib/portage/world перед запаковкой будет содержать только один этот мета-пакет.
Для того, чтобы добавить свои пакеты в дистрибутив, в портежах есть замечательный инструмент — сеты. При помощи сетов вы сможете подготовить свои тематические подборки программ. Сеты поддерживают вложения, что тоже очень удобно. Вы можете отредактировать свой список пакетов, воспользоваться сетом custom, находящемся в фале /etc/portage/sets/custom@, вписав в него строчку:
Либо создать новый сет с другим именем, например ‘web’, вписав в него пакет, а в файле ‘custom’ указать ссылку на него:
Таким образом, сет может содержать как вложенные сеты, так и пакеты.
Во время обновления системы программы из сета будут установлены, т.к. сет прописан в своем world-файле, находящемся в /var/lib/portage/world_sets.
4.4. Удаление пакетов
Если очистить файл world и выполнить ’emerge —depclean’, мы получим Stage3-образ. Т.е. прожиточный минимум всё же имеется и называется он ‘system’. Обновить его можно командой ’emerge system’, либо используя сет — ’emerge system’. Мета-пакет calculate-meta строит зависимости исходя из выбранного профиля. Используя USE-флаги calculate_nowireless, calculate_nonetwork, calculate_noxfce и т.п., можно исключить часть зависимостей. Полный список флагов можно посмотреть в файле /var/lib/layman/calculate/profiles/desc/calculate.desc. Для примера, давайте отключим поддержку беспроводных устройств. Для этого отредактируете файл /etc/portage/make.conf, вписав в него:
5. Сохраним изменения
Мы добавили браузер firefox, удалили поддержку беспроводных устройств, давайте теперь обновим образ:
Пакет firefox будет установлен, а лишние зависимости удалены:
5. Создадим новый образ
Для создания образа используйте утилиту cl-image:
cl-image —live iso
Опция «—live» позволит выиграть несколько секунд при загрузке с LiveCD или USB-Flash. Используйте эту опцию, если вы используете свежий Stage-образ Calculate Linux.
6. Завершение сборки
В случае необходимости, либо по завершению установки можно прервать сборку выполнив:
7. Итог
Для эксперимента я выбрал дистрибутив Calculate Linux Desktop XFCE и воспользовался бинарным профилем CLDX. Все дальнейшие обновления системы я буду выполнять с учётом своих USE-флагов, командой ’emerge -uDNa world’. В случае, если флаги будут полностью совпадать, пакет будет установлен из бинарного репозитория, если будут различия — пакет соберется на моей машине.
Я получил образ с необходимым мне набором программного обеспечения. Не все из описанных возможностей я задействовал. Например в дистрибутиве можно подготовить шаблоны настройки рабочего стола пользователя (см. habrahabr.ru/blogs/linux/129658).
В следующей статье, если будет достаточный интерес, я опишу как можно получить тот же результат более наглядно и без использования жесткого диска 😉
Источник