operation not permittedが発生する場合の対処法

f:id:daihase:20190809102605p:plain

こんばんは、daihaseです。

先日新しいMacBookProを新調したのですが、その際タイトルにある問題が発生したのでその時の対処法をメモ。

自分の場合はcarthageで、gccのシンボリックリンクを/usr/bin/gccに対して貼ろうとコマンドを叩く際にタイトルのエラーが出てしまいました。

sudoで実行してるのにも関わらず...

 

これは「rootless」という仕組みによるもので、これによってMacでは/usr/や/System/といった特定のパスに対して書き込みが行えないようになっています。

これを無効にするためには以下を実行。

 

  1. まず、Macを再起動し「command+R」でリカバリーモード立ち上げ
  2. 画面上部のメニューから「terminal」を選択し起動
  3. csrutil statusと入力。System Integrity Protection status: enabled.と出るはずなので、これをdisableに変更する。 csrutil disableと改めて入力。
  4. 最後に成功したらrebootと入力し再起動。

 

あとは通常通り起動するので、先ほどエラーが出て怒られたコマンドも無事通るようになると思います。

それでは良い開発ライフを〜