Как создать и администрировать мультиархитектуру PPAs?

У меня есть программа, которая должна быть перекомпилирована для каждой версии человечности.

В настоящее время я упаковываю его с помощью PPA Ubuntu только для текущего распределения.

В конечном счете я должен обеспечить пакеты для предыдущей версии человечности.

Я не уверен, как выполнить это.

Как делает работы сервера сборки PPA Ubuntu - это просто смотрит на поле распределения в актуальнейшей записи журнала изменений (в debian/changelog файле) для определения, для какого распределения пакет должен быть сборкой?

debian спецификация позволяет добавлять несколько дистрибутивов в поле распределения. Но это не делает шва для помощи мне.

Некоторые документы человечности говорят о кодировании имени распределения в номер версии (в debian файле журнала изменений).

Но как это работает на практике? Новая версия программы доступна, затем что? Я добавляю для каждого распределения новую запись журнала изменений и PPA buildserver сборки автоматически для каждого распределения новые пакеты после dput'ing это? Или PPA buildserver просто смотрит на первую запись журнала изменений?

13
задан 1 February 2011 в 17:59

3 ответа

Для этого нужно загрузить один раз для каждой версии Ubuntu .

Launchpad не будет собирать пакеты для версий Ubuntu, которые больше не поддерживаются, а будет собирать пакеты только для одной конкретной версии Ubuntu. Целевая версия (как вы уже знаете) указана в файле changelog самой новой записью!

Помните, что пакеты, от которых зависит ваша программа, могут быть недоступны в одной и той же версии во всех версии Ubuntu.

Вы также говорите о «мульти-архитектуре» (архитектура = тип CUP, например, x86, LPIA, AMD64), это не имеет значения, так как каждый загруженный пакет собирается для всех доступных архитектур, если у вас есть Architecture: any в файл определения пакета (debian/control), это также позволяет вам сделать пакет зависимым от разных пакетов для разных архитектур (определять пакет более одного раза)

0
ответ дан 1 February 2011 в 17:59

Что касается соглашений об именах, стандарт заключается в следующем:

  • 1.0-0ubuntu1 для пакета, который попадает в официальный архив Ubuntu
  • 1.0-0ubuntu1 ~ lucidppa1 для версии этого пакета вы положили в свой PPA для lucid
  • 1.0-0ubuntu1 ~ karmicppa1 для версии этого пакета для Karmic

Причина в том, что ~ в версии поле представляет «меньше, чем ничего» для номера версии. Поэтому, если кто-то добавит ваш PPA в Karmic, он получит пакет ~ karmicppa1. Когда они обновятся до Lucid (и прочитают ваш PPA), он будет заменен пакетом Lucid PPA. Если ваша посылка попадет в официальный архив, переход от вашего PPA пройдет без проблем.

Другое преимущество заключается в том, что размещение релиза в поле версии позволяет понять, к какому выпуску применяются файлы (и слегка напоминает вам о необходимости загрузить один релиз в каждом выпуске). Вам также могут понадобиться разные ветки для каждого выпуска Ubuntu, например, когда у вас разные зависимости.

0
ответ дан 1 February 2011 в 17:59

Launchpad имеет новую функцию, которая в настоящее время находится в бета-версии, которая позволяет вам собирать ваш пакет для нескольких версий Ubuntu одновременно без какой-либо дополнительной работы. Вы даже можете автоматически создавать свои пакеты каждый день. https://help.launchpad.net/Packaging/SourceBuilds/GettingStarted alt text

0
ответ дан 1 February 2011 в 17:59

Другие вопросы по тегам:

Похожие вопросы: