最弱ポータル自作日誌

自作ポータルとか自作ニュースサイトをコツコツ作るプログラマの作業記録

stack upgradeでliviconvではまってビルドできなくなって直して疲れた話

夜ふかしでつらいうえに、開発環境が壊れた。落ち込んだ。ケータイが突然動かなくなる、不便だよね。ツイッターが凍結されるとか。そこが人生だよ、ヘビーユースならね。

hackage.haskell.org

こいつをインストールしようとした。Haskellコールグラフを見たいならこれだってことをネットでみたからだ。呼び出し関係よくわからなくなるから。ソースを構造化せよって話かもしれない。

でstack upgradeしたらビルドできなくなった。SourceGraphだけじゃない。全部。命をかけてやってたプロジェクトもさ。

github.com

こいつですね。多分、以前も発生して諦めて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ならできたのが光明だ。

すげー検索したりするとライブラリパスの設定じゃね?みたいな記事が見つかった。疲れて手が尽きそうなところ。やはりライブラリのパスがだめか。

gitlab.haskell.org

bashrcをみると、、 むかしのKH Coderをビルドしたときの名残らしくperlにパスが通っていただけ。

ライブラリのパス設定があった場合、それを使って、オプション設定が無視されるようだ。これはわからないよ。わかった自分は奇跡の子。

そういえばKH Coderのマック版は構成管理されていないから、Rとかバージョン違いで死にかけた自分。

ソフト怖い。

昔といえば、Cabalも古いのが入っていてbrew install cabal-installしても新しくなっていなかったのでwhichしてそこを削除してインストールし直した。。

プラットフォームのバージョンアップって、構成がかわって古い実行ファイルが残ってしまって悪さするから、きっつー。

ライブラリのパス設定をコメントアウト、で結局ビルドできるようになりましたとさ。しかし週末つぶれたし、プライベートも上の空だった。