概要
macOSにおいて、Homebrewでいくつかのアプリケーションを管理しているのですが、中にはバージョンを固定して使いたいものがあります。
Formulaeであれば、Homebrewにあらかじめある機能で実現可能ですが、Caskを利用したものは通常の方法ではできません。
ここでは、HomebrewのCaskでインストールしたソフトウェアのバージョンを固定する方法を紹介します。
環境
- macOS Monterey 12.3.1
- Homebrew 3.4.7
実現方法
Homebrewのデフォルトの機能では、Caskで提供されているソフトウェアのバージョンを固定することができません。通常であれば、このようにすることで可能です。
$ brew pin Formulae名
Caskについてはこれを使うことができないので、次のものを利用します。
これは、有志の方が作成しているCaskのソフトウェアの管理をするためのツールです。このツールにはバージョンを固定する機能があり、今回はこれを利用して、バージョンの固定を実現します。
ターミナルから次のコマンドを実行して、ツールをインストールします。
$ brew tap buo/cask-upgrade
こちらをインストールすることで、Caskに関連する便利な機能が使えるようになります。例えば、次のコマンドで、インストールしているCaskのソフトウェアの一覧を確認できます。
$ brew cu
==> Options
Include auto-update (-a): false
Include latest (-f): false
==> Updating Homebrew
Already up-to-date.
==> Finding outdated apps
Cask Current Latest A/U Result
1/7 font-fira-code 6.2 6.2 [ OK ]
2/7 font-hackgen 2.6.1 2.6.1 [ OK ]
3/7 font-hackgen-nerd 2.6.1 2.6.1 [ OK ]
4/7 mactex-no-gui 2022.0321 2022.0321 [ OK ]
5/7 r 4.2.0 4.2.0 [ PINNED ]
6/7 skim 1.6.7 1.6.10 Y [ PASS ]
7/7 xquartz 2.8.1 2.8.1 Y [ PASS ]
インストールしているもので表示は異なりますが、このようにわかりやすく確認することができます。今回インストールしたツールでは、brew cu
というコマンドを追加するので、それを利用して様々な操作を行います。
バージョンを固定する場合は次のようにします。
$ brew cu pin Cask名
私は、rについてバージョンを固定しています。バージョンを固定するとbrew cu
での確認時に、Resultの部分が「PINNED」となりますので、ちゃんと設定されているかを確認する際は、そのようにすることで確認可能です。または、次のように専用のコマンドも用意されています。
$ brew cu pinned
Cask Current Latest
1/1 r 4.2.0 4.2.0
もしもバージョンの固定を解除する場合は次のように実行します。
$ brew cu unpin Cask名
これで、目的の特定のCaskアプリのバージョンを固定したり、解除したりすることができました。
さいごに
Homebrewの標準機能で実現できれば良かったのですが、Caskについては別途tapをインストールする必要がありました。これをインストールしてしまえば、かなり簡単にバージョンの固定ができるので、みなさんも利用してください。