読者です 読者をやめる 読者になる 読者になる

平常運転

アニソンが好き

過去記事とかは記事一覧で見れます

carton使っててperlのバージョン下げたときに./local/消してなかったから破滅した話

perl engineer

経緯

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.snapshotgit reset --hardするとかやって、まぁ直らなかったので適当に検索したらこの辺がヒットした。

どうやら5.20でビルドされたxsを5.18で使おうとして破滅しているようなので、「あれーcpanfile.snapshot消したのに消えてないのかー(そりゃそうだ)」とか「perl5.20消したのに古いxs残ってるのかー」とか呑気なこと考えていたけど、cartonなんだから./local/以下にインストールされているに決まっているじゃん、とようやく思い至った。

なのでrm -rf ./local/してもう1回carton installしたらちゃんと起動するようになった。

雑感

cartonについての知見が溜まったというか無知がすこし解消されたという感じだった。