web-dev-qa-db-ja.com

さまざまなUbuntuバージョンで展開するための複数のパッケージの構築

Ubuntu Lucidのdebsを構築する必要があります。 VM/chrootなどを設定してビルドごとに配布できることは知っていますが、Oneiricマシンから何かを行うメカニズムがありますlike

ubuntu-dpkg-buildpackage --distro=LucidとLucid debが生成されましたか?

簡単なメモとして、これはinternalパッケージ用であるため、Launchpadなどにファームアウトできません。

6
Paul Nathan

これを行うための単一コマンドのソリューションはありませんが、比較的簡単にするためのツールは間違いなく存在します。

  • debootstrapは、自己完結型のディレクトリに最小限のUbuntuインストールを作成できます
  • schrootを使用すると、複数のchrootを管理し、後で使用するためにそれらをクリーンに保つことができます
  • mk-schrootを使用して、schrootのセットアップと管理を自動化できます
  • ._scファイル(debuild -Sで生成)を指定すると、sbuildは元のchrootにchrootし、依存パッケージをインストールし、ソースをビルドします。

これは基本的に、ランチパッドビルドサーバーがソースパッケージをビルドしてUbuntuアーカイブに配置するために使用するものです。

一般的に、パッケージがビルドマシン上のカスタマイズされたセットアップに依存しないようにするため、初期状態のchrootを使用することをお勧めします。

セットアッププロセスでは、ターゲットにするUbuntuバージョンごとに新しいschrootを作成します。これはかなり簡単です。mk-sbuildを使用して、新しいchrootを作成します。このようなものがあなたが望むものです:

 mk-sbuild --Arch = AMD64 --name = lucid lucid 

これにより、「lucid-AMD64」と呼ばれるchrootを作成し、完了すると次の有用な情報を出力します。

 lucid-AMD64の作成が完了しました。
 
ゴールデンイメージを変更するには:Sudo schroot -c lucid-AMD64-source -u root 
 schroot -c lucid-AMD64 
スナップショット内で構築するには:sbuild -A -d lucid-AMD64 PACKAGE * .dsc 

したがって、chrootがセットアップされると、ビルドプロセスは次のようになります。

  1. ソースpacakgeの最上位ディレクトリdebuild -Sから、<package>_<version>.dscを含むソースパッケージを作成します
  2. ビルドを実行します:sbuild -A -d lucid-AMD64 ../<package>_<version>.dsc

詳細については、mk-sbuildschrootsbuilddebootstrap、およびdebuildのマンページは非常に包括的なものです。 https://wiki.ubuntu.com/DebootstrapChroot には、chrootの構築と構成に関するいくつかの良い情報があります。また、手を必要とする場合は、irc.freenode.netに#ubuntu-develがあります。

6
Jeremy Kerr