ダウングレード
Homebrewのダウングレードがまぁまぁ面倒だったのと、
上がっている記事が古くなりつつありそうだったのでメモ。
こちらの記事を参考にさせてもらいました。
brew upgradeして新しいバージョンにしたけど戻したい時
上記記事に書いてあるので(私が使ったことがないので)割愛させていただきます。
brew switch
コマンドで簡単にバージョン切り替えができるようです。
旧バージョンが提供されている場合
上記記事では versions
リポジトリを追加していましたが、deprecatedされていました。
それぞれのフォーミュラが gcc@7
のような形でバージョンを指定できるようにしていないと、バージョンを通常の方法で指定してインストールすることはできないと思います。
上記二つに該当しない時
HomebrewがFomulaを管理しているrubyスクリプトを集めたディレクトリが存在します。rubyスクリプトはgit管理されており、該当するソフトウェアのlogから該当するバージョンをインストールするように指示したバージョンにrubyスクリプトを戻すことでhomebrewが指定のバージョンをインストールしてくれるようになります。
まずは先ほど述べたディレクトリまで移動します。
macOS Mojave 10.14
Homebrew 1.7.7
上記の環境においては、/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula
にありました。今回、zshおよびtmuxのダウングレードを行いたかったので、
$ git log zsh.rb
commit d1b4a80301fd3eba0ceb1917baba454eeea9f13e
Author: BrewTestBot <homebrew-test-bot@lists.sfconservancy.org>
Date: Tue Oct 16 19:58:10 2018 +0000
zsh: update 5.6.2_1 bottle.
...(中略)...
commit 6d3232544b5f6f0d2b65c6ed89622beb11c4643b
Author: BrewTestBot <homebrew-test-bot@lists.sfconservancy.org>
Date: Sun Aug 19 15:13:51 2018 +0000
zsh: update 5.5.1 bottle.
$ git checkout 6d3232544b5f6f0d2b65c6ed89622beb11c4643b zsh.rb
次に現在使用しているzshをunlinkする必要があります。
unlinkした後はいつも通りinstallすれば該当のバージョンがインストールされます。
$ brew unlink zsh
$ brew install zsh
事の発端
今日、tmuxにて新しいpaneを開いたら、下記のようなエラーが発生。
/usr/local/Cellar/zplug/2.4.2/autoload/init.zsh:16: colors: function definition file not found
polling.zsh:17: add-zsh-hook: function definition file not found
__zplug::core::core::get_interfaces:49: regexp-replace: function definition file not found
__zplug::core::core::get_interfaces:49: regexp-replace: function definition file not found
...(中略)...
__zplug::core::core::prepare:67: compinit: function definition file not found
[zplug] ERROR: The loading of zplug was discontinued.
最近zshrcをイジイジしていたため、zshrcのデバッグを行なっていたものの、どうにも治らぬ。
もしかして別の問題かと思いエラーログを確認しに行くとissue上がっとるやん。
曰く、zshとtmuxの最新バージョンが原因らしいとのことでダウングレードを慣行をした次第です。
同じエラー出た人の検索に引っかかるようにどうでも良い蛇足を付け加えました。