Як створити та адмініструвати PPA з багатьма архітектурами?


13

У мене є програма, яку потрібно перекомпілювати для кожної версії ubuntu.

В даний час я пакую його, використовуючи PPA Ubuntu лише для поточного розповсюдження.

Врешті-решт, я маю надати пакети для попередньої версії ubuntu.

Я не впевнений, як це досягти.

Як працює сервер збірки Ubuntu PPA - чи просто він розглядає поле дистрибутива в найсучаснішому записі журналу змін (у файлі debian / changelog), щоб визначити, для якого дистрибутива має бути побудований пакет?

Специфікація debian дозволяє додати декілька дистрибутивів у поле розподілу. Але це не допомагає мені.

Деякі документи ubuntu говорять про кодування імені розповсюдження в номер версії (у файлі журналу змін debian).

Але як це працює на практиці? Доступна нова версія програми, що тоді? Чи додати я для кожного дистрибутива новий запис змін, і PPA buildserver автоматично будує для кожного дистрибутива нові пакети після dput'ing його? Або PPA buildserver просто дивиться на перший запис змін?


1
Мені дуже цікавий і цей процес!
Марко Цеппі

Відповіді:


7

Шлях - це завантаження одного разу для кожної версії Ubuntu .

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

Пам’ятайте про те, що пакети, від яких залежить ваша програма, можуть бути недоступні в одній версії для всіх версій Ubuntu.

Ви також говорите про "мульти-архітектуру" (архітектура = тип CUP, наприклад. X86, LPIA, AMD64). Це не має ніякої різниці, оскільки кожен завантажений пакет складається для всіх доступних архітектур, якщо у вас є файл Architecture: anyвизначення пакета ( debian/control), це також дозволяє зробити пакет залежним від різних пакетів для різних архітектур (визначати пакет не один раз)


10

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


1
Це звучить цікаво. Я не можу безпосередньо використовувати це, оскільки я не використовую ні bzr, ні панель запуску для хостингу сховищ (я використовую Mercurial). Але! Можливо, можливо створити сховище bzr на панелі запуску та скинути в нього останні набори змін із мого основного сховища кожного разу, коли я хочу запустити нову збірку пакунків.
maxschlepzig

Я не кодую нічого, що часто, і я схвильований за це.
аперсон

@maxschlepzig Задайте окреме запитання про те, як імпортувати свої матеріали з Hg на 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, наприклад, коли у вас є різні залежності.


Скотт - чи є якась документація на це?
Bartosz Radaczyński

Мабуть, і речі, імовірно, позначені десь неясними. Решта - це лише умовності, яких я дотримувався серед інших розробників, а не офіційна документально підтверджена практика.
Скотт Річі

Добре, дякую, запропонована угода про іменування працює добре.
Bartosz Radaczyński

Я повинен додати, що іноді це додатково розширюється, щоб поставити додатковий ~ перед ppa: 1.0-0ubuntu1 ~ karmic1 ~ ppa1. Причиною цього є те, що офіційне стабільне оновлення випуску до Karmic може бути випущене як 1.0-0ubuntu1 ~ karmic1, і ми хочу, щоб версія PPA була меншою за це.
Скотт Річі

Довелося запитати у #launchpad на Freenode, і, мабуть, це напівдокументовано на LaunchPad Wiki в розділі Створення вихідного пакету . Дякую за інформацію про цю конвенцію, це дуже корисно ^ _ ^
TrinitronX
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.