Help us understand the problem. What is going on with this article?

MacOS MojaveでシステムのRubyにインストールしてしまったGemを消す

More than 1 year has passed since last update.

久しぶりにRubyでなにか作ろうとしてシステムのRubyにGemをインストールたものの、消すときにエラーが出たのでメモ

こんなエラー

You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
you don't have write permissions for the /usr/bin directory. mac remove gems

sudoをつけてもだめ。

解決策

SIP システム整合性保護(System Integrity Protection)の無効化

Command+Rを押しながらMacを再起動してリカバリモードへ
「ユーティリティ」から「ターミナル」を開く
システムを変更するよみたいなダイアログが出るので、管理者になっているユーザのパスワードを入力。
だいたい自分のパスワードを入れるっぽい。

csrutil disable

そして再起動して、普通にシステムを起動して以下のコマンドでSIPが無効になったか確認

csrutil status
System Integrity Protection status: disabled.

と表示されればSIPが無効になったのでGemを消していく。

Gemの削除

今回はデフォルトで入ってるもの以外を消したかったので

sudo gem uninstall -axI `gem list --no-versions | egrep -v 'rdoc|psych|json|io-console|bigdecimal'

SIPを再度有効にする

Command+Rを押しながら再起動してリカバリモードへ。
SIPを無効にしたときと同じく、「ユーティリティ」から「ターミナル」を開いて

csrutil enable

そして再起動して普通にシステムを起動することで、再度SIPが有効になる。
一応有効になっているかターミナルを開いて確認するといいかもしれない。

csrutil status
System Integrity Protection status: enabled.

おわりに

SIPの効果として/usr/binあたりがrootでもいじれないみたい。
Rubyでなにかやるときはrbenvを使ってやっていこう。

参考サイト

画像で説明、macOS MojaveでSIPを無効にする方法 (csrutilコマンドの使い方)
gemを間違えてグローバルにインストールしてしまった場合

a_halka
羽田空港第2ターミナル50番台スポットから手荷物受け取りカウンターまでウォーキングの会主宰
https://cf6.in/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした