Добрый вечер, ЛОРианцы.
Столкнулся со следующей задачей:
«Используя системные средства ( dpkg, apt-get ) и возможность самому собирать deb-пакеты, организовать систему обновлений с автоматической реализацией установки критических обновлений.»
Другими словами:
Если у нас есть 5 обновлений программы, то
1 - стартовая версия
2 - мелкое обновление
3 - критическое обновление ( скажем эта версия произвела конверсию базы данных из db1 в db2 )
4 - мелкое обновление
5 - мелкое обновление
Чтобы обновиться с стартовой версии до 5й версии, нам необходимо обязательно установить 3е обновление.
Остальные же можно пропускать.
Если в dependence deb-пакета поставить самого себя версии 3,
то улетаем в ошибку loop.
Если же указать параметр Replace: mySelf( >= 3.0.0 ), но при попытке накатить версию 5.0 поверх 1.0 всё получится. Но я для простого примера собрал деб который при установке 3го обновления должен был создать файлик( в далёком отдельном каталоге), который у меня так и не появился ( touch этого файла было в postinst скрипте в версии 3.0).
Внимание вопрос: «Как это разрулить?» :)
Хотелось бы решить данный вопрос на уровне deb пакетов.
1 мысль, которая у меня крутиться, это в preinst скрипте версии 4 и версии 5, прописать установку версии 3. Но как-то это не красиво, ИМХО.