Contents
まとめ
- Chromium をビルドするときは asdf を無効化しておくと良い
- その都度 asdf を無効化するには direnv を使うのが良い
はじめに
Chromium をビルドするときは asdf を無効化しておくと良さそうだよ,という話をします.
対象読者は asdf を使って python のバージョン管理をしている人 です.
Chromium がビルドできずに困っていて焦っているかもしれませんが, 一旦深呼吸してこの記事を読んでください.
きっとビルドエラーが解決できると思います.
それではどうぞ!
原因
Chromium をビルドするときに python を使うのはご存知かと思います.
Chromium が想定している python のバージョンやパスは OS にプリインストールされている python のバージョンとパスです. (たぶん)
なので asdf を使って python のバージョンやパスを管理していると OS にプリインストールされている python とは異なるバージョンやパスの python を使うことになります.
おそらくそれがビルドエラーの原因です.
なぜ asdf で python をバージョン管理しているのが chromium ビルドエラーの原因だと言えるのか というと asdf を無効化した状態だと chromium のビルドエラーが発生しなかったから です.
ではどうやって asdf を無効化したのか,その方法について解説します.
解決策
direnv を使って asdf を一時的に無効化する
asdf を無効化するために direnv を使いました.
direnv をインストールしていない方は今ここで direnv をインストールしてください.
ココから先は direnv がインストールされている環境を前提として話を進めます.
-
direnv 参考資料:
さて,direnv のインストールが完了したところで chromium ビルド時に asdf を無効化する設定をしましょう.
chromium の src/
があるディレクトリに移動してください.
以下は自分の場合です.
$ cd ~/chromium
$ tree -L 1 -a
.
├── .DS_Store
├── .chromium.code-workspace
├── .cipd
├── .envrc
├── .gclient
├── .gclient_entries
├── depot_tools
└── src
3 directories, 5 files
次に .envrc
というファイルを作成しましょう.
自分の場合はすでに .envrc
は作成済みです.
$ touch .envrc
では .envrc
に asdf を無効化する設定をしましょう.
PATH_rm
を使って asdf へのパスを一時的に削除するだけですけど.
PATH_rm /Users/user/.asdf/shims
PATH_rm /Users/user/.asdf/bin
.envrc
を更新したら direnv allow
で設定を上書きしましょう.
$ direnv allow
以上で chromium ビルド時 (~/chromium
配下がカレントディレクトリの場合) に
asdf が無効化されます.
ついでに depot_tools
の参照パスを変更しておきましょう.
(depot_tools
への参照パスを third_party
配下にすることで誤爆を防ぐことができます.
さらに gclient sync
実行時に depot_tools
も更新されるので良きです)
depottools の参照パスを thirdparty 配下にする
depot_tools
の参照パスを変更するときにも direnv を使います.
パスを追加するので PATH_add
を使って参照したいパスを記述します.
$ cd ~/chromium
$ vi .envrc
PATH_add src/third_party/depot_tools
再度 direnv allow
を実行して direnv の設定を更新してください.
$ direnv allow
以上で全ての設定は終了です.
お疲れ様でした!
おわりに
chromium をビルドするときは asdf を無効化にしておくと良いぞというお話でした.
この記事に書いてある内容でビルドエラーが解決できたら Twitter のフォローをしていただけると嬉しいです.
フォロワー0人からフォロワー1000人を目指しております.
2021-05-09 時点のフォロワーは5人です.笑
フォロワーの数でこのブログの価値を測りたいと考えています.
どうぞよろしくお願いします.
最後までお読みいただきありがとうございました.
今日も良い一日を!
参考資料
direnv の API? についてはこちら:
執筆機材
- Xiser Pro Trainer (ステッパー)
- HHKB Professional 墨 (キーボード)
- HHKB キートップセット 白 (キートップ)
- Apple Magic Mouse 2 (マウス)
- Apple MacMini (PC)
- iiyama Display 27inch FullHD (ディスプレイ)
- KINTO UNITEA 550ml (コップ)