macOS High SierraにCocoaPodsをインストールするためにRubyGemsをインストールする

macOS High Sierraをクリーンインストールしたので、CocoaPodsを入れるために、まずはRubyGemsをインストールして、

sudo ruby setup.rb

を実行したところ、以下のエラーが発生。

Operation not permitted @ rb_sysopen – /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem

どうやら、macOSのSystem Integrity Protection(SIP、rootless)という機能が原因らしい。

ということで、gemとCocoaPodsをインストールするために一旦rootlessを解除することに。
以下手順。なお、手順の中で、PCの再起動を行います。なので、今使用しているPCを再起動する必要がある場合は、このページを見れなくなってしまうので、スマホか別PCでこのページを見るか、画面を撮影してしまおう。このページへのQRコードを貼っておきます。

1. macを一旦終了して、cmd + Rを押しながらmac起動で、リカバリモードへ。りんごマークが表示されたらcmd + Rは離してOK。

2. 上のメニューバーから、ターミナルを起動し、ターミナル上で、以下コマンドを実行して、rootlessをオフ(再起動後に反映)。

csrutil disable

3. 上のメニューバーから、OSを再起動。

4. 起動したら、ターミナルを開き、RubyGemsのサイトにある通り、RubyGemsをダウンロードした後、以下コマンドでgemインストール。

sudo ruby setup.rb

5. で、RubyGemsのインストールはできたので、このまま引き続き、CocoaPodsもインストールする。(たぶん、/usr/binディレクトリが絡むから、rootlessが有効な状態だと、CocoaPodsも普通にはインストールできないんじゃないかと思う。)

sudo gem install cocoapods

6. で、CocoaPodsまでインストール終わったら、今度はrootlessを再びオンにするために、(1.)と同じ手順でリカバリモードへ。

7. ターミナルを起動し、以下コマンドを実行して、rootlessをオン(再起動後に反映)。

csrutil enable

8. OS再起動。

9. なお、以下コマンドで現在の状況を確認できる。

csrutil status

オフになっている場合

$ csrutil status
System Integrity Protection status: disabled.

オンになっている場合

$ csrutil status
System Integrity Protection status: enabled.
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

メインはWeb系エンジニアです。

コメント

コメントする

目次