pyenvを使っている場合にbrewでvimを8.0.1400_4から8.0.1450に更新する方法です。
やり方は解決方法のところだけ見れば他の章を読まなくても大丈夫です。
今日brewでvimが更新できなかった!
前にもvimがパイソンのせいで更新できなくて、その時はpyenvのバージョンを「$ pyenv local system」でsystemに変更したら更新できたんですが、今日vimを更新しようとしたら、
==> Upgrading vim
==> Installing dependencies for vim: python
==> Installing vim dependency: python
==> Downloading https://homebrew.bintray.com/bottles/python-2.7.14_2.high_sierra
Already downloaded: /Users/ユーザ名/Library/Caches/Homebrew/python-2.7.14_2.high_sierra.bottle.tar.gz
==> Pouring python-2.7.14_2.high_sierra.bottle.tar.gz
Error: An unexpected error occurred during the brew link
step
The formula built, but is not symlinked into /usr/local
Permission denied @ dir_s_mkdir - /usr/local/Frameworks
Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks
とbrewが勝手にpython2.7をダウンロードしてきてしかもどこかで権限が拒否られてすごすごと失敗しやがりました。
パイソンは元からmacにあるのでbrew版パイソンは完全に容量の無駄遣いで邪魔ですし、このエラーメッセージに従ってbrew link pythonしたり、拒否されたディレクトリの権限を緩めたら依存関係がややこしくなりそうです。なのでこれらの手段を使わずに削除する方法を模索します。
前の解決方法を調べた時に読んだ該当するスタックオーバーフローの質問と回答を見返してみました。
この質問ページではpyenvに関する記述をbashrcからコメントアウトしてターミナルを再起動すれば成功したと書いてありますが、一旦、brewでインストールしたいらない方のパイソンを削除しました。
brew uninstall python で削除しようとしたら、
Error: Refusing to uninstall /usr/local/Cellar/python/2.7.14_2
because it is required by vim 8.0.1400_4, vim 8.0.1450, which are currently installed.
You can override this and force removal with:
というエラーメッセージが出たので、
brew uninstall --ignore-dependencies python
と打ち込んで削除してからbashrcをいじる解決法を試しても、前述と同じメッセージが出て失敗しました。
解決方法
bashrcのpyenvに関する行をコメントアウトした上で、 1
brew unlink python したら、 brew upgrade が成功しでvimが更新されました。
その後、
brew uninstall --ignore-dependencies python
brew cleanup
でいらないbrew版python2.7を削除します。
その他
結局何故以前成功した方法で今回は失敗したのか、その上で何故今回の方法だと成功したのか、brew doctorを使う前の試行錯誤する段階で成功しちゃったので、よくわからないから結果オーライだけど消化不良という感じです。なので、理由がわかる人がいれば解説お願いします。
この方法だと結局一度brewが勝手にpythonをインストールしようとするのは防げないんです。
後なんとなく英単語とカタカナ使い分けたんですけど英単語に統一したほうがいいですか?
stackoverflow、upgrade,python,comment out,error message等はカタカナの方が自分は読みやすくて、「ブリュー」,「ヴィム」はなんかカタカナだと汚く見えて英語表記の方が自分には綺麗に感じたんです。
自分はbashrc内を「pyenv」で検索して、該当した行をコメントアウトしただけでできました、他にも関連する行はあったかもしれませんが。 ↩