VyOSのISOイメージをビルドする方法のメモです.
最新バージョンのVyOSを用いる場合等は,自分でISOビルドしないと使えないはずです.
基本的な手順は以下のサイトを参照.
ISOの作り方
1. ビルドマシンの構築
VyOSのビルドはDebian Squeezeに依存しているので,Squeezeの入ったマシンが必要です.
Squeezeのインストールイメージは以下からダウンロードできます.
あとは仮想マシン等にSqueezeをインストールしてください.
必要パッケージのインストール
最低限必要なパッケージをインストールします.
debian-archive-keyringのインストール
インストールされてない場合を考慮してインストールします.
$ sudo apt-get install debian-archive-keyring
SquashFS toolsのインストール
ちょっと古いsquashfsパッケージが必要なので,backportから持ってきます.
$ sudo sh -c 'echo "deb http://backports.debian.org/debian-backports squeeze-backports main" >> /etc/apt/sources.list' $ sudo apt-get update $ sudo apt-get -t squeeze-backports install squashfs-tools
依存パッケージのインストール
$ sudo apt-get install build-essential git autoconf automake dpkg-dev live-helper syslinux genisoimage pdebuild-cross facechroot
以上で環境の構築は完了です.
2. ISOのビルド
githubからリポジトリをクローンしてビルドするだけです.
$ git clone https://github.com/vyos/build-iso.git $ cd build-iso $ export PATH=/sbin:/usr/sbin:$PATH $ autoreconf -i $ ./configure $ sudo make iso
しばらくほっとくと ./livecd/binary.iso にVyOSのISOイメージが生成されます.
あとはこのISOを用いてVyOSにインストールしたり,すでにインストールされたVyOSに
# add system image binary.iso
でイメージを追加して使います.
ソースに変更を加えたISOの作り方
VyOSのソースに変更を加えたISOイメージは次の手順で作ることができます.
1. VyOSのsubmoduleソースをとってくる
VyOSのソースに変更を加える場合は,最初にsubmoduleのソースを取ってくる必要があります. 例えば,pppに変更を加えたい場合は,以下のコマンドを実行してpppのソースを取得します.
$ git submodule update --init pkgs/ppp
2. submoduleをビルドする
submoduleのビルドは build-iso/
ディレクトリ下のMakefileを使って行います.
例えばpppのビルドを行う場合は以下のようにします.
$ make ppp
ビルドが成功すると pkgs/
ディレクトリ以下にパッケージファイル(.debファイル)が生成されます.
ビルドに失敗した場合は次を参照してください.
必要パッケージが不足している場合の対処法
submoduleのビルドに必要なパッケージがない場合,ビルドが失敗することがあります. 例えばpppのビルドを行った場合は,次のようなログを出してビルドが失敗しました.
$ sudo make ppp dpkg-buildpackage -rfakeroot -D -us -uc -i -b -nc dpkg-buildpackage: warning: using a gain-root-command while being root dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2 dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2 dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): dpkg-buildpackage: source package vyatta-ppp dpkg-buildpackage: source version 2.4.4rel-8+vyos2+lithium4 dpkg-buildpackage: source changed by Alex Harpin <development@landsofshadow.co.uk> dpkg-source -i --before-build ppp dpkg-buildpackage: host architecture amd64 dpkg-checkbuilddeps: Unmet build dependencies: libpcap0.8-dev libpam0g-dev zlib1g-dev dpkg-buildpackage: warning: Build dependencies/conflicts unsatisfied; aborting. dpkg-buildpackage: warning: (Use -d flag to override.) debuild: fatal error at line 1325: dpkg-buildpackage -rfakeroot -D -us -uc -i -b -nc failed make: *** [ppp] Error 29
このエラーメッセージ内に必要なパッケージは示されており,今回は
dpkg-checkbuilddeps: Unmet build dependencies: libpcap0.8-dev libpam0g-dev zlib1g-dev
と出ているので, libpcap0.8-dev libpam0g-dev zlib1g-dev
が足りてないことがわかります.
$ sudo apt-get install libpcap0.8-dev libpam0g-dev zlib1g-dev
として必要パッケージをインストールしたあと,再度 make ppp
を叩けばビルドが成功するはずです.
3. ISOの再ビルドを行う
VyOSは pkgs/
以下にビルドされたsubmoduleのパッケージ(.debファイル)が存在する場合,そちらを優先してISOに取り込み,ISOのビルドを行います.
使用するビルドコマンドは通常と同じです.
$ sudo make iso
以上です.
おやすみなさい,