- コンパクトで軽量な日本語ディストリビューション -
vbuilder は公開してからかれこれ 1 年になりました。
vbuilder は RPM パッケージングツールとして、
もはや欠かせないツールの 1 つとなりつつあります。
これまで vbuilder をご利用下さった開発者の皆様から
たくさんのフィードバックを得ました。
vbuilder への要望やコメントがあるごとに、
どんどん機能を追加したり、修正、改良をしているうちに、
vbuilder は公開当初から比べると、ずいぶんと多機能になりました。
これまで vbuilder を使ったことのない方でも、
vbuilder を使いこなして頂けるように、
基本的な使い方をまとめたいと思います。
vbuilder は、(chroot という)子環境に Vine Linux の最小環境から構築し、 RPM パッケージの依存関係などの解決をしてからパッケージのビルドするツールです。
vbuilder に関する詳細は、以下の URL に記載されています。
http://trac.vinelinux.org/wiki/VineBootstrap
vbuilder は vbootstrap パッケージに格納されています。
$ sudo apt -get install vbootstrap
基本的な流れは以下の通りです。
$ sudo vbuilder clean (過去に構築した子環境を削除) $ sudo vbuilder build (子環境に最小環境を構築) $ sudo vbuilder build-rpm hoge-1.0-1vl5.src.rpm
vbuilder にこれらのアクションを一度に渡すこともできます。 以下のようにすれば、順次 clean → build → build-rpm のように実行します。
$ sudo vbuilder clean build build-rpm hoge-1.0-1vl5.src.rpmこの場合、build を省略できます。
$ sudo vbuilder clean build-rpm hoge-1.0-1vl5.src.rpm
子環境で生成された hoge-1.0-1vl5.{i386,src}.rpm は、 vbuilder を実行したユーザの $HOME/rpm/vbuilder 以下の場所に、 hoge-1.0-1vl5.src.rpm と同じ所有者、同じグループとしてコピーされます。
/home/foo/rpm/vbuilder/5.1/ /home/foo/rpm/vbuilder/5.1/RPMS /home/foo/rpm/vbuilder/5.1/RPMS/i386/hoge-1.0-1vl5.i386.rpm /home/foo/rpm/vbuilder/5.1/RPMS/ppc /home/foo/rpm/vbuilder/5.1/RPMS/noarch /home/foo/rpm/vbuilder/5.1/RPMS/x86_64 /home/foo/rpm/vbuilder/5.1/SRPMS/hoge-1.0-1vl5.src.rpm
なお、$ sudo vbuilder --version 5.1 clean build を実行すると、 約 600MB 程度の容量を消費します。 vbuilder を実行する際には、ハードディスクの容量にご注意下さい。
vbuilder にはたくさんのオプションとアクションがあります。 入力する手間を軽減するために、シェル補完を利用します。
${HOME}/.bashrc などに、以下の行を追加します。
. /etc/bash_completion.d/vbuilder
zsh-completion-vine パッケージをインストールします。
いくつもの RPM パッケージを vbuilder に投げてビルドするときに、 $ sudo vbuilder build により毎回ベース環境を構築するのが面倒になります。 unionfs と利用することで、一度構築した最小のベース環境に変更を加えずに、 その上に変更のみを被せることができます。
まず、最小のベース環境を構築します。
$ sudo vbuilder clean build
以後、unionfs でベース環境をカバーし、hoge-1.0-1vl5.src.rpm のビルドを行います。
$ sudo vbuilder --unionfs build-rpm hoge-1.0-1vl5.src.rpm
--unionfs を保ったまま clean を実行すると、最小のベース環境は消えません。
$ sudo vbuilder --unionfs clean
引き続き、foo-1.0-1vl5.src.rpm をすぐさまビルドできます。 $ sudo vbuilder --unionfs build-rpm foo-1.0-1vl5.src.rpm
--show-info オプションは、 ターゲットにしている vbuilder で構築した環境に対して、 実行した詳細な手順、設定を出力します。
$ sudo vbuilder --show-info
======================================================================
VBUILDER REPORT
DATE: Thu Aug 12 16:30:42 JST 2010
HOSTNAME: seed64.local
OS: Vine Linux 6.0 (+VineSeed) (Haut Brion)
%_arch: x86_64
--version: VineSeed
--arch: x86_64
--category: main,plus,nonfree
--bootstrap-dir: /dev/shm/vbootstrap
--cache-dir: /var/local/vbootstrap/cache
--built-rpms-dir: /home/munepi/rpm/vbuilder
======================================================================
[/etc/vbootstrap/vbuilder.conf]
##
## vbuilder configuration file
##
## This configuration is read at the begin of vbuilder.
## Default version for chroot
## default: DEFAULT_VERSION=VineSeed
DEFAULT_VERSION=VineSeed
## Default categories for chroot
## default: CATEGORIES=main,plus,nonfree
CATEGORIES=main,plus,nonfree
## The top dirctory for vbootstrap
## default: VBOOTSTRAP_DIR=/var/local/vbootstrap
VBOOTSTRAP_DIR=/dev/shm/vbootstrap
## Default directory to cache rpms of /var/cache/apt/archives in chroot
## default: CACHE_DIR=/var/local/vbootstrap/cache
CACHE_DIR=/var/local/vbootstrap/cache
## Default directory to store built rpms
## default: BUILT_RPMS_DIR=${HOME}/rpm/vbuilder
BUILT_RPMS_DIR=${HOME}/rpm/vbuilder
## end of file
[History]
build
build-rpm /home/munepi/rpm/SRPM/hoge-1.0-1vl5.src.rpm
vbuilder のその他のオプションをいくつか紹介します。