rinseで手軽にRPM系ディストリのchroot環境作成
こんにちは、前回のブログのはてブ数がすごいことになって、恐れおののいている高橋です。
どー考えてもそれを超えるようなネタなんか思いつかないので、いつも通りサラッと流されるようなネタを気楽に書いてみたいと思います。
さて、いろいろと開発を行っていると、
・PHP5.1 + PostgreSQL8.1
・PHP5.2 + PostgreSQL8.3
などのように、プロジェクトによってソフトのバージョンが違うことがあります。
それぞれの開発マシンが個別に用意されているときは問題ありませんが、一台しか開発マシンがない場合はどうされていますか?
XenやVMwareなどの仮想化マシンで構築するのが楽かと思いますが、メモリやCPUパワーが潤沢でないと厳しいですよね。また、大抵の場合、そこまで完全に独立した環境が必要なわけでもありません。
/usr/local/以下に複数のバージョンをインストールし、ポートを変更して起動するのが動作としては一番軽いですが、個人的にはchrootも軽くてオススメです。
Debian系の場合、debootstrapという便利なコマンドがあるため、chrootのベースとなる環境をとても簡単に構築できます。
RedHat系の場合にも、rpmstrapというコマンドがあり、同様に構築できます。ただ、サイトトップに「This project is dead.」と書いてあるように、残念ながらもう更新されていません。
また、自分で設定ファイルを作成するにしても、インストールするパッケージのバージョンまで指定する必要があり、ちょっとでもバージョンが違うと失敗するため、結構面倒です。
そんなわけで、他に何かいーものはないものかと探してみたところ、rpmstrapとdebootstrapにインスパイアされたrinseというソフトがありました。
それでは、早速インストールしてみます。
Debian系の場合、etch用のパッケージがあるので、それを使ってみます。
まずは http://apt.steve.org.uk/security/ に書いてあるようにGPG鍵を追加します。
次に http://apt.steve.org.uk/ に書いてあるように「/etc/apt/sources.list」へリポジトリを追加します。
あとは、普通にインストールします。
これでインストール完了です。
RedHat系の場合、rpmパッケージはなさそうでしたので、tarボールを使います。
まずは必要なパッケージをインストールします。
次にtarボールをダウンロードしてインストールします。
これでインストール完了です。また、きちんとアンインストーラも用意されていて、
とすることでアンインストールできます。
さて、インストールが完了したら、rinseの設定ファイル開いて、近くのミラーサイトに書き換えます。
これで準備が整いましたので、早速使ってみます。ここでは試しにCentOS5の環境を作ってみます。
これで自動的にダウンロードとインストールが行われます。もしx86_64版を作成する場合は、「--arch=amd64」を指定します。
ちなみに、ダウンロードされたパッケージは/var/cache/rinse/以下に保存されるので、不要になったら次のコマンドで削除します。
それでは、早速できたてのCentOS5に入ってみます。今回はとりあえずprocのみマウントしています。
試しにインストールされているパッケージの一覧を見てみます。正しく動作していれば、chroot下にインストールされているパッケージのみがリストされるはずです。
おお、バッチリ動いています。あとは普通にchrootの環境を整備していくだけですね。
皆さんもRPM系ディストリビューションのchrootやXen用ゲスト環境を作成する機会がありましたら、rinseを使ってみては如何でしょうか。
どー考えてもそれを超えるようなネタなんか思いつかないので、いつも通りサラッと流されるようなネタを気楽に書いてみたいと思います。
さて、いろいろと開発を行っていると、
・PHP5.1 + PostgreSQL8.1
・PHP5.2 + PostgreSQL8.3
などのように、プロジェクトによってソフトのバージョンが違うことがあります。
それぞれの開発マシンが個別に用意されているときは問題ありませんが、一台しか開発マシンがない場合はどうされていますか?
XenやVMwareなどの仮想化マシンで構築するのが楽かと思いますが、メモリやCPUパワーが潤沢でないと厳しいですよね。また、大抵の場合、そこまで完全に独立した環境が必要なわけでもありません。
/usr/local/以下に複数のバージョンをインストールし、ポートを変更して起動するのが動作としては一番軽いですが、個人的にはchrootも軽くてオススメです。
Debian系の場合、debootstrapという便利なコマンドがあるため、chrootのベースとなる環境をとても簡単に構築できます。
RedHat系の場合にも、rpmstrapというコマンドがあり、同様に構築できます。ただ、サイトトップに「This project is dead.」と書いてあるように、残念ながらもう更新されていません。
また、自分で設定ファイルを作成するにしても、インストールするパッケージのバージョンまで指定する必要があり、ちょっとでもバージョンが違うと失敗するため、結構面倒です。
そんなわけで、他に何かいーものはないものかと探してみたところ、rpmstrapとdebootstrapにインスパイアされたrinseというソフトがありました。
それでは、早速インストールしてみます。
Debian系の場合、etch用のパッケージがあるので、それを使ってみます。
まずは http://apt.steve.org.uk/security/ に書いてあるようにGPG鍵を追加します。
- #
wget http://apt.steve.org.uk/apt-key.gpg - #
apt-key add apt-key.gpg
次に http://apt.steve.org.uk/ に書いてあるように「/etc/apt/sources.list」へリポジトリを追加します。
- deb
http://apt.steve.org.uk/etch etch main non-free contrib
あとは、普通にインストールします。
- #
apt-get update - #
apt-get install rinse rpm
これでインストール完了です。
RedHat系の場合、rpmパッケージはなさそうでしたので、tarボールを使います。
まずは必要なパッケージをインストールします。
- #
yum install perl-libwww-perl
次にtarボールをダウンロードしてインストールします。
- #
wget http://xen-tools.org/software/rinse/rinse-1.1.tar.gz - #
tar xzf rinse-1.1.tar.gz - #
cd rinse-1.1/ - #
make install
これでインストール完了です。また、きちんとアンインストーラも用意されていて、
- #
make uninstall
とすることでアンインストールできます。
さて、インストールが完了したら、rinseの設定ファイル開いて、近くのミラーサイトに書き換えます。
- #
vi /etc/rinse/rinse.conf
これで準備が整いましたので、早速使ってみます。ここでは試しにCentOS5の環境を作ってみます。
- #
mkdir -p /var/chroot/centos5 - #
rinse --directory=/var/chroot/centos5 --distribution=centos-5
これで自動的にダウンロードとインストールが行われます。もしx86_64版を作成する場合は、「--arch=amd64」を指定します。
ちなみに、ダウンロードされたパッケージは/var/cache/rinse/以下に保存されるので、不要になったら次のコマンドで削除します。
- #
rinse --clean-cache
それでは、早速できたてのCentOS5に入ってみます。今回はとりあえずprocのみマウントしています。
- #
mount -t proc proc /var/chroot/centos5/proc - #
chroot /var/chroot/centos5 /bin/bash
試しにインストールされているパッケージの一覧を見てみます。正しく動作していれば、chroot下にインストールされているパッケージのみがリストされるはずです。
- #
yum list installed
おお、バッチリ動いています。あとは普通にchrootの環境を整備していくだけですね。
皆さんもRPM系ディストリビューションのchrootやXen用ゲスト環境を作成する機会がありましたら、rinseを使ってみては如何でしょうか。
トラックバックURI
最近の記事
JavaScriptのクロスドメイン問題対応方法 [2012年05月17日 : 笹亀弘]
JavaScriptのコーディング規約を気軽にチェック [2012年05月14日 : 中川善樹]
誕生日プレゼント [2012年05月10日 : 阿部恵]
イラストでわかる!git入門の入門 [2012年05月09日 : 志田仁美]
【CSS3】HSL色空間による色指定のすゝめ [2012年05月09日 : 橋本章史]
インスピレーションをかきたてるポスターデザインのまとめ記事のまとめ [2012年04月25日 : 鴨田健次]
エンジニアの英会話 〜とっさの一言〜 [2012年04月19日 : 斉藤勝也]
イコライザーをFireworksで描いてみました [2012年04月16日 : 和田記光]
SFNewTech Japan Night のファイナリストに選出されました!(他、もろもろの出展の御案内) [2012年04月06日 : 小林有佳]
使えるとちょっと便利なSSHのTIPS [2012年04月04日 : 牧野克俊]













最近のコメント