SlideShare a Scribd company logo
pbuilder, cowbuilder,
lxcで作るお手軽サンド
        ボックス

第1回福岡Debian勉強会 (2012-07-28)
       やまだつよし
自己紹介
やまだつよし
●twitter: @minimum2scp
●fb: fb.me/minimum2scp
●インフラエンジニア
●Debian,Rubyとかが好き
もっと自己紹介: OS

● Debianユーザー歴: 10年くらい(woodyから)
● 自宅デスクトップPC: Windows7
● 自宅ノートPC: Debian unstable
● 自宅サーバ: Debian unstable
● さくらVPS: Debian unstable
● 会社デスクトップPC: Debian unstableときどき
  Windows
● 会社サーバ: Debian stable, old stable, old old
  stable, ... ときどき Gentoo, FreeBSD, Ubuntu,
  CentOS
もっと自己紹介: Debian歴

● 2002ごろ: はじめてのDebian (woody)
● 2003-2004: stableからtesting, そして unstable
  使いへ
● 2005-: 社会人。会社のサーバにDebian (sarge)
  をたくさん入れはじめる
● 2007-: Debian(etch)+Xenでサーバー仮想化。
  もっともっとたくさんのDebianをインストールする
  ようになる
● 2012: 第0回福岡Debian勉強会、大統一Debian
  勉強会、そして今日!
もっと自己紹介: 最近

最近やったこと(Debianネタ)
● 会社のプロジェクトでperlモジュールを中心に
  パッケージたくさん作った
● ファイルサーバに置いて、必要なときはdpkg -i
  で入れる。面倒だし管理できない
● repreproで会社で作ったパッケージのリポジトリ
  を実験的にたててみた
● できたような気がするけどこれから会社のメン
  バーにどう伝えていこうかなというところ
今日のお題

●   サンドボックス
●   pbuilder
●   cowbuilder
●   lxc

ゆるーく話すので適当にその場でつっこみ入れてく
ださい
サンドボックスがほしい

●   experimentalのApache2.4を試してみたい
●   lsyncdおもしろそう
●   最新のRubyをソースからビルドしてみたい
●   とりあえずインストールしてみたい
●   いろいろ試行錯誤してみたい

そして、なかったことにしたい

ということありますよね…?
サンドボックスがほしい

「なかったことにしたい」ができると
とても気が楽になる

XenやKVMで仮想化するのは大袈裟

そこでpbuilderとcowbuilder

クラウドは今回禁句です
pbuilderとは

● debootstrapで作成される最小のDebian chroot
  環境でパッケージをビルドするための仕組み
● chroot環境は使い捨て
● chrootの支援+クリーンルームでのビルド
パッケージのビルド
%   apt-get source foo
#   apt-get build-dep foo
%   cd foo-x.x
%   ...
%   debuild -rfakeroot -us -uc

Build-Depends: ビルド依存パッケージのインス
トールが必要
pbuilderとは

base.tgz (chrootを固めたtarball) を作成:
# pbuilder --create [options]



base.tgz を展開して chroot してビルド:
# pbuilder --build [options] foo_X.X-X.dsc
あるいは
# pdebuild [options] -- -rfakeroot -uc -us
pbuilderとは

● Debian chroot環境をふだんはtarballに固めて
  保持
● ビルド時にtarballを展開してchrootし、その中に
  Build-Dependsをインストール、そしてパッケー
  ジをビルドする
● ビルド完了するとバイナリパッケージを残してビ
  ルド環境はまるごと削除される
● FTBFSを検出できる
● パッケージ開発者のためのツール?
● いいえ、シェルが使えます!
pbulder --login
base.tgzを展開、chrootした中でシェルを起動
シェルを抜けるとchroot環境は破棄される
# pbuilder --login

シェルを抜けたあとbase.tgzに書き戻すこともでき
る
# pbuilder --login --save-after-login

base.tgzのアップデート
# pbuilder --update
pbuilder: デモ
pbsetup.sh
pbuilder --login後に、いつもの使いなれた道具を
そろえる
● 一般ユーザー作成
● ロケール生成
● zsh, vim
● etckeeper, git
● その他いろいろ
をセットアップするシェルスクリプトを生成するシェ
ルスクリプト
pbsetup.sh デモ
pbuilderからcowbuilderへ

