Вы здесь

Решение циклических зависимостей gentoo при установке пакетов через puppet

Доброго времени суток. Подскажите, пожалуйста, как правильно разрешать проблемы с циклическими зависимостями gentoo, если установка пакетов осуществляется через puppet. Привожу пример:
нужно установить mariadb с поддержкой spinx и sphinx c поддержкой mysql

...
  portage::package { 'dev-db/mariadb':
    keywords => ['~amd64'],
    use      => ['profiling', 'sphinx', 'ssl'],
    ensure   => '5.5.31'
  }
  portage::package { 'app-misc/sphinx':
    keywords => ['~amd64'],
    use      => ['mysql'],
    ensure   => latest
  }
...

А в общем-то пока никак. Когда я последний раз смотрел puppet, циклические зависимости приходилось устранять руками. А что говорит портаж при ручной установке?
Может sphinx следует задать требование предварительной установки mariadb?

Не грусти, товарищ! Всё хорошо, beautiful good!

При ручной установке портаж говорит собирать сфинкс без mysql, а mysql без сфинкс. На самом деле вопрос решился очень просто. Нужно сначала поставить virtual/mysql:

  portage::package { 'virtual/mysql':
    keywords => ['~amd64'],
    ensure   => '5.5'
  }

Не совсем просто. поставив виртуал-пакет, ты не всегда соберешь то, что от мускуля зависит. В силу отсутствия оного на диске, точнее, его либ. Даже configure может не пройти. Потому все равно руками придется работать.

ЗЫ. ХОтя работать лучше начинать головой - это эффективнее. Вариант - собрать первый из зависимых без зависимости от второго - сфинкс без мускуля. После чего собрать мускуль и далее - еще раз сфинкс, но уже с мускулем. Руками - но действенно. Такая же ситуация наблюдается при сборке imagemagick/plotutils с флагами на зависимости друг от друга. И наблюдаться такое будет ТОЛЬКО при новой установке пакетов.

Пользуясь моментом, хочу передать привет друзьям, которые также пользуются "Моментом"