PPA & Packaging: наличие версий пакетов для нескольких дистрибутивов

36

(цитата из чата)

У меня есть PPA на панели запуска для исходных пакетов для проекта бота IRC, с которым я связан (поскольку он представляет собой промежуточную упаковку для вещей между выпусками, он классифицируется как «экспериментальный» PPA). Вопрос: я уже упаковал материал для ясной сборки. Любая подсказка, как я смогу создать такую ​​же упаковку, кроме как упаковать ее для maverick, и поставить ее на тот же PPA, на который я положил упаковку lucid?

Томас Уорд
источник

Ответы:

42

Вероятно, самый простой способ - просто скопировать двоичные файлы на Launchpad:

  1. Перейдите к вашему PPA и нажмите «Просмотреть детали пакета»:

    введите описание изображения здесь

  2. Нажмите «Копировать пакеты»:

    введите описание изображения здесь

  3. Выберите пакеты Lucid:

    введите описание изображения здесь

  4. Выберите «Maverick» для серии и выберите «скопировать существующие двоичные файлы»:

    введите описание изображения здесь

  5. Нажмите «Копировать пакеты» и все!

Натан Осман
источник
Спасибо большое. Ваши инструкции были на месте . Большое спасибо за быстрый ответ тоже.
Томас Уорд
@ Evil: нет проблем. Рад, что смог помочь!
Натан Осман
4
ПРИМЕЧАНИЕ ДЛЯ ДРУГИХ ВОПРОСОВ, КОТОРЫЕ ССЫЛКА ЗДЕСЬ Копирование существующих двоичных файлов НЕ ВСЕГДА РАБОТАЕТ для программ, предназначенных для других версий ubuntu! См. Мой PPA rkhunter и журналы изменений для версии Lucid, чтобы понять, что я имею в виду: launchpad.net/~trekcaptainusa-tw/+archive/rkhunter/+packages
Томас Уорд
@ThomasWard: Хорошая мысль - это не всегда работает.
Натан Осман
2
@KhurshidAlam Извините за супер супер поздний ответ. Это не удастся с «Invalid Changelog», и как таковой, вы должны специально пометить каждого отдельно при использовании PPA с другой версией. [ launchpad.net/~nginx/+archive/stable ] ( launchpad.net/~nginx/+archive/stable ) является хорошим примером этого, потому что для его сборки мне нужно добавить дистрибутив в версию, чтобы он собирался правильно со всеми различными библиотеками. (Сейчас я поддерживаю ppas команды nginx, поэтому я использую это в качестве примера.)
Томас Уорд
11

Если копирование двоичных файлов для создаваемого пакета не работает, вам необходимо загрузить исходный пакет для каждой версии дистрибутива, отредактировав debian/changelogфайл.

Как перепаковать для другой версии дистрибутива

  1. Отредактируйте debian/changelogфайл в директории вашего исходного пакета
  2. Изменение как в версию и целевое распределение для отражения которых дистрибутива вы строите для

    Например:nginx (1:1.4.1-0ubuntu1~preciseppa1) precise; urgency=low
  3. Пересоберите пакет с исходным кодом: debuild -S
  4. Загрузить .changesфайл на свой PPA:dput ppa:teward/nginx-stable-testing ../nginx_1.4.1-0ubuntu1~preciseppa1_source.changes

Если сборка прошла успешно, поздравляем, вы только что собрали пакет для этого дистрибутива! Если нет, вам придется проверить журнал сборки на Launchpad и решить любые найденные проблемы.

Ссылки:

TrinitronX
источник
Это то, что я делаю! : D MOTU (хранилище богов вселенной) объяснили это, когда мне нужно было сделать разные сборки для nginxдругих программ в PPA, и они помогли решить многие мои проблемы. Спасибо за публикацию этого! :)
Томас Уорд
Да, я подумал, что это будет полезной информацией для документирования и предоставления доступа новым упаковщикам, поскольку может быть крутая кривая изучения использования всех инструментов упаковки Debian, загрузки PPA, соглашений и отладочных сборок.
TrinitronX
Верно. Я не изменяю принятый ответ, потому что во время этого вопроса не было необходимости беспокоиться о разных библиотеках, доступных в различных версиях Ubuntu. С nginxили rkhunterили с другими пакетами, которые я часто бэкпортирую, возникает проблема с большими зависимостями (отличается depends:в контрольном файле и т. Д.), Поэтому я всегда использую programversion-1~RELEASE0где ~ RELEASE0 всегда какое-то число с данным выпуском, в котором он находится. Обычно, когда я бэкпортирую из От Debian до Ubuntu это так :)
Томас Уорд
Да, зависимости, безусловно, являются болевым пунктом для бэкпортинга ;-) Я согласен, принятого ответа должно быть достаточно в большинстве случаев, и для пользователей репозиториев с управлением исходным кодом на базаре использование рецепта bzr-builder от Launchpad также выглядит привлекательно. Тем не менее, когда дело доходит до пакетов с множеством зависимостей, иногда вам приходится создавать собственный пакет для вашего целевого дистрибутива.
TrinitronX
И я делаю бэкпорт nginxиз Debian Unstable в Precise, Quantal, Raring и Saucy (и Trusty в PPA, но я также уверен, что Trusty, до замораживания Debian, объединит последние версии Debian: P) для команды NGINX, но, увы, иногда есть ошибки, которые я не могу исправить, и с Debian приходится иметь дело ... вот почему у меня хорошие отношения с сопровождающими Debian :)
Томас Уорд