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