haskell-stackにlibHSyaml-0.8.24-2wdOOQKc6Dt63OCZo8Nf1H-ghc8.2.1.soがないとか言われた

起こった問題

$ stack
stack: error while loading shared libraries: libHSyaml-0.8.24-2wdOOQKc6Dt63OCZo8Nf1H-ghc8.2.1.so: cannot open shared object file: No such file or directory

結論

 以下のコマンドで解決できる。

$ yaourt -U /var/cache/pacman/pkg/stack-1.4.0-37-x86_64.pkg.tar.xz
$ yaourt -S haskell-stack-git
# PKGBUILDの編集で、依存関係からtlibinfoとstackを消す

事の流れ

 あることのために、ArchLinuxにstatic-stackというhaskell-stack-gitと競合するパッケージを入れる必要があった。 事を終えた後にyaourt -S stackをした後に$ stackを実行してみると、以下のエラーを吐いた。

$ stack
stack: error while loading shared libraries: libHSyaml-0.8.24-2wdOOQKc6Dt63OCZo8Nf1H-ghc8.2.1.so: cannot open shared object file: No such file or directory

 つまるところ、stackコマンドほぼ全体が使えない。

 libHSyaml-0.8.24-2wdOOQKc6Dt63OCZo8Nf1H-ghc8.2.1.soはおそらくstack setupで入ったその場のghc8.2.1と結びついたライブラリだと思われる。 なので$ stack setupし直せばいけるか? とも思ったが、しかしstackコマンドが使えないので、それもできない。

 幸いこのArchLinuxには/var/cache/pacman/pkg/stack-1.4.0-37-x86_64.pkg.tar.xzが存在したのでyaourt -Uでそれを入れると、 正常に動いた。

 その後$ stack setupしてみるも「既にghcは入っている」的なことを言われたが$ rm -rf ~/.stackを試すのも馬鹿らしいので、 またhaskell-stack-gitを入れることにした。

$ yaourt -S haskell-stack-git
# PKGBUILDの編集で、依存関係からtlibinfoとstackを消す

 これで解決した。

筆者プロフィール

my-latest-logo

aiya000(あいや)

せつラボ 〜圏論の基本〜」 「せつラボ2~雲と天使と関手圏~」 「矢澤にこ先輩といっしょに代数!」を書いています!

強い静的型付けとテストを用いて、バグを防ぐのが好き。Haskell・TypeScript。