stack upgradeでliviconvではまってビルドできなくなって直して疲れた話
夜ふかしでつらいうえに、開発環境が壊れた。落ち込んだ。ケータイが突然動かなくなる、不便だよね。ツイッターが凍結されるとか。そこが人生だよ、ヘビーユースならね。
こいつをインストールしようとした。Haskellのコールグラフを見たいならこれだってことをネットでみたからだ。呼び出し関係よくわからなくなるから。ソースを構造化せよって話かもしれない。
でstack upgradeしたらビルドできなくなった。SourceGraphだけじゃない。全部。命をかけてやってたプロジェクトもさ。
こいつですね。多分、以前も発生して諦めてstackをダウングレードしたんだろう。でも今回はSourceGraphが入らないんだっけ?
だから、やることにしたんですよ。最新版Stackでいく。ちなみに環境はmacちゃんです。
他にもハマっている記事があった。つらいね。
Link error with libiconv on MacOS · Issue #74 · haskell/haskell-platform
iconv - libiconv or iconv undefined symbol on Mac OSX - Stack Overflow
あやふやだけど、要はlibiconvのインターフェースの変更で、環境をインストールしたときとビルド時が異なるとだめってことらしい。間違っているかも。
その原因はmac portsだったりbrewだったりするみたい。
てことで、ビルドオプションをかえる。/usr/libにパスをとおす。
で、できなかった。ローカルのマックちゃんでHaskellできなくなる恐怖。永遠に
ぜんぜん。いろいろやってみる。brewでlibiconvを入れ直したり、この間4−5時間は試行錯誤した。
brewも動かないとか。。www
macos - brew install すると invalid byte sequence in UTF-8 エラーが出る - スタック・オーバーフロー
ここが一番つらかった。ghcオプションをstackビルドに渡そうとしたり、実はできないらしい。
ghcコンパイルは通らないが-Lオプションつけると通った。stackじゃなくてghcならできたのが光明だ。
すげー検索したりするとライブラリパスの設定じゃね?みたいな記事が見つかった。疲れて手が尽きそうなところ。やはりライブラリのパスがだめか。
bashrcをみると、、 むかしのKH Coderをビルドしたときの名残らしくperlにパスが通っていただけ。
ライブラリのパス設定があった場合、それを使って、オプション設定が無視されるようだ。これはわからないよ。わかった自分は奇跡の子。
そういえばKH Coderのマック版は構成管理されていないから、Rとかバージョン違いで死にかけた自分。
ソフト怖い。
昔といえば、Cabalも古いのが入っていてbrew install cabal-installしても新しくなっていなかったのでwhichしてそこを削除してインストールし直した。。
プラットフォームのバージョンアップって、構成がかわって古い実行ファイルが残ってしまって悪さするから、きっつー。
ライブラリのパス設定をコメントアウト、で結局ビルドできるようになりましたとさ。しかし週末つぶれたし、プライベートも上の空だった。