[devel-distro] mkimage-0.2.0 и конфликты между альтернативными поставщиками зависимости
Michael Shigorin
mike at osdn.org.ua
Wed Sep 7 19:05:37 MSK 2011
Здравствуйте.
Маленькая зарисовка на тему "как я стрелял себе в ногу"
(интересным образом сломав mkimage-0.2.0).
Поймано следующее: в списке пакетов для установки в install2
встретились installer-distro-* и branding-*-alterator;
при этом первый через alterator-pkg -> alterator-browser-qt
обуславливает зависимость на alterator-icons, которую второй
предоставляет; но в итоге в .in попадает ещё и пакет
branding-sisyphus-server-light-alterator (ещё один провайдер
alterator-icons), получаем конфликт.
Отловлено было комментированием строчки, запрашивающей
branding-$(BRANDING)-alterator, и попыткой удаления из чрута
branding-sisyphus-server-light-alterator.
"Решилось" костылём -- переносом branding-$(BRANDING)-alterator
из INSTALL2_PACKAGES в соответствующий IMAGE_INIT_LIST.
Хорошо, что gns@ подсказал, что натыкался на важность порядка
перечисления пакетов, когда один требует виртуальную зависимость,
а второй её предоставляет, но "опаздывает":
<gns> gvy: я в пекеджлистах несколько раз натыкался на то что
если написано squid squid-conf-default - вытягивается
squid-conf-host2cat а он тянет апач. и надо писать в
обратном порядке : squid-conf-default squid
<gns> gvy: и с чем-то ещё такое было. gdm-theme-altlinux gdm2.20
<gvy> gns, хмм... в IMAGE_INIT_LIST его засовывать, что ли...
спасибо, проверю
<gns> phonon-vlc minitube
<gns> , иначе минитют вытягивал phono-backend-gstreamer
<gvy> gns, а закинь как-нить в [[Mkimage/debug]]
<gvy> это похоже, т.к. в логе:
<gvy> INSTALL2_PACKAGES =
installer-distro-altlinux-generic-stage2
installer-feature-setup-plymouth
branding-altlinux-centaurus-bootsplash
Дальнейшие раздумья над тем, как не наступил на это раньше,
привели к вот этому моему изменению, принятому в mkimage-0.2.0:
http://git.altlinux.org/people/legion/packages/?p=mkimage.git;a=commitdiff;h=b89fbf2873f60bcbfb41cc0b8fad2761859bc64d;hp=8d47ea1a256adab436a4296c7d3c98174f3f55c8
Поскольку налицо tradeoff:
1) брать множество пакетов одной транзакцией, не имея
возможности поставить заведомо конфликтующие пакеты,
зато получая автовыбор провайдера в её пределах;
2) брать индивидуальными транзакциями, получая оверхед
порядка процента и возможность одновременного выбора
конфликтующих пакетов, но (сюрприз) теряя возможность
автовыбора провайдера с учётом "соседей" по тразакции
и не приобретая возможности собственно поставить эти
конфликтующие пакеты
-- то в раздумьях: для build-image (mki-image-pkgs install)
разумен только первый вариант, реализованный в <= 0.1.9;
для copy-packages (mki-image-pkgs copy) в принципе возможен
выбор, а по умолчанию разумным кажется второй вариант.
Это озадачился реализовать, как только пойму, каким образом
изменение в mki-copy-pkgs отразилось на mki-image-install.
Вопрос: чего ещё я мог не учесть?
--
---- WBR, Michael Shigorin <mike at altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
More information about the devel-distro
mailing list