読者です 読者をやめる 読者になる 読者になる

vbootstrap and vbuilder

VineBootstrap – VineSeed

trunk in projects/vbootstrap – VineSeed

第1回 定例IRCミーティング に議題にあがっていた vbootstrap。鈴木さんが vbootstrap 0.0.1 を作成されていました。

6 月頃から、ようやく vbootstrap を眺めるようになり、self-build のビルド依存に欠落が無いようにということで、vbootstrap を使い始めています。

vbootstrap を使い始めると、欲が出て Debian の pbuilder のようなツールがほしくなり、そのようなツールが無いから、仕方なくとりあえず vbuilder というのを作ってみました。

vbuilder は特に self-build パッケージを作る上でもはや必須となってしまいました。

$ /usr/sbin/vbuilder
Usage:	vbuilder {--version [version]} {--arch [arch]} {--with-compat32} {--build-rpm [src.rpm]|--install-rpm [arch.rpm]|--remove-rpm [package]|--build|--clean}
	--version:		set [version] (default: VineSeed)
	--arch:			set [arch] (default: i386)
	--with-compat32:	build with compat32 on boostrap
	--build-rpm:		build [src.rpm] on boostrap
	--install-rpm:		install [arch.rpm] on boostrap
	--remove-rpm:		remove [package] on boostrap
	--build:		build boostrap of [version]
	--clean:		clean boostrap of [version]

For example, 
* make plain build environment:
vbuilder --clean --build
* build source RPM:
vbuilder --build-rpm [src.rpm]
* make Vine Linux 4.2 environment:
vbuilder --version 4.2 --clean --build
* i386 chroot on x86_64:
vbuilder --arch i386 --clean --build
* build compat32:
vbuilder --arch i386 --with-compat32 --build-rpm [src.rpm]

簡単な実行例をヘルプで出すようにしていますが、主な使い方は src.rpm を vbuilder へ投げて、ビルドできて、なおかつ、インストールまでできるかをチェックすることです。

基本的な流れは以下の通りです。

$ sudo vbuilder --clean ← 必要であれば、あらかじめ chroot 環境を削除する。
$ sudo vbuilder --build
$ sudo vbuilder --build-rpm hoge.src.rpm

これらは一度に渡すこともできて、以下のようにすれば、順次 --clean → --build → --build-rpm のように実行します。

$ sudo vbuilder --clean --build --build-rpm hoge.src.rpm

当面の TODO は以下のとおりです:

  • vbootstrap に例外処理とかエラー処理を入れる
  • vbuilder のオプションの制御
  • 別途 conf などの設定ファイルを作成
  • chroot 内で build user つくって、そいつに rpmbuild させる

vbootstrap + vbuilder をもっと使いやすくしたいな!