とある学生の適当記録

どこにでもいそうなとある学生の気になったことまとめ。つらつらと個人的なことを書いていきます

El CapitanでHomebrewのupdateをする

先日無事にOS を10.11にしたのですが1週間程使ってみて個人的には結構使いやすいと思います!


特に画面分割ライブ変換は学生の私にとってはレポートなどの文章作成の作業効率がぐんと上がり

とてもお世話になってます





さて今日はどうしたかというとMacで最近人気のパッケージ管理のHomebrewさん、なんとupdateできないじゃないですか

ということで解決策を調べたのでメモとして残しておきます




原因

こちらの記事

nyakamyu.hatenablog.com

と原因は同じなのですがSIP(別名rootless)というセキュリティにより一部のディレクトリ(/System, /bin, /sbin, /usr)への書き込みができなくなったことが考えられます

Homebrewは/usr/local以下に書き込みを行うので都合があまり良くないというわけです




原因は人によって変わってくると思うので自分がやったもののみ書いておきます
全部行う必要もあるかもしれないですし一部だけ行う場合も、もしかしたら解決しないかもしれませんがあしからず...

パーミッションの設定を行う

/usr/localの所有権を書き換えておくといいみたいです
ターミナルを開いて以下を実行

$ sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local

※上記は/usr/localがある場合です。もし何らかの影響でディレクトリがない場合は次の方法でディレクトリを作成してみてください


1.リカバリーモード(⌘とRを押しながら起動)で起動し、ターミナルを立ち上げる

2.ターミナルで以下を実行

csrutil disable

3.電源を切って通常に起動する

4.ターミナルを開いて以下を実行

$ sudo mkdir /usr/local && sudo chflags norestricted /usr/local && sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local

5. リカバリーモードで起動し、ターミナルを立ち上げる

6. ターミナルで以下を実行

csrutil enable

7. 電源を切って通常に起動する(/usr/localができていることを確認する)

こちらをもとにしたので(英語)きになる方は見てみてください

github.com


リポジトリをget reset
error: The following untracked working tree files would be overwritten by merge:

のようなエラーが出た場合、ターミナルで以下を実行

$ cd `brew --prefic`
$ git fetch origin
$ git reset --hard origin/master



Homebrew自体のアップデートを久々行ったのでその後のbrew upgradeでめちゃくちゃ時間かかりました。。。

また何かあれば追記していきます