現状確認
- "*" がついた行がバージョン:バージョンが最新だけである。
- よって、バージョンを下げるために、git コマンドを用いて、任意の状態へ戻す。
❯ brew info yt-dlp
yt-dlp: stable 2022.6.29 (bottled), HEAD
Fork of youtube-dl with additional features and fixes
https://github.com/yt-dlp/yt-dlp
/opt/homebrew/Cellar/yt-dlp/2022.6.29 (4,306 files, 41.0MB) *
Built from source on 2022-07-14 at 10:43:54
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/yt-dlp.rb
License: Unlicense
==> Dependencies
Required: python@3.10 ✔
==> Options
--HEAD
Install HEAD version
==> Caveats
fish completions have been installed to:
/opt/homebrew/share/fish/vendor_completions.d
==> Analytics
install: 23,185 (30 days), 51,680 (90 days), 142,979 (365 days)
install-on-request: 15,848 (30 days), 35,433 (90 days), 87,120 (365 days)
build-error: 0 (30 days)
brew のどこのディレクトリで実行するか
人それぞれあると思いますが、私の場合、以下のFormula
ディレクトリで実行するとうまくいきました。
cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula
バージョンはどれにするか
- 予め、目的となるバージョンに目をつけておきます。
- 例えば、最新のバージョンではバグが有り、1つ前に戻したい場合、現状の一つ前のメジャーアップデートのときの SHAハッシュ をコピーすれば良いです。
❯ git log --oneline yt-dlp.rb
e2ecd4f1b91 yt-dlp: update 2022.4.8 bottle.
51fcd178019 yt-dlp 2022.4.8
7a3108c7a0f yt-dlp: update 2022.3.8.2 bottle.
debbd213ef9 yt-dlp 2022.3.8.2
80f61b7fa15 yt-dlp: fix HEAD build
ee2e044937b yt-dlp: update 2022.2.4 bottle.
414180e697d yt-dlp 2022.2.4
cc055197122 yt-dlp: update 2022.2.3 bottle.
f2607fcafbb yt-dlp 2022.2.3
...
バージョンを指定して、取得する
git checkout 7a3108c7a0f yt-dlp.rb
再インストールする
❯ brew unlink yt-dlp.rb
Unlinking /opt/homebrew/Cellar/yt-dlp/2022.6.29... 4 symlinks removed.
❯ brew install yt-dlp.rb
確認
- 現在のバージョン("*" がついている)が、最初のときと変化して、一つ前のバージョンへなっていることが確認できました。
❯ brew info yt-dlp
yt-dlp: stable 2022.6.29 (bottled), HEAD
Fork of youtube-dl with additional features and fixes
https://github.com/yt-dlp/yt-dlp
/opt/homebrew/Cellar/yt-dlp/2022.3.8.2 (2,138 files, 23.7MB) *
Poured from bottle on 2022-07-18 at 02:06:46
/opt/homebrew/Cellar/yt-dlp/2022.6.29 (4,306 files, 41.0MB)
Built from source on 2022-07-14 at 10:43:54
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/yt-dlp.rb
License: Unlicense
==> Dependencies
Required: python@3.10 ✔
==> Options
--HEAD
Install HEAD version
==> Caveats
fish completions have been installed to:
/opt/homebrew/share/fish/vendor_completions.d
==> Analytics
install: 23,185 (30 days), 51,680 (90 days), 142,979 (365 days)
install-on-request: 15,848 (30 days), 35,433 (90 days), 87,120 (365 days)
build-error: 0 (30 days)
感想
- パッケージ管理に、brew を使っていますが、brew 自体がバージョン管理をどうやっているかは、git を使っているというだけでよくわかっていませんでした。
- こうやって、手動でバージョンを戻したりすると、パッケージ管理ツールでも、git の使い方は普通なのだなと思いました。
参考にしたサイト