人生生きていたら誰もがChromiumのビルドぐらい必要になるだろう。
既存のドキュメントでは少しうまく行かないところがあったのでまとめておく。
基本的にはhttps://chromium.googlesource.com/chromium/src/+/master/docs/linux/build_instructions.md
の順に行っただけ
Pythonのバージョンの問題とPython入れるまでのやり方だけが追記されている。
ビルド環境
公式リファレンスによれば以下のような環境が必要。
- 8GB以上のRAMが必要。16GB以上が推薦
- 最低でも100GB以上のストレージ領域があること
- GitとPython 2系がインストールされていること
今回はGCP上で東京リージョンにn1-standard-4(vCPU x 4、メモリ 15 GB)
のインスタンスを借りた。
Pythonのインストール
build-essentialとzlib-devを入れる
apt get install build-essential zlib1g-dev
これがないとPyenvで入れることができない。
Anyenvを入れる
個人的にAnyenv経由でPyenvを入れておきたかったのでAnyenvを入れておく。
git clone https://github.com/anyenv/anyenv ~/.anyenv
echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bashrc
anyenv install --init
.bashrc
を編集する必要がある。以下を追記。
eval $(anyenv init -)
Pyenvを入れる
anyenv install pyenv
Pythonを入れる
2.7.17を入れたところ、後々に実行するgclient runhook
でエラーが起きてしまったので2.7.14
を入れる。
pyenv install 2.7.14
pyenv global 2.7.14
ここでpyenv local 2.7.14
と後々に使う作業用フォルダでやってもよいが、空なディレクトリじゃないとエラーが起きる部分があるので、面倒なのでとりあえずこうした。
Chromiumのソースのダウンロード、依存関係のインストール
以降の処理は実行時間が長いものもある。sshの接続が切れたりして再度やり直すのは大変なのでtmux使っておくとよいだろう。
Chromiumのダウンロードツールのインストール
depot_tools
というものをダウンロードして、パスを通す必要があるらしい。
以下ホームディレクトリにいることを想定。
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
.bashrcに以下を追記する。
export PATH="$PATH:${HOME}/depot_tools"
Chromiumのソースのダウンロード
mkdir ~/chromium && cd ~/chromium
fetch --nohooks chromium
これでダウンロードする。多分30分ぐらいかかる。
依存関係のインストール
cd src
./build/install-build-deps.sh
gclient runhooks
ninjaファイルの生成
ビルドに使うninjaのためのファイルを生成するみたい
gn gen out/Default
Chromiumのビルド
autoninja -C out/Default chrome
6時間ほどしたら完成する。