VyOSと戯れてみた

Thu, May 3, 2018 in debian , vyos

Note: VyOSの使い方とかは一切書いてません。

TwitterでVyOSのビルド説明の最新の場所を教えてもらったので、それに従って作業

$ git clone https://github.com/vyos/vyos-build.git
$ sudo debootstrap jessie ./jessie-chroot http://debian-mirror.sakura.ne.jp/debian
$ sudo cp -arp vyos-build jessie-chroot/root/
$ sudo chroot jessie-chroot
# cd root/vyos-build
# ./configure
/usr/bin/env: python3: No such file or directory

debootstrapで作った最小環境なのでそりゃそうですよね、ということでpython3パッケージを追加。

# apt install python3
# ./configure 
Checking if packages required for VyOS image build are installed
Missing packages: sudo make live-build pbuilder devscripts python3-pystache python3-git
Missing binaries: 
Build environment check failed, fix the issues and retry
# apt install sudo make live-build pbuilder devscripts python3-pystache python3-git
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package python3-git

あれ。https://tracker.debian.org/pkg/python-git によると

oldstable:  0.3.2~RC1-3
old-bpo:  2.1.1-2~bpo8+1

なので、多分 jessie-backports リポジトリ追加しないとダメなんじゃないだろうか。

# echo "deb http://debian-mirror.sakura.ne.jp/debian jessie-backports main" >> /etc/apt/sources.list
# apt update
# apt install python3
# ./configure 
Checking if packages required for VyOS image build are installed
All dependencies are installed

問題なく通ったので、isoイメージの作成をやってみる。

# make iso
Checking build configuration
[2018-05-03 11:39:13] lb clean 
P: Cleaning chroot
Starting VyOS ISO image build
Setting up additional APT entries
Configuring live-build
[2018-05-03 11:39:13] lb config noauto --architectures amd64 --bootappend-live boot=live components hostname=vyos username=live nopersistence noautologin nonetworking union=overlay --linux-flavours amd64-vyos --linux-packages linux-image-4.14.26 --bootloader syslinux --binary-images iso-hybrid --debian-installer false --distribution jessie --iso-application VyOS --iso-publisher root@hp --iso-volume VyOS --debootstrap-options --variant=minbase --exclude=isc-dhcp-client,isc-dhcp-common,ifupdown --include=apt-transport-https --mirror-bootstrap http://deb.debian.org/debian --mirror-chroot http://deb.debian.org/debian --mirror-chroot-security http://deb.debian.org/debian-security --mirror-binary http://deb.debian.org/debian --mirror-binary-security http://deb.debian.org/debian-security --archive-areas main contrib non-free --firmware-chroot true --updates true --security true
P: Updating config tree for a debian/jessie/amd64 system
P: Symlinking hooks...
It's not like I'm building this specially for you or anything!
[2018-05-03 11:39:13] lb build 
P: live-build 4.0.3
P: Building config tree for a debian/jessie/amd64 system
[2018-05-03 11:39:13] lb bootstrap 
P: Setting up cleanup function
[2018-05-03 11:39:13] lb bootstrap_cache restore
P: Restoring bootstrap stage from cache...
[2018-05-03 11:39:14] lb bootstrap_cdebootstrap 
[2018-05-03 11:39:14] lb bootstrap_debootstrap 
P: Begin bootstrapping system...
P: If the following stage fails, the most likely cause of the problem is with your mirror configuration or a caching proxy.
P: Running debootstrap (download-only)... 
I: Retrieving Release 
I: Retrieving Release.gpg 
I: Checking Release signature
I: Valid Release signature (key id 75DDC3C4A499F1A18CB5F3C8CBF8D6FD518E17E1)
I: Retrieving Packages 
I: Validating Packages 
I: Retrieving Packages 
I: Validating Packages 
I: Retrieving Packages 
I: Validating Packages 
I: Resolving dependencies of required packages...

んん?なんか見たことのある出力…debootstrap使ってるな…あ、lb云々とあるから live-build がdebootstrap呼んでるのね。

[2018-05-03 11:43:13] lb bootstrap_archive-keys 
Ign http://deb.debian.org jessie InRelease
Hit http://deb.debian.org jessie Release.gpg
Hit http://deb.debian.org jessie Release
Get:1 http://deb.debian.org jessie/main amd64 Packages [6789 kB]
Hit http://deb.debian.org jessie/contrib amd64 Packages
Hit http://deb.debian.org jessie/non-free amd64 Packages
Get:2 http://deb.debian.org jessie/contrib Translation-en [38.3 kB]
Get:3 http://deb.debian.org jessie/main Translation-en [4583 kB]
Get:4 http://deb.debian.org jessie/non-free Translation-en [72.1 kB]
Fetched 11.5 MB in 7s (1596 kB/s)
Reading package lists...
[2018-05-03 11:43:21] lb bootstrap_cache save
P: Saving bootstrap stage to cache...
[2018-05-03 11:43:22] lb chroot_devpts install
P: Begin mounting /dev/pts...
[2018-05-03 11:43:22] lb chroot_proc install
P: Begin mounting /proc...
[2018-05-03 11:43:22] lb chroot_selinuxfs install
[2018-05-03 11:43:22] lb chroot_sysfs install
P: Begin mounting /sys...
(snip)
Get:1 http://dev.packages.vyos.net/repositories/current/vyos/ current/main libsnmp-base all 5.7.2.1+vyos2+current1 [230 kB]

なるほど、Jessieでは足りない・変更した部分については別のリポジトリを持ってるのね。あれ、見て回ったらhttp://dev.packages.vyos.net/repositories/current/vyos/pool/main/l/live-boot/ とかに特にrevisionも変更されてないパッケージが。何故だろう?

ビルドが終わってどこにisoが出来たかさっぱりわからぬ。。。あ、build/vyos-1.2.0-rolling+201805031139-amd64.iso というファイルがあった。これはsymlinkで live-image-amd64.hybrid.iso を指してる。あと、build/cache/packages.binary 以下にはdebパッケージが保存されてるな。さらにmake isoしたらこれが使われるのかな、ということで再度実行してみる。。。どうやらそのようだ。

今日はここまで。 で、https://github.com/vyos/vyos-build/pull/17 に今日触ったところで debootstrap使ったほうがいいな、というプルリクエストを送っときました。