79

How do I install RubyGems on my Mac?

I tried to run $ gem install rubygems-update with no luck . It returns

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

Any help would be great. Thanks

Felix
  • 4,510
  • 2
  • 31
  • 46
Lex B
  • 791
  • 1
  • 6
  • 3

5 Answers5

126

I would highly suggest using a package manager and a Ruby Environment Manager.

On Mac:

brew update
brew install ruby

# If you use bash
echo 'export PATH=/usr/local/Cellar/ruby/2.4.1_1/bin:$PATH' >> ~/.bash_profile 

# If you use ZSH:
echo 'export PATH=/usr/local/Cellar/ruby/2.4.1_1/bin:$PATH' >> ~/.zprofile

You can do that but I suggest using an Environment Manager for Ruby. You have rbenv and RVM.
IMO go for rbenv:

brew install rbenv ruby-build

# bash
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile  

# zsh
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zprofile
echo 'eval "$(rbenv init -)"' >> ~/.zprofile  

# list all available versions:
rbenv install -l

# install a Ruby version:
rbenv install 2.4.1

# set ruby version for a specific dir
rbenv local 2.4.1

# set ruby version globally
rbenv global 2.4.1

rbenv rehash
gem update --system
melMass
  • 3,813
  • 1
  • 31
  • 30
  • Good point +1. That is why I am asking questions, I got the last command working by running it in a new shell (without running it as sudo). I am now trying to get my first package oauth installed with the newest gems 2.4.1, getting some odd LoadError [here](https://apple.stackexchange.com/questions/288148/loaderror-in-installing-packages-such-as-oauth-with-ruby-gems-why). – hhh Jun 27 '17 at 22:25
  • the first part of this answer works fine if you also immediately run the `export` command in the current shell. I have no interest in installing `rbenv` or `rvm`; I just need access to a public gem temporarily. Thanks! – Chaim Eliyah Mar 16 '18 at 05:02
  • 2
    On OSX, don't forget to log out of your OSX session and then log back in for the changes to your bash profile to take effect. So you don't have to search why this doesn't work and endup [here](https://stackoverflow.com/questions/10940736/rbenv-not-changing-ruby-version). – Chlind Jul 18 '18 at 03:22
  • I added this to my $PATH so I don't wonder what broke when ruby gets updated: /usr/local/Cellar/ruby/$(ls -1rt /usr/local/Cellar/ruby/ | tail -1)/bin – Bruce Edge Jun 10 '19 at 01:04
  • Everybody is telling me to install rbenv. I don't care about Ruby, I can do that. But does it affect how I use Ruby and run the commands in the gem (which are what I actually care about)? – William Entriken Apr 08 '20 at 16:46
16

One more variant is to use brew-gem.

https://formulae.brew.sh/formula/brew-gem

https://github.com/sportngin/brew-gem

Just copy/paste from the documentation:

brew install brew-gem

Usage

brew gem install heroku

To install a specific version: brew gem install heroku 3.8.3

To install using a brew installed ruby(/usr/local/bin/ruby): brew gem install heroku --homebrew-ruby

And with a specific version: brew gem install heroku 3.8.3 --homebrew-ruby

To upgrade: brew gem upgrade heroku

To uninstall: brew gem uninstall heroku

To check information: brew gem info heroku

Note: Installed gems are listed in brew list with prefix of gem-, like gem-heroku.

Olleg
  • 794
  • 7
  • 7
10

After installing cocoapods as Tulon suggested the thing which worked for me was passing the --user-install flag to the gem install command e.g

gem install rubygems-update --user-install

from https://guides.cocoapods.org/using/getting-started.html#sudo-less-installation

mrjamesmyers
  • 454
  • 4
  • 13
4

You may have to install manually in which case (as per the official website):

  1. Go to the official website and download the zip file
  2. Unzip the file in a directory.
  3. Then go to the directory in your terminal and run: ruby setup.rb
Sagar Pandya
  • 9,323
  • 2
  • 24
  • 35
3

It is showing that you don't have permission to write something in that directory. Instead, use this directory :

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

It works perfectly for me.

(I am using macOS Sierra, version 10.12.6)

Tulon
  • 4,011
  • 6
  • 36
  • 56