前提
brewで、自分でインストールしたformulae 以外 = 依存関係として入ったformulae のみを更新しようと思ったのだけど、
自分でインストールしたかどうかは、情報として保持してないっぽい?
ので、近似解として、依存されてる側のformulaeだけ更新しようと思った。
のでメモ書き。
ちゃんと制御するならbrew pinとかを使うべきなんだと思う。
誰か/何かの役に立てば。
コマンド
$ brew update
$ comm -23 <(brew outdated --quiet) <(brew leaves) | column # 確認
$ comm -23 <(brew outdated --quiet) <(brew leaves) | xargs brew upgrade # 実行
って感じ。
解説
-
brew leaves- 依存関係を持たない formulae が取得できる
-
brew outdated- 更新がある formulae が取得できる。
--quietでformulae 名のみ出力
- 更新がある formulae が取得できる。
-
comm- ファイルを2つ引数にとり、ファイル1にのみ含まれる行、ファイル2にのみ含まれる行、両方に含まれる行、の3カラムを出力する。
- オプションで出力するカラムを制限できる。
-23によって、カラム1 = ファイル1にのみ含まれる行を出力させている - つまり、行を集合と見立てた時に、集合積(
comm -12)、集合差(comm -23)を取れるコマンド。
-
<(...)- サブシェルのstdoutをファイルとして渡せる