ククログ

株式会社クリアコード > ククログ > Ubuntuでdebパッケージのテストをするには

Ubuntuでdebパッケージのテストをするには

はじめに

以前、パッケージをクリーンルームでビルドする方法としてCowbuilderを使うやりかたについて記事を書きました。

今回は、ビルドしたパッケージのインストールやアップグレードが正しく行えるかのチェックを支援してくれるツールである、 piupartsの紹介をします。

なお、前回の記事ではUbuntuを普段常用していて、unstable(sid)向けにdebパッケージをビルドした、というのを前提にしています。 今回の紹介内容もそれを前提にしているので、未読の方は前回の記事を参照してください。

piupartsとは

debパッケージのインストール、アンインストール、アップグレードのチェックを行うために開発されたソフトウェアです。 実際に、様々なリリース向けに数多くのパッケージをシステマチックにチェックするのに使われています。 チェック結果のレポートはpiuparts.debian.orgで参照できます。

日本語による説明資料としては、第63回東京エリアDebian勉強会の資料が詳しいので参考になります。1

piupartsをインストールしよう

piupartsはもちろんUbuntuでも使えます。apt-getを使ってインストールできます。

sudo apt-get install piuparts

ただし、Ubuntu 14.04 LTSでインストールできるpiupartsは0.56とバージョンが古いので、Ubuntu 15.04 (Vivid Vervet)から0.60のパッケージをもらってきてインストールして使ったほうがいいかも知れません。2

既存のベースイメージを利用してpiupartsを実行しよう

前回の記事では、Ubuntu 14.04 LTSでDebian unstable(sid)向けのパッケージをビルドすると、/var/cache/pbuilder/unstable-amd64/result以下にdebが保存されるようにしていました。

また、Debian unstable(sid)のベースイメージを /var/cache/pbuilder/unstable-amd64-base.cow に保存していました。

piupartsには様々なオプションがあるのですが、必須といえるオプションは次の通りです。

  • -dで対象となるリリースを指定します。
  • -tで作業ディレクトリを指定します。tmpfsを指定すると速いのでおすすめです。
  • -mでミラーサイトを指定します。Ubuntu上でunstable(sid)のテストをするのでdebianのミラーを参照しないといけません。
  • -eで既存のcowbuilderのベースイメージを指定します。これがないとベースイメージをつくるところから始めるので時間がかかります。
  • -lでログファイルを指定します。

上記をまとめて実行するときの指定は次の通りです。

sudo piuparts -d sid -t /tmp/newtmp -m "http://ftp.jp.debian.org/debian main" -e /var/cache/pbuilder/unstable-amd64-base.cow -l piuparts.log /var/cache/pbuilder/unstable-amd64/result/groonga-normalizer-mysql_1.0.6-1_amd64.deb

あとは、テストが終了するまでしばらく待ちましょう。

0m40.6s DEBUG: Removed directory tree at /tmp/newtmp/tmpuVJGah
0m40.6s INFO: PASS: All tests.
0m40.6s INFO: piuparts run ends.

問題ない場合には、上記のように最後にPASS: All tests.と表示されます。 失敗した場合には、ログファイルを精査して問題がどこにあるのかを特定して修正しておきましょう。3

まとめ

今回はdebパッケージのインストールやアップグレードのチェックを支援してくれるpiupartsの使い方を紹介しました。 まだ使ったことがないのであれば、パッケージの品質を向上させるために導入してみてはいかがでしょうか。4

  1. 2010年の資料ですが、依然として有益な情報源です。

  2. 0.56だとエラーになるけど、0.60では問題なかったケースがあった。

  3. 成功した場合には問題ないけど、piupartsのエラーログを読むのはややつらいかも知れない。

  4. といってもGroongaのITPをしていたときはまだpiupartsの存在を知らなかったのであんまりえらそうな事は言えない。