Создание нескольких пакетов для развертывания в разных версиях Ubuntu

6

Мне нужно создать debs для Ubuntus Lucid. Я знаю, что могу настроить виртуальные машины / chroots и т. Д., Чтобы создать дистрибутив для каждой сборки, но есть механизм от моей машины Oneiric, чтобы сделать что-то как :

ubuntu-dpkg-buildpackage --distro=Lucid и генерировать Lucid deb?

Как бы то ни было, это относится к внутренним пакетам и, следовательно, не может быть обработано на Launchpad или в любом случае.

    
задан Paul Nathan 14.02.2012 в 01:52
источник

1 ответ

6

Для этого не существует однокомандного решения, но инструменты определенно существуют, чтобы сделать его относительно безболезненным:

  • debootstrap может создать нетронутую минимальную установку Ubuntu в автономном каталоге
  • schroot позволяет управлять несколькими корнями, сохраняя их чистыми для дальнейшего использования.
  • mk-schroot может использоваться для автоматизации настройки и управления школой.
  • Учитывая файл .dsc (сгенерированный с debuild -S ), sbuild будет зацикливаться на вашем первозданном chroot, установить любые зависимые пакеты и создать ваши источники.

Это в основном то, что используют серверы сборки launchpad, чтобы создавать исходные пакеты и помещать их в архив Ubuntu.

В общем, использование первоклассного chroot - это хорошая практика, так как это гарантирует, что пакет не зависит от какой-либо настраиваемой настройки на вашей машине сборки.

Процесс установки будет включать создание нового шлота для каждой версии Ubuntu, на которую вы хотите настроить таргетинг. Это довольно просто: используйте mk-sbuild , чтобы создать себе новый chroot. Что-то вроде этого - то, что вы хотите:

mk-sbuild --arch=amd64 --name=lucid lucid

Это поможет вам создать chroot под названием 'lucid-amd64' и распечатает следующую полезную информацию, когда это будет сделано:

Done building lucid-amd64.

 To CHANGE the golden image: sudo schroot -c lucid-amd64-source -u root
 To ENTER an image snapshot: schroot -c lucid-amd64
 To BUILD within a snapshot: sbuild -A -d lucid-amd64 PACKAGE*.dsc

Итак, как только ваши chroots будут настроены, процесс сборки будет выглядеть следующим образом:

  1. Из исходного каталога верхнего уровня pacakge debuild -S для создания исходного пакета, включая <package>_<version>.dsc
  2. Запустите сборку: sbuild -A -d lucid-amd64 ../<package>_<version>.dsc

Для получения дополнительной информации, manpages для mk-sbuild , schroot , sbuild , debootstrap и debuild достаточно полны. Ссылка содержит некоторую полезную информацию о создании и настройке chroots. Кроме того, есть # ubuntu-devel на irc.freenode.net, если вам нужна рука.

    
ответ дан Jeremy Kerr 14.02.2012 в 02:53
источник