雑記

インフラのことだったりプログラムのことだったりどうでもいいこと書いたり。要は雑記。

homebrewで管理しているパッケージのバージョンを切り替えて固定する

brew upgrade するとパッケージのバージョンがあがる

上がることはいいのですが、言語などはバージョン上がってほしくないのでバージョンを切り替えたい、あるいは固定したいときにやること。

切り替え

過去インストールしたことのあるバージョンでないと切り替えられないので注意

インストールしたことないバージョンにしたい場合は別途作業が必要

  • バージョン確認
% brew info golang
go: stable 1.9.2 (bottled), HEAD
Open source programming language to build simple/reliable/efficient software
https://golang.org
/usr/local/Cellar/go/1.4.2 (5,569 files, 595MB)
  Built from source on 2015-05-29 at 23:52:51 with: --with-cc-common
/usr/local/Cellar/go/1.5.3 (5,339 files, 259.8MB)
  Built from source on 2016-02-19 at 23:42:46
/usr/local/Cellar/go/1.6.2 (5,778 files, 325.3MB)
  Poured from bottle on 2016-05-07 at 20:57:42
/usr/local/Cellar/go/1.8.3 (7,035 files, 282.0MB)
  Poured from bottle on 2017-06-07 at 16:39:36
/usr/local/Cellar/go/1.9.2 (7,646 files, 293.9MB) *
  Poured from bottle on 2017-11-06 at 13:38:18
・
・
・
  • 切り替え
% brew switch golang 1.8.3
Cleaning /usr/local/Cellar/go/1.4.2
Cleaning /usr/local/Cellar/go/1.5.3
Cleaning /usr/local/Cellar/go/1.6.2
Cleaning /usr/local/Cellar/go/1.8.3
Cleaning /usr/local/Cellar/go/1.9.2
3 links created for /usr/local/Cellar/go/1.8.3
% go version
go version go1.8.3 darwin/amd64

upgradeの対象外にする

% brew pin golang
% brew list --pinned

これを実行することで brew upgrade を実行してもバージョンがあがらなくなる

pinの解除

% brew unpin golang

unpinすればまたバージョンがあがる

pinしているパッケージの確認

% brew ls --pinned
go