ERROR: While executing gem ... (Errno::EPERM) Operation not permitted

RubyMacosRubygemsOsx ElcapitanCompass

Ruby Problem Overview


I just updated my Mac to OSX 10.11 El Capitan and some gems didn't remain.

The problem arose when I tried to run installations of different gems... e.g.:

> sudo gem install compass

Once I execute, I get the error:

> ERROR:  While executing gem ... (Errno::EPERM) Operation not permitted

This happens with other gems, as well...

I've run Homebrew and tried to install Ruby again, but nothing is working.

Ruby Solutions


Solution 1 - Ruby

I found the answer on SASS issues: https://github.com/sass/sass/issues/1768

Since OSX el Capitan there is a new security function that prevents you from modifying system files called Rootless. So you have 2 options:

  • If you install gems on /usr/local/bin there will be no problem because rootless doesn't affect this path.

  • sudo gem install -n /usr/local/bin GEM_NAME_HERE

Solution 2 - Ruby

You are experiencing this issue because of a new security feature called System Integrity Protection

You can disable SIP by following the process mentioned below:

  1. Reboot your Mac into Recovery Mode by restarting your computer and holding down Command+R until the Apple logo appears on your screen.
  2. Click Utilities > Terminal.
  3. In the Terminal window, type in csrutil disable and press Enter.
  4. Restart your Mac.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRoy CalderonView Question on Stackoverflow
Solution 1 - RubyRoy CalderonView Answer on Stackoverflow
Solution 2 - RubyAbid Ur RehmanView Answer on Stackoverflow