🔥

Homebrew で tmux 3.3a を 3.3 に戻す

2022/06/16に公開

問題

うっかり、3.3a にあげてしまい、以下のエラーが起こるようになって iTerm2 で作業出来なくなってしまった。

% /usr/local/bin/tmux
[exited]
^[[>0;95;0c^[P>|iTerm2 3.4.15^[\~
% 0;95;0c>|iTerm2 3.4.8>|iTerm2 3.4.8>|iTerm2 3.4.12>|iTerm2 3.4.15>|iTerm2 3.4.15>|iTerm2 3.4.15
[exited]

2023/10/24 追記

Homebrew 4.x から Formula の取得方法が変わったので、git を利用した解決方法は使用できなくなった。

代わりに、以下を実行してエラーなく tmux が立ち上がるようになった。

% tmux kill-server
% brew reinstall tmux

バージョンを確認。

% tmux -V
tmux 3.3a

念の為 pin しておく。

% brew pin tmux

解決方法

tmux 3.3 に戻す。

1. Formula ディレクトリまで移動

% cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula

もしくは

% cd /opt/homebrew/Library/Taps/homebrew/homebrew-core/Formula

2. 対象コミットをログから探す

% git log --oneline tmux.rb

重すぎて表示出来そうもないので、tig を使う。

% tig tmux.rb
c2afda9 BrewTestBot   2022-06-09 20:05 +0000 o tmux: update 3.3a bottle.
c111eb4 owine         2022-06-09 08:47 -0500 o tmux 3.3a
6c1d658 BrewTestBot   2022-06-01 13:19 +0000 o tmux: update 3.3 bottle.
849b9de Porkepix      2022-06-01 11:55 +0200 o tmux 3.3
e44425d Bo Anderson   2022-03-19 04:22 +0000 o tmux: update 3.2a_1 bottle.
e1a6ff8 Bo Anderson   2022-03-19 03:38 +0000 o tmux: patch occasional crash on exit
1a4204c Carlo Cabrera 2021-10-23 07:41 +0000 o tmux: update 3.2a bottle.
c26da3b Carlo Cabrera 2021-10-23 07:29 +0000 o tmux: update 3.2a bottle.
9c71dbc Carlo Cabrera 2021-07-19 14:18 +0800 o tmux: add functional test
3028626 Dawid Dziurla 2021-07-05 21:38 +0000 o tmux: update 3.2a bottle.

3. revisionを使って状態を戻す

3.3 に戻したいので、3.3a の 1 つ手前のコミットに移動

% git sw -d 6c1d658

4. 再インストールする

% brew reinstall tmux

環境

% sw_vers
ProductName:    macOS
ProductVersion: 12.4
BuildVersion:   21F79

% brew --version
Homebrew 3.5.2-20-g22f4c39
Homebrew/homebrew-core (git revision 6c1d6585dd6; last commit 2022-06-01)
Homebrew/homebrew-cask (git revision 9262d4600f; last commit 2022-06-16)

Discussion