VyOSを使ってみようと思ったのでISOをビルドしました

2022/01 色々間違えていたので書き直した。あと1.3がLTSになったのでビルドバージョンも変えた

前提条件

Dockerインストール

# 諸々のツールを入れる
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
# リポジトリ鍵を追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# リポジトリを追加
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# dockerインストール
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# docker起動
sudo service docker start

ISOビルド

  • 公式手順は以下。ビルド済みDockerイメージがあると書かれているので公式イメージを使う
  • 以下Redditの会話にあるように、公式で配布されているLTS版ISOと全く同じものをビルドするのは無理っぽいので細かいバージョンは気にしない
    • Compiling Equuleus 1.3.0 Commit : vyos

      This has already been discussed I believe. There absolutely isn’t a way to generate reproducible builds because some of the packages the build process grabs are directly from Debian.

# ビルド用イメージをダウンロードしてbash起動
sudo docker run --name temp-vyos --privileged -it docker.io/vyos/vyos-build:equuleus bash
  • 以下はコンテナ内で実行
# ビルド用の諸々をclone
cd /
git clone --branch equuleus --single-branch https://github.com/vyos/vyos-build

# 設定 ここで指定しているバージョンはなんでもいいはずなのでビルド日にする
cd /vyos-build
./configure --architecture amd64 --build-type release --version 1.3.20220110

# ISOビルド かなり時間かかる
make iso

# いい感じにビルドされたことを確認してコンテナから出る
ls -l /vyos-build/build
exit
  • ISOを回収してコンテナ削除
sudo docker cp temp-vyos:/vyos-build/build/live-image-amd64.hybrid.iso ~/
sudo docker container rm temp-vyos