これだけでも十分便利だけれど、
tarballの展開や、tarballの書き戻しをCOW(Copy
On Write)で置き換えて
高速化するcowbuilderというものもある
むしろ普段はcowbuilderを常用している
cowbuilder
baseを作成:
# cowbuilder --create [options]

ビルド:
# cowbuilder --build [options] foo_X.X-X.dsc
あるいは
# pdebuild --pbuilder cowbuilder -- -
rfakeroot -uc -us
cowbuilder
しくみ:
● 初回はdebootstrapでbaseを作成
● ビルドするときはbaseをbase.NNNNNにcp -al
  (ハードリンク)
● base.NNNNNにchroot
● LD_PRELOADにlibcowdancer.soが指定され
  たプロセスがビルドする
● libcowdancer.soがファイルのWriteを検知して
  新しいファイルにすりかえる
● ビルドがおわったらbase.NNNNNを破棄
cowbuilder
もちろんビルドだけじゃなくシェルも使える:
# cowbuilder --login [options]


破棄せずにbaseを書き戻す:
# cowbuilder --login --save-after-login
[options]

baseを更新する
# cowbuilder --update
cowbuilder デモ
pbuilder, cowbuilder -> lxc
● pbuilder: tarballなので使わないときのサイズは
  小さい
● cowbuilder: 起動が早いのでpbuilderよりもっと
  気楽に使える
● どちらも結局chroot。それ以上のことはできない
  (カーネル、ネットワーク、リソース制御...)

そこでlxc
lxc
●   Linuxコンテナ
●   仮想化方式のひとつ
●   chroot + α
●   ネットワークやプロセスが分離できる
●   カーネルは共有
lxcで実験できるようにする

cowbuilder で使っている base を
コピーしてきてlxcのrootfsにする

● /etc 以下はごにょごにょと変更する
● /dev 以下をちょっとmknodする

あとはlxcのconfigを書く
lxcsetup.sh デモ
まとめ

● pbuilderはパッケージをクリーンルームでビルド
  してFTBFSを検出するツール
● シェルを起動してやると気軽に実験できるサンド
  ボックスのようにも使える
● cowbuilderを使ってもっと気軽に実験
● cowbuilderのbasepathからlxcのrootfsを作って
  lxcで実験するなんてことも

More Related Content

PDF
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
PDF
Ec2でのdisk拡張方法
ODP
Custom Package Building with Poudriere
PDF
Azure de debian
PPTX
FreeBSDのススメ
PDF
AllwinnerタブレットのOSを作ってみる (途中版)
PDF
FreeBSD の小ネタ
PDF
FreeBSD を VirtualBox にインストールしてみた
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
Ec2でのdisk拡張方法
Custom Package Building with Poudriere
Azure de debian
FreeBSDのススメ
AllwinnerタブレットのOSを作ってみる (途中版)
FreeBSD の小ネタ
FreeBSD を VirtualBox にインストールしてみた

What's hot (20)

