У меня есть программа, которую нужно перекомпилировать для каждой версии Ubuntu.
В настоящее время я упаковываю его, используя PPA Ubuntu только для текущего дистрибутива.
В конце концов, я должен предоставить пакеты для предыдущей версии Ubuntu.
Я не уверен, как это сделать.
Как работает сервер сборки Ubuntu PPA - он просто смотрит на поле дистрибутива в самой последней записи журнала изменений (в файле debian / changelog), чтобы определить, для какого дистрибутива должен быть собран пакет?
Спецификация debian позволяет добавлять несколько дистрибутивов в поле дистрибутива. Но это не шов, чтобы помочь мне.
В некоторых документах Ubuntu говорится о кодировании имени дистрибутива в номер версии (в файле журнала изменений debian).
Но как это работает на практике? Доступна новая версия программы, тогда что? Я добавляю для каждого дистрибутива новую запись в журнале изменений, и сервер сборки PPA автоматически собирает для каждого дистрибутива новые пакеты после того, как dput'ы его запустили? Или сервер сборки PPA просто просматривает первую запись в журнале изменений?
Ответы:
Для этого нужно загрузить один раз для каждой версии Ubuntu .
Панель запуска не будет собирать пакеты для версий Ubuntu, которые больше не поддерживаются, а будет собирать пакеты только для одной конкретной версии Ubuntu. Целевая версия (как вы уже знаете) указана в
changelog
файле самой новой записью!Помните, что пакеты, от которых зависит ваша программа, могут быть недоступны в одной и той же версии во всех версиях Ubuntu.
Вы также говорите о «мультиархитектуре» (архитектура = тип CUP, например, x86, LPIA, AMD64), это не имеет значения, так как каждый загруженный пакет собирается для всех доступных архитектур, если у вас есть
Architecture: any
файл определения пакета (debian/control
), это также позволяет вам сделать пакет зависимым от разных пакетов для разных архитектур (определять пакет более одного раза)источник
Launchpad имеет новую функцию, которая в настоящее время находится в бета-версии, которая позволяет создавать пакет для нескольких версий Ubuntu одновременно без дополнительной работы. Вы даже можете автоматически создавать свои пакеты каждый день. https://help.launchpad.net/Packaging/SourceBuilds/GettingStarted
источник
Что касается соглашений об именах, стандарт заключается в следующем:
Причина в том, что ~ в поле версии представляет «меньше, чем ничего» для номера версии. Поэтому, если кто-то добавит ваш PPA в Karmic, он получит пакет ~ karmicppa1. Когда они обновятся до Lucid (и прочитали ваш PPA), он будет заменен пакетом Lucid PPA. Если ваша посылка попадет в официальный архив, переход от вашего PPA пройдет гладко.
Другое преимущество заключается в том, что размещение релиза в поле версии позволяет понять, к какому выпуску применяются файлы (и слегка напоминает вам о необходимости загрузки по одному на релиз). Вам также могут понадобиться разные ветки для каждого выпуска Ubuntu, например, когда у вас разные зависимости.
источник