TL;DR
tig
が以下のエラーを吐いて動かなかったのでいろいろ試した。
結論からいってしまうとHomebrewで使用しているreadlineのバージョンをスイッチすればだいたいOK
そのあとワーニングが出る場合の対処は後述する。
対象読者 or 前提条件 or 環境
対象者:
- 気軽に
brew update
してしまい急にtigが動かなくなった人
前提条件:
- brew経由でreadline入れてる
- brew経由でtig入れてる
- 気軽に
brew update
した OR ついつい間違ってbrew update
してしまった
環境:
- macOS 10.12.4
経緯:
元々のエラーは↓
# tigで使用しようとしているlibreadline.x.dylibが見つかんねえぞ!と怒られてる
dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib
Referenced from: /usr/local/bin/tig
Reason: image not found
zsh: abort tig
readline
は確かすでに入れてあったしこの前tig
コマンドを実行したときは普通に動いてたよなー確かと記憶を探る。
そういえばさっきbrew update
したから動かなくなったのかなー?
…と思い「Library not loaded tig」とかで検索しいくつかのサイトを参考にした。
で結局原因としてはやはりというか当たり前だがbrew update
したことによってtig
が求めているreadline
のバージョンが上がったということだった。
brew switch readline 7.x.x
なので↑のコマンド叩いて問題解決!
とは残念ながらならなかった…。
tig
のwarningを消す:
tig warning: /usr/local/etc/tigrc:90: status-untracked-dirs has been renamed to status-show-untracked-dirs
tig warning: Errors while loading /usr/local/etc/tigrc.
今度は↑のワーニングが出るようになった。
なおワーニングなのでtigそのものは動く、動くんだけどワーニングが表示されたままだと気持ち悪い。
ちなみにどうでもいいがワーニングとカタカナで書くのも書かれているのも気持ち悪い。
置換が面倒なのでこのまま押し通すが。
とりあえず素直にワーニング文を読んだところ、/usr/local/etc/tigrc
の90行目がリネームされているのはわかった。
出来れば直接いじらずになんとかしたかったがググったりインストール/アンインストールしてもどうにもならんかった。
brewだけで問題を解決するのは難しそう&そこまで時間をかけるほどの価値がないので↓のコードを書き換えた。
# 元々は↓だったがコメントアウトしてリネーム後のものに書き換えた
# set status-untracked-dirs = yes # Show files in untracked directories? (status)
set status-show-untracked-dirs = yes # Show files in untracked directories? (status)
そしてようやくエラーやワーニングに煩わされない快適なtig ライフが戻ってきた。
あとがき
homebrewは便利なんだけどもこの手の依存関係で時間を取られることがまれにあって鬱陶しい。
依存関係も諸々含めて解決して欲しい。
本質的でないところで時間を取られる感じがしてすごく嫌だ。
とはいえこの手の開発ツールに対する自分の理解度が低い問題もあるので一概に攻められはしないのだが。