eyecatch thumbnail

Chromium をビルドする時は asdf を無効化しておこう | .vpython 系のエラーなど

Profile picture
Takeru Yamada
2021.05.09

Contents


まとめ

  • Chromium をビルドするときは asdf を無効化しておくと良い
  • その都度 asdf を無効化するには direnv を使うのが良い

はじめに

chris-liu-beers-z6cFcCh60Aw-unsplash.jpg

Chromium をビルドするときは asdf を無効化しておくと良さそうだよ,という話をします.

対象読者は asdf を使って python のバージョン管理をしている人 です.

Chromium がビルドできずに困っていて焦っているかもしれませんが, 一旦深呼吸してこの記事を読んでください.

きっとビルドエラーが解決できると思います.

それではどうぞ!


原因

tolga-ulkan-9k36QqhA0cU-unsplash.jpg

Chromium をビルドするときに python を使うのはご存知かと思います.

Chromium が想定している python のバージョンやパスは OS にプリインストールされている python のバージョンとパスです. (たぶん)

なので asdf を使って python のバージョンやパスを管理していると OS にプリインストールされている python とは異なるバージョンやパスの python を使うことになります.

おそらくそれがビルドエラーの原因です.

なぜ asdf で python をバージョン管理しているのが chromium ビルドエラーの原因だと言えるのか というと asdf を無効化した状態だと chromium のビルドエラーが発生しなかったから です.

ではどうやって asdf を無効化したのか,その方法について解説します.


解決策

scott-graham-5fNmWej4tAA-unsplash.jpg

direnv を使って asdf を一時的に無効化する

asdf を無効化するために 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/takeru/.asdf/shims
PATH_rm /Users/takeru/.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

以上で全ての設定は終了です.

お疲れ様でした!


おわりに

sven-scheuermeier-uABaIb8XUGI-unsplash.jpg

chromium をビルドするときは asdf を無効化にしておくと良いぞというお話でした.

この記事に書いてある内容でビルドエラーが解決できたら Twitter のフォローをしていただけると嬉しいです.

フォロワー0人からフォロワー1000人を目指しております.

2021-05-09 時点のフォロワーは5人です.笑

フォロワーの数でこのブログの価値を測りたいと考えています.

どうぞよろしくお願いします.

最後までお読みいただきありがとうございました.

今日も良い一日を!

参考資料

direnv の API? についてはこちら:


執筆機材


関連記事