経緯
plenv
+carton
で管理しているプロジェクトで、最初5.20.0でcarton install
+carton exec
してたんだけど、よく見たら5.20.0じゃなくて5.18.2で動かすべきだったので(その辺は色々経緯があった)plenv local 5.18.2
してやり直したら妙なエラーが出た。
Perl API version v5.20.0 of Proc::Wait3 does not match v5.18.0 at /home/vagrant/.plenv/versions/5.18.2/lib/perl5/5.18.2/x86_64-linux/DynaLoader.pm line 213.
なんか別にすごい話でもなんでもなくてしょぼい話なんだけど記録ということで許してほしい。
いろいろ
Proc::Wait3
とかめっちゃ枯れてるから、変なバージョンが入ったわけではないというのはすぐに分かった。
でも正直あまりcarton
のことよくわかっていなかったので、cpanfile.snapshot
をgit reset --hard
するとかやって、まぁ直らなかったので適当に検索したらこの辺がヒットした。
- https://github.com/jkeenan/test-against-blead/issues/1
- https://github.com/miyagawa/cpanminus/issues/393
どうやら5.20でビルドされたxsを5.18で使おうとして破滅しているようなので、「あれーcpanfile.snapshot
消したのに消えてないのかー(そりゃそうだ)」とか「perl5.20消したのに古いxs残ってるのかー」とか呑気なこと考えていたけど、carton
なんだから./local/
以下にインストールされているに決まっているじゃん、とようやく思い至った。
なのでrm -rf ./local/
してもう1回carton install
したらちゃんと起動するようになった。
雑感
carton
についての知見が溜まったというか無知がすこし解消されたという感じだった。