[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