これはDebian/Ubuntu JP Advent Calendar 2013 11日目の記事です。 Debianではパッケージを管理する際に、オリジナルのソースコードの上にdebianというディレクトリを作成し、その下にDebian固有のパッケージングに関する情報を記録してゆくようになっています。 かつてはこのファイルの管理はそう大変なことではありませんでした。しかし現在のDebianはoldstable, stable, testing, unstableという4つ(場合によってはexperimentalを含めた5つ)のdistributionを同時に管理しなければなりません。こうなると、やはりバージョンコントロールシステムが使いたくなるところです。 そのためのパッケージのひとつがgit-buildpackageです。名前の通りSCMにgitを使います。この記事ではその解説を行います。他にもsvnやcvs, bzrに対応したものがありますが、それぞれ設計思想から異なるのでここでは触れません。個人的にはsvn-buildpackageも使ってはいます。 ソースコードのインポート 一番最初に行うのは、すでにあるdeb用ソースコード一式のインポートです。これにはgit-import-dscコマンド(あるいはgit-import-dscs)を使います。 これでパッケージ名(この場合hallo)のディレクトリが作成され、そこがgitリポジトリになります このようにインポートされたdebianバージョンとupstreamのタグが作成されます。内容を更新し、新しいバージョンをリリースする際には同様に新しいdebianバージョンのtagを生成することになります。 変更 適当に変更をしてみます。このあたりは普通のgitリポジトリを扱うのと変わりはありません。 テストビルド 修正をコミットする前にテストビルドをするには、git-buildpackage build –git-ignore-newを実行します。–git-ignore-newオプション以外はdebuildと同じです。 問題がなければ、親ディレクトリにパッケージと各種ファイルが生成されます。これでよいと思ったら普通にgit commitしましょう。 リリース向けビルド リリース用のビルドは–git-tagオプションを付けることでできます 新しく作ったdebian versionのタグができていることが確認できます。 参考 PackagingWithGit (Debian Wiki)