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

13

У меня есть программа, которую нужно перекомпилировать для каждой версии Ubuntu.

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

В конце концов, я должен предоставить пакеты для предыдущей версии Ubuntu.

Я не уверен, как это сделать.

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

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

В некоторых документах Ubuntu говорится о кодировании имени дистрибутива в номер версии (в файле журнала изменений debian).

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

maxschlepzig
источник
1
Я действительно заинтересован в этом процессе также!
Марко Чеппи

Ответы:

7

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

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

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

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

LassePoulsen
источник
10

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

Исайя
источник
1
Это звучит интересно. Я не могу использовать это напрямую, так как я не использую bzr и панель запуска для хостинга репозитория (я использую Mercurial). Но! Возможно, возможно создать репозиторий bzr на панели запуска и выгружать туда последние наборы изменений из моего основного репозитория каждый раз, когда я хочу запустить сборку нового пакета.
maxschlepzig
Я ничего не кодирую все так часто, и я рад этому.
2010 г.
@maxschlepzig Задайте отдельный вопрос о том, как импортировать ваши ртутные вещи в Launchpad, и я отвечу на него.
Хорхе Кастро
6

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

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

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

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

Скотт Ричи
источник
Скотт - есть какая-то документация по этому поводу?
Бартош Радачиньски
~ И прочее, вероятно, помечено где-то неясным. Остальные - просто соглашения, которые я наблюдал среди других разработчиков, а не официальная документально подтвержденная практика.
Скотт Ричи
Хорошо, спасибо, ваше предложенное соглашение об именах работает хорошо.
Бартош Радачиньски
Я должен добавить, что иногда это дополнительно расширяется, чтобы добавить дополнительный ~ перед ppa: 1.0-0ubuntu1 ~ karmic1 ~ ppa1. Причина этого в том, что официальное стабильное обновление для Karmic может быть выпущено как 1.0-0ubuntu1 ~ karmic1, и мы хочу, чтобы версия PPA была меньше этой.
Скотт Ричи
Пришлось спросить в #launchpad на Freenode, и, очевидно, это частично документировано в LaunchPad Wiki в разделе Создание пакета с исходным кодом . Спасибо за информацию об этом соглашении, это очень полезно ^ _ ^
TrinitronX