KDE всегда было крепким орешком для разработчиков Gentoo. В начале 2005 года структура KDE была разбита на несколько сотен пакетов: от kwin до kolourpaint’а. С одной стороны это облегчало минорные обновления (когда из-за уязвимости в konqueror не надо было полностью перекомпилировать kdebase), а также давало возможность устанавливать только необходимые компоненты, с другой — управляться с несколькими сотнями пакетов сложновато и пользователям, и разработчикам.
В любом случае, схема «разделённые ебилды» была введна во времена 3.4.x, и к настоящему времени полностью заменила «монолитные ебилды». Для KDE 4.0 и KDE 4.1 монолитных ебилдов нет и не будет, как и даже для KDE 3.5.10. В прочем, к выходу KDE 4.2 разделённых ебилдов уже тоже не останется.
Стоп, как это не останется?
Ну ладно, я пошутил. Ебилды по-прежнему будут разделены, но вместо установки мета-пакетов (kde-meta, kdegames-meta и т.д.) предлагается использовать новую возможность Portage 2.2 — наборы (коллекции? множества? sets, в общем). Скажем, чтобы установить KDE полностью, надо будет запускать emerge @kde вместо emerge kde-meta (в 4.1.x будут поддерживаться обе схемы, в 4.2 мета-пакетов не будет).
Какие это даёт преимущества? Например, если вы ставили kde-meta, то при удалении любого KDE-пакета при следующем обновлении он снова вытягивался в зависимостях. «Обрезать лишнее» возможности не было, чтобы избавиться от лишних компонент приходилось ставить нужные пакеты по одному.
Наборы призваны решить эту проблему. Вообще-то не все планируемые возможности войдут в первый стабильный релиз Portage 2.2, но в будущих версиях Portage можно будет удалять пакеты из набора, и они не будут упорно светиться в зависимостях (восстановить полный набор тоже будет возможно).
Рекомендуемым способом получить минимальную KDE-инсталляцию будет установить набор @kdebase. А вообще наборы будут предоставлены для всех основых тарболлов KDE (то, что раньше было сначала монолитными пакетами, а затем — мета-пакетами): @kdeaccessibility, @kdeadmin, @kdeartwork, @kdebase, @kdeedu, @kdegames, @kdegraphics, @kdemultimedia, @kdenetwork, @kdepim, @kdesdk, @kdetoys и @kdeutils. Будут также наборы @kde-3.5 и @kde-4x, чтобы не промахнуться с версией; отдельный набор зависимостей @kdedeps и опциональных пакетов @kdeoptional. Qt будет @qt-split.
Пользователи также смогут определять свои наборы и даже совершать операции над наборами! Среди предопределённых наборов будут @system, @world и @installed. К примеру, чтобы обновить system, а затем world, можно будет запустить
emerge @system && emerge @world-@system
Чтобы обновить только установленные пакеты из наборов @kde и @gnome
emerge @kde+@gnome/@installed
Ещё раз напомню: в Portage 2.2 может войти далеко не всё из выше перечисленного. Но базовые возможности по установке наборов там будут.
Тем временем команда разработчиков Exherbo решила проявить другой подход к разделению пакетов: parts (доли, части). Дольки (будем пока что их называть так) — это примерно те же USE-флаги, но с дополнительным набором правил (например, долька A не может быть включена, если также не влючена долька B). Таким образом для каждого монолитного пакета можно указать, какие именно дольки-приложения вы хотите установить. При этом каждый монолитный пакет будет соответствовать одному KDE-тарболлу, что, кстати, положительно скажется на время установки.
Здесь мы снова возвращаемся к нашему примеру с Konqueror, когда из-за небольшого изменения нам приходится обновлять весь монолитный пакет. Так что решение разработчиков Exherbo страдает от многих недостатков монолитных ебилдов. В прочем, разработчики не исключают некоторого разделения пакетов в будущем, но в то же время уверены, что такого полного разделения, как в Gentoo, делать не стоит. Учитывая текущее состояние Exherbo, ожидать можно чего угодно.
Кстати, я сегодня выложил статью о некоторых грядущих нововведениях в Gentoo, рекомендую к ознакомлению.
Добавка: Судя по комментариям у народа есть некоторые непонимание данных изменений. Что ж, давайте попростому. Вы привыкли писать emerge kde-meta? Привыкните и к emerge @kde. Больше от вас ничего и не требуется :) Ничего сложного в этом нет. Всякими продвинутыми изощрениями с операциями над наборами заниматься необязательно (другое дело — если вы с ними разберётесь, то инструмент будет весьма удобный).
Есть ещё такой момент. Допустим, вам нужно удалить KDE 3.5. Как это сделать? С нынешней системой —
emerge -C kde-meta:3.5
emerge --depclean
…и молиться. Потому что реализация –depclean в портежах оставляет желать лучшего. А в Portage 2.2 вы сможете сделать
emerge -C @kde-3.5
…и не волноваться по поводу сломанного –depclean
Добавка. Вот тут ещё про наборы
И ещё одна добавка В данный момент в официальное дерево портежей добавляются ебилды KDE 4.1.2. Пакеты пока что замаскированы, и поддержки наборов пока что не видно.
-
LXj
-
Pavel
-
LXj
-
klopik
-
bobrik
-
LXj
-
Eugene Janusov
-
LXj
-
Андрей
-
Kol4ak
-
tinman321
-
tinman321
-
LXj
-
tinman321
-
LXj
-
proton
-
LXj
-
LXj
-
Kol4ak
-
proton
-
Алексей
-
LXj
-
Kol4ak
-
proton


