ねこものがたり

いちにちいっぽ

tigが起動しなくなったのを直しました

使っているシェルはfishです。 tigが便利で1年くらい使っているのですが、突然動かなくなりました。 直前にやったことはrbenv install 2.7.0ですが、これが関係してるのかどうかは理解していません。直前の操作がこれだったので関係しているかも、と思っている程度です。

取り急ぎ git add ~~とかgitコマンド直接叩いて操作してたんですが、そろそろ「やっぱ面倒だな」と思ったので修正することにしました。(遅)

この事象に遭遇したのが初めてではなかったので、ちゃんと調べて理解してからやりたいな〜と思って遅くなったんだという言い訳を残しておきます。

エラーメッセージ

$ tig
dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib
  Referenced from: /usr/local/bin/tig
  Reason: image not found
fish: 'tig' terminated by signal SIGABRT (Abort)

対応

シンボリックリンクを貼ると解消でき、tigコマンドが動きました。

 ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.7.dylib

解消できなかった対応

brew upgradeしたら直ったという記事があったけど違いました。

原因

冒頭で直前に実行したrbenv install 2.7.0が関係しているかわからないとは書きましたが、GitHubrbenv / ruby-buildを見ていると、install時にreadlineをなんかしてるみたいです。でもrbenv installしても大丈夫な時もあるので何がどうなっているのか自力では読み解けなかったので、詳しそうな人に聞いてみたいと思います。

備忘録

lnコマンドの引数

ln の引数の順番で迷わなくなったがわかりやすいと思いました。 上記のコマンドだと、/libreadline.dylib/libreadline.7.dylibへのリンクを貼ったということ。