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

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

ubuntu-dpkg-buildpackage --distro=Lucid и иметь Будет сгенерирован ясный deb?

В качестве краткого примечания, он предназначен для внутренних пакетов и, следовательно, не может быть передан на Launchpad или туда.

6
задан 14 February 2012 в 04:52

1 ответ

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

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

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

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

Процесс установки включал бы создание нового schroot для каждой версии 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
[ 1129] Итак, как только ваши chroot настроены, процесс сборки будет:

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

Для получения дополнительной информации справочные страницы для mk-sbuild, schroot, sbuild, debootstrap и debuild являются довольно полными. https://wiki.ubuntu.com/DebootstrapChroot содержит полезную информацию о сборке и настройке chroot. Кроме того, на irc.freenode.net есть # ubuntu-devel, если вам нужна рука.

0
ответ дан 14 February 2012 в 04:52

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

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