PDF
NetBSD, On the ROAD 2016
PDF
DebianとWordPressでハッピーになろう!
PPT
FreeBSDで行こう for small server
PDF
仮想ネットワーク構築8枚slide
PPTX
U boot-for-zynqberry
PDF
エンジニアのための痔の話
PDF
[Vitocha.iso] FreeBSDカスタムiso作ってみた
PPTX
STNSサーバーを書いてみた
PDF
qpstudy05 lignhing talk - virtio
PDF
Osc2014 hamanako
PDF
Linuxの基礎勉強会
PPTX
vhd経由でpc移動
PDF
Portus でプライベート Docker レジストリを構築してみよう ― 予告編 ―
PDF
「Tsurugi Linux」プレゼンテーションAVTOKYO2018
PDF
Portus でプライベート Docker レジストリを構築してみよう(openSUSE の紹介パート)
PDF
Dockerfile for Perl development
ODP
PDF
S2s websrv201011-presen
PDF
講座Linux入門・サーバOSとしてのLinux
PDF
VPSもDesktopもYaSTを使ってLinuxをらくらく設定―ファイルサーバー構築・管理編
NetBSD, On the ROAD 2016
DebianとWordPressでハッピーになろう!
FreeBSDで行こう for small server
仮想ネットワーク構築8枚slide
U boot-for-zynqberry
エンジニアのための痔の話
[Vitocha.iso] FreeBSDカスタムiso作ってみた
STNSサーバーを書いてみた
qpstudy05 lignhing talk - virtio
Osc2014 hamanako
Linuxの基礎勉強会
vhd経由でpc移動
Portus でプライベート Docker レジストリを構築してみよう ― 予告編 ―
「Tsurugi Linux」プレゼンテーションAVTOKYO2018
Portus でプライベート Docker レジストリを構築してみよう(openSUSE の紹介パート)
Dockerfile for Perl development
S2s websrv201011-presen
講座Linux入門・サーバOSとしてのLinux
VPSもDesktopもYaSTを使ってLinuxをらくらく設定―ファイルサーバー構築・管理編
Ad

Viewers also liked (8)

PDF
マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜
PDF
Edomae 2015 - マルウェアを解析してみよう
PDF
ハッキング実演
PDF
現実世界をハックせよ!
PDF
ウイルス検知プログラミング
PPT
VMware NSX で作る VDI 環境のファイアウォール
PDF
マルウェア通信検知手法におけるUser-Agentの有効性の一考察
PDF
VMware的インフラ仮想化の世界
マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜
Edomae 2015 - マルウェアを解析してみよう
ハッキング実演
現実世界をハックせよ!
ウイルス検知プログラミング
VMware NSX で作る VDI 環境のファイアウォール
マルウェア通信検知手法におけるUser-Agentの有効性の一考察
VMware的インフラ仮想化の世界
Ad

Similar to pbuilder, cowbuilder, lxcで作るお手軽サンドボックス (20)

PDF
Firefox OS + Raspberry Pi
PDF
自分色のLinuxホームサーバーを作ってみよう
PDF
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
PDF
Displaylink : Reloaded
PDF
Docker入門: コンテナ型仮想化技術の仕組みと使い方
PDF
Infinite Debian - Platform for mass-producing system every second
PDF
とあるWeb企業でのDebianシステムの使い方。
PPTX
20230128.pptx
PDF
今最もアツイdistribution Gentoo Linuxについて
PDF
DOSBox for beginners はじめてのDOSBox
PDF
Debian Testing on Windows Tablet T100TA
PDF
LibreOffice を Windows 上でビルドする UPDATE
PDF
Beginner for install DOSBox-X and PC-98 emulation. 初めてのDOSBox-XインストールとPC-98エ...
PDF
CloudFoundry 2 on Apache CloudStack 4.2.1
PPTX
Samba4でADしよう!
PDF
第66回関西Debian勉強会@KOF2012
PDF
LibreOffice を Windows 上でビルドする UPDATE2
PDF
Yesod on Heroku
PDF
【学習メモ#1st】12ステップで作る組込みOS自作入門
PDF
DockerとPodmanの比較
Firefox OS + Raspberry Pi
自分色のLinuxホームサーバーを作ってみよう
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
Displaylink : Reloaded
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Infinite Debian - Platform for mass-producing system every second
とあるWeb企業でのDebianシステムの使い方。
20230128.pptx
今最もアツイdistribution Gentoo Linuxについて
DOSBox for beginners はじめてのDOSBox
Debian Testing on Windows Tablet T100TA
LibreOffice を Windows 上でビルドする UPDATE
Beginner for install DOSBox-X and PC-98 emulation. 初めてのDOSBox-XインストールとPC-98エ...
CloudFoundry 2 on Apache CloudStack 4.2.1
Samba4でADしよう!
第66回関西Debian勉強会@KOF2012
LibreOffice を Windows 上でビルドする UPDATE2
Yesod on Heroku
【学習メモ#1st】12ステップで作る組込みOS自作入門
DockerとPodmanの比較

pbuilder, cowbuilder, lxcで作るお手軽サンドボックス