Can not install Cocoapods with RubyGem 2.7.1

cocoapodsfailed-installationrubygems

My Cocoapods did not work, therefore I did the following command:

  1. run this bash script to remove all the relevant gems:

    for i in $( gem list --local --no-version | grep cocoapods );
    do 
        sudo gem uninstall $i; 
    done
    
  2. delete ~/.cocoapods to remove the cache of podspecs.:

    rm -rf ~/.cocoapods/
    
  3. update rubygem:

    sudo gem update --system
    
  4. reinstall cocoapods:

    sudo gem install cocoapods
    

Then I got file permission deny error message in Step3 and Step 4:

Step3 error message:


Done installing documentation for rubygems-update after 0 seconds
Installing RubyGems 2.7.1
ERROR: While executing gem … (Errno::EPERM)
Operation not permitted @ rb_sysopen –
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem

Step4 error message:
Fetching: cocoapods-core-1.3.1.gem (100%)
Successfully installed cocoapods-core-1.3.1
Fetching: cocoapods-deintegrate-1.0.1.gem (100%)
Successfully installed cocoapods-deintegrate-1.0.1
Fetching: cocoapods-downloader-1.1.3.gem (100%)
Successfully installed cocoapods-downloader-1.1.3
Fetching: cocoapods-plugins-1.0.0.gem (100%)
Successfully installed cocoapods-plugins-1.0.0
Fetching: cocoapods-search-1.0.0.gem (100%)
Successfully installed cocoapods-search-1.0.0
Fetching: cocoapods-stats-1.0.0.gem (100%)
Successfully installed cocoapods-stats-1.0.0
Fetching: cocoapods-trunk-1.3.0.gem (100%)
Successfully installed cocoapods-trunk-1.3.0
Fetching: cocoapods-try-1.1.0.gem (100%)
Successfully installed cocoapods-try-1.1.0
ERROR: While executing gem … (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.

I have limited knowledge about Linux/OSX file sysem, and do not know what was wrong.

Here are information about my computer:

  1. OS:

    macOS High Sierra 10.13.1

  2. Xcode:

    Version 9.0.1 (9A1004)
    I also have XCode 7.3.1 renamed as Xcode_7 in the Applications Folder

  3. Environment path:

    echo $PATH
    

    /Library/Frameworks/Python.framework/Versions/3.4/bin:
    /usr/local/bin:
    /usr/bin:
    /bin:
    /usr/sbin:
    /sbin:
    /opt/X11/bin:
    /Applications/Server.app/Contents/ServerRoot/usr/bin:
    /Applications/Server.app/Contents/ServerRoot/usr/sbin

  4. Homebrew:

    brew --version
    

    Homebrew 1.3.6
    Homebrew/homebrew-core (git revision 985b; last commit 2017-11-07)

    brew list
    

    cmake libxml2 ninja pkg-config readline wget
    gdbm libyaml openssl python3 sqlite xz

  5. RubyGems:

    gem --version
    

    2.7.1

    gem list
    

    * LOCAL GEMS *
    activesupport (5.1.4, 4.2.10)
    bigdecimal (1.3.2, default: 1.2.8)
    CFPropertyList (2.3.5, 2.2.8)
    claide (1.0.2)
    colored2 (3.1.2)
    concurrent-ruby (1.0.5)
    did_you_mean (1.0.0)
    escape (0.0.4)
    fourflusher (2.0.1)
    fuzzy_match (2.1.0, 2.0.4)
    gh_inspector (1.0.3)
    i18n (0.9.1)
    io-console (0.4.6, default: 0.4.5)
    json (2.1.0, default: 1.8.3)
    libxml-ruby (3.0.0, 2.9.0)
    mini_portile2 (2.3.0)
    minitest (5.10.3)
    molinillo (0.6.4, 0.5.7)
    nanaimo (0.2.3)
    nap (1.1.0)
    net-telnet (0.1.1)
    netrc (0.11.0)
    nokogiri (1.5.6)
    power_assert (1.1.1)
    psych (2.2.4, default: 2.1.0)
    rake (12.2.1, 10.4.2)
    rdoc (5.1.0, default: 4.2.1)
    ruby-macho (1.1.0)
    rubygems-update (2.7.1)
    sqlite3 (1.3.11)
    test-unit (3.2.6)
    thread_safe (0.3.6)
    tzinfo (1.2.4)
    xcodeproj (1.5.3)

Best Answer

This ended up working for me.

Also got the Ruby reinstall error from running sudo gem update --system

ERROR:  While executing gem ... (Errno::EPERM)
            Operation not permitted @ rb_sysopen - 
        /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem

I then tried to execute the same command (sudo gem update --system) again and got Latest version already installed. Done.

Instead of running

sudo gem install cocoapods

try

sudo gem install -n /usr/local/bin cocoapods

Which ended up working for me! Didn't clean the previous cocoapods with the bash-script like you're doing in step 1 though but shouldn't make a difference as you do a reinstall.

Related Topic