22.05.2010 Использование PackageSet в Gentoo (Или жизнь после установки Gentoo-Way)

Установили мы Gentoo как уже рассказывал... Установка Генту х86.
Поставили загрузчик, скомпилили ядро, сделали первые телодвижения по руссфикации консоли...
Система загружается, работает, на этапе загрузки не выдает никаких косяков, вобщем радует глаз консолью.
И тут возникает самый главный вопрос, а что собственно дальше?...

Поставить Gnome или KDE, а может лучше временно воткнуть FluxBox и в нем подумать о дальнейшей жизни? (Ведь у всех такое бывало не правда?) А системка чистенькая, а запарывать сразу кучей пакетов не хочется, а что если сразу не скомпилится GNOME и захочется поставить KDE? Вот от такких душевных терзаний автор советует почитать отвлеченную литературу типа /usr/portage/sys-apps/portage/ChangeLog...

[cut]

В portage есть ebuild, meta ebuild. Первые просто ebuild собирают одну программу/библиотеку. А вторые meta ebuild сами не устанавливают в систему ровным счетом ничего. Однако meta ebuild используется в тех случаях когда нужно поставить множество простых ebuild объединенных некой сущностью.

Ну к примеру app-misc/mc поставит программу mc а вот kde-base/kde-meta вытянет и установит все «стандартные» ebuild-ы для KDE. Иными словами meta ebuild это такой хитрый ebuild для сборки множеств/наборов ebuild.

[uncut]
Так вот если внимательно читать документ /usr/portage/sys-apps/portage/ChangeLog то можно заметить много раз повторяющееся выражение package set. Так вот если в нескольких словах то package set это решение для человека раздираемого душевными страданиями из второго абзаца.

Напомню он поставил stage-3 собрал загрузчик и ядро. У него уже все заработало но дальше он сомневается что именно он хочет gnome/kde. В общем сомнений и причин душевных терзаний можно придумать множество. Объединяет их одно – желание каким либо образом иметь возможность откатить систему до того счастливого момента когда стоял stage-3, загрузчик и ядро.

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

# emerge eix; #если еще нет...
# eix-update;
# mkdir /etc/portage/sets/
# eix -Ic --only-names >> /etc/portage/sets/core



После такого шаманства в системе появится файлик /etc/portage/sets/core со списком всех установленных приложений. А вот с точки зрения portage мы создали package set под названием @core.

Команда

# emerge --list-sets



покажет доступные package set`s в системе.

Но stage-3+grub+kernel обычно собирают ради DM/WM. И следущий этап это x11-base/xorg-server и x11-base/xorg-x11. Какой бы DM/WM вы не выбрали xorg все равно нужен. xorg это следущая основная точка бекапа. xorg собирается достаточно долго для того чтобы вы сами придумали как сделать package set для иксов. Важно понять одно USE флаги влияю на зависимости. Изменение USE флагов поменяет зависимости и не забывайте что package set это обычный текстовой файлик, который автоматически никто за вас переделывать не будет.

Ну к примеру второй этап с USE флагами для иксов определились… Тут можно сделать

emerge x11-base/xorg-x11 x11-base/xorg-server -pv >> ~/some-file



И за время пока иксы будут собираться вы успеете в любимом текстовом редакторе привести файл ~/some-file к виду /etc/portage/sets/core

А можно дождаться окончания сборки иксов а потом повторить

eix -Ic --only-names >> /etc/portage/sets/some-file



а затем diff-ом создать /etc/portage/sets/X в который войдет все что было в /etc/portage/sets/some-file за исключением /etc/portage/sets/core
Вот появилась необходимость и man diff почитать ;)

Ладно предположим вы разобрались и с этим. Зачем нужны были package set и как они облегчат жизнь человеку?

# emerge @core #пересоберет все из core
# emerge @X #пересобирет все из xorg


Предположим в один прекрасный день человек решил что xorg вовсе ему не нужен

# emerge @X --unmerge #прощайте иксы...


И у человека осталось stage-3+grub+kernel.

Конечно package set не исключительно единственно правильный способ. package set это удобное добавление к стандартным средствам. И кроме того package set не отменяет необходимости в

# emerge --depclean
# revdep-rebuild


И прочих вещах. Однако при использовании package set чистить систему будет гораздо проще после удаления иксов по команде
 # emerge @X –unmerge.


{TAGS}




Вас также может заинтересовать:

15.06.2010 Использование CommuniGate Pro как почтового сервера периметра для MS Exchange на GNU/Gentoo Linux
Мечта о Linux в автомобиле воплощается в жизнь
Настройка РРТР в GENTOO консольный вариант (PPTP Gentoo-way)
Компания Google выпустила открытую систему установки обновлений программ для Windows
Ошибки PHP после обновления
Использование Google Drive в Linux