ちょっとHomebrewのアップデートによって問題が起こる様になったため、 Brewfileのデフォルト置き場を変更しました。
これまでのものだと不具合が出るので Brew-fileをアップデートし、Brewfile置き場の更新もお願いします。
Homebrewが/usr/local/以下のユーザーの変更をキープしなくなった
これまでBrewfileはデフォルトで
/usr/local/Library/Brewfile
に置くようにしていました。 /usr/local/は[Homebrewのレポジトリ]((https://github.com/Homebrew/homebrew) をチェックアウトしたものになっています。
brew update
ではこの/usr/localでgit pull
するような事を行います。
その際、ユーザーがファイルをいじってたりしてコンフリクトが起こったりすると アップデートが失敗してしまうので、変更を一時的にstashしておいてアップデートを行う、 みたいな作業を行っています。
この辺、ちょっと前にstash/pop周りが結構変更されています。
Do a reset to `origin/master` and then stash but don't pop the stash after running update
とあるので、これまでは変更があってもアップデート後にpopしていたものを 今はそのまま戻さずにmasterの状態をキープするようになった模様。
従ってユーザーが何か変更を行っても
brew update
で全部元に戻る、と。
これはデベロッパーには面倒だけどGitをよく理解してないユーザーには良いだろう、
ということだそうです。まあ分からないではないですが。
そんなわけで、brew update
をすると/usr/local/Library/Brewfileは消え、
また、Gitで管理していると/usr/local/Library/rcmdnk_Brewfileみたいな
ディレクトリにBrewfileのレポジトリをチェックアウトしますが、これも
$ brew update
Ignoring path Library/rcmdnk_Brewfile/
To restore the stashed changes to /usr/local run:
`cd /usr/local && git stash pop`
Already up-to-date.
の様にbrew update
時にwarningが出るようになりました。
ただし、ここにある様にgit stash pop
をしても
Brewfileは元に戻りませんでした。(gitを理解してない。。。?)
いずれにしろ、Brewfileの管理場所として この場所を使うのは不具合が多いので別の場所にします。
Brew-fileでの設定変更
追記: 2017/09/27
さらに変更して~/.config/brewfile/Brewfileにしています。
~/.brewfile/Brewfileだけがある場合は引き続きそれを使えます。
追記ここまで
Brew-fileでのBrewfileの新しいデフォルト置き場は
~/.brewfile/Brewfile
になります。 また、Gitのレポジトリを使うような場合は、レポジトリは
~/.brewfile/rcmdnk_Brewfile
の様に、Brewfileと同じ場所にチェックアウトされます。
これはHOMEBREW_BREWFILE
値を変更した場合も同様で、
常にBrewfileのあるディレクトリにチェックアウトするようにしました。
これまでのBrewfileが消えてしまった、等の不具合もあるかと思いますが、
基本的にBrew-fileでは、ファイルを用意して初期導入、というものではなくて、
現在のMacの状況を常に書き出しておく、と言う感じなので、
改めてbrew file init
してもらえればそれ程問題ない、と思っています。
/usr/local/Libraryに置くとHomebrewのレポジトリで untrackなものとなってキモチワルイからそのうち変更したいな、 と思ってたので、調度良い機会、ということで。