# How to use Ruby on the OS X machines

**URL:** <https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852>\
**Category:** Mobile\
**Tags:** ruby, rvm, rubyversionmanger, xcode\
**Created:** [November 3, 2016, 5:20am UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852 "2016-11-03T05:20:35Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![anon47539524](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@anon47539524](https://discuss.circleci.com/u/anon47539524)\
**Post date:** [November 3, 2016, 5:20am UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/1 "2016-11-03T05:20:35Z")

</div>

We just flipped the switch on our new OS X image which brings you a Ruby version manager in the form of [`chruby`](https://github.com/postmodern/chruby) and [`ruby-install`](https://github.com/postmodern/ruby-install).

Out of the box the system installed Ruby v2.0.0 is selected so if you want the latest and greatest version please specify it in your `circle.yml` like so:

```auto
dependencies:
  pre:
    - echo "2.3.1" > .ruby-version

```

or checking a `.ruby-version` file into your repo. You can easily create one by running the same command in your repos directory with `echo "2.3.1" > .ruby-version` and then check it in with `git add .ruby-version && git commit -am "Added .ruby-version file"`

The available versions out of the box are:

```auto
1. chruby --system
2. chruby 2.1.9
3. chruby 2.2.5
4. chruby 2.3.1

```

, but you can always install a newer version with [`ruby-install`](https://github.com/postmodern/ruby-install) like this:

```auto
dependencies:
  pre:
    - sudo ruby-install ruby --HEAD

```

If you run into any issues please feel free to let our support team know.

---

<div class="post-metadata">

**Author:** ![at-daonv](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/at-daonv/32/3530_2.png) [@at-daonv](https://discuss.circleci.com/u/at-daonv)\
**Post date:** [November 3, 2016, 7:07am UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/2 "2016-11-03T07:07:24Z")

</div>

Great updating!  
Now we can use this feature, right?

---

<div class="post-metadata">

**Author:** ![tflhyl](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/tflhyl/32/14524_2.png) [@tflhyl](https://discuss.circleci.com/u/tflhyl)\
**Post date:** [November 3, 2016, 7:18am UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/3 "2016-11-03T07:18:40Z")

</div>

Hi great feature, but chruby 2.3.1 doesnt seem to work for us

---

<div class="post-metadata">

**Author:** ![tflhyl](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/tflhyl/32/14524_2.png) [@tflhyl](https://discuss.circleci.com/u/tflhyl)\
**Post date:** [November 3, 2016, 7:36am UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/4 "2016-11-03T07:36:22Z")

</div>

seems like we need to run gem install bundler after chruby? but we get this

```
ERROR: While executing gem ... (Errno::EACCES)
    Permission denied - /Library/Ruby/Gems/2.0.0/gems/bundler-1.13.6/.codeclimate.yml

gem install bundler returned exit code 1

Action failed: gem install bundler
```

---

<div class="post-metadata">

**Author:** ![anon47539524](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@anon47539524](https://discuss.circleci.com/u/anon47539524)\
**Post date:** [November 3, 2016, 8:45am UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/5 "2016-11-03T08:45:03Z")

</div>

Yes you can. The new image is live on all our production machines.

---

<div class="post-metadata">

**Author:** ![anon47539524](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@anon47539524](https://discuss.circleci.com/u/anon47539524)\
**Post date:** [November 3, 2016, 8:45am UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/6 "2016-11-03T08:45:42Z")

</div>

Can you please open a support ticket? I’d like to take a closer look.

Thanks,  
Constantin

---

<div class="post-metadata">

**Author:** ![philfung](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/philfung/32/13263_2.png) [@philfung](https://discuss.circleci.com/u/philfung)\
**Post date:** [November 3, 2016, 2:42pm UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/7 "2016-11-03T14:42:05Z")

</div>

hi @anon47539524, i started getting a similar error last night on my OS X machine. seems unrelated to any code changes we made. Can I be updated on the results as well?

```
gem install bundler --pre
ERROR: While executing gem ... (Errno::EACCES)
    Permission denied - /Library/Ruby/Gems/2.0.0/gems/bundler-1.13.6/.codeclimate.yml

gem install bundler --pre returned exit code 1

Action failed: gem install bundler --pre
```

---

<div class="post-metadata">

**Author:** ![tflhyl](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/tflhyl/32/14524_2.png) [@tflhyl](https://discuss.circleci.com/u/tflhyl)\
**Post date:** [November 3, 2016, 2:47pm UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/8 "2016-11-03T14:47:02Z")

</div>

hey @philfung, @anon47539524 suggest workaround by doing something like `chruby 2.3.1 && bundle <command>`

---

<div class="post-metadata">

**Author:** ![Josh-Bruce](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/josh-bruce/32/14527_2.png) [@Josh-Bruce](https://discuss.circleci.com/u/Josh-Bruce)\
**Post date:** [November 3, 2016, 2:47pm UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/9 "2016-11-03T14:47:27Z")

</div>

Same for us as well. Build system has broken, working fine yesterday and not today, with the following similar error ☹

```
gem install shenzhen
ERROR: While executing gem ... (Errno::EACCES)
    Permission denied - /Library/Ruby/Gems/2.0.0/gems/shenzhen-0.14.2/Gemfile

gem install shenzhen returned exit code 1

Action failed: gem install shenzhen
```

---

<div class="post-metadata">

**Author:** ![philfung](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/philfung/32/13263_2.png) [@philfung](https://discuss.circleci.com/u/philfung)\
**Post date:** [November 3, 2016, 3:00pm UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/10 "2016-11-03T15:00:26Z")

</div>

thx a bunch @tflhyl , will give it a try!

---

<div class="post-metadata">

**Author:** ![philfung](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/philfung/32/13263_2.png) [@philfung](https://discuss.circleci.com/u/philfung)\
**Post date:** [November 3, 2016, 3:55pm UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/11 "2016-11-03T15:55:48Z")

</div>

@tflhyl your solutions works!

---

<div class="post-metadata">

**Author:** ![betzerra](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/betzerra/32/13320_2.png) [@betzerra](https://discuss.circleci.com/u/betzerra)\
**Post date:** [November 3, 2016, 8:08pm UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/12 "2016-11-03T20:08:56Z")

</div>

No luck

 ![](https://global.discourse-cdn.com/circleci/original/3X/c/a/ca2e7aa7bc8a16da5de66129c17a9d5a99a7f5f5.png)

---

<div class="post-metadata">

**Author:** ![boostworthy](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/boostworthy/32/13892_2.png) [@boostworthy](https://discuss.circleci.com/u/boostworthy)\
**Post date:** [November 3, 2016, 8:12pm UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/13 "2016-11-03T20:12:38Z")

</div>

@betzerra It looks like you missed an extra `&` there. It should be `chruby 2.2.5 && bundle install`.

---

<div class="post-metadata">

**Author:** ![boostworthy](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/boostworthy/32/13892_2.png) [@boostworthy](https://discuss.circleci.com/u/boostworthy)\
**Post date:** [November 3, 2016, 8:24pm UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/14 "2016-11-03T20:24:46Z")

</div>

Just to follow up on this, the temporary solution (as mentioned above) is to use `chruby 2.X.X` before **all** calls to anything Ruby related.

Example:

```auto
chruby 2.3.1 && gem install bundler
chruby 2.3.1 && bundle install
chruby 2.3.1 && bundle exec pod install

```

If you are using `rvm` and your project includes a `.ruby-version` file, you can also do `chruby $(cat .ruby-version | cut -d '-' -f 2)` rather than having to hardcode the value in your `circle.yml` file.

---

<div class="post-metadata">

**Author:** ![anon47539524](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@anon47539524](https://discuss.circleci.com/u/anon47539524)\
**Post date:** [November 4, 2016, 12:29am UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/15 "2016-11-04T00:29:31Z")

</div>

Hey,

please add `sudo` to your `gem install shenzhen` command.

Please excuse the inconvenience.

Constantin

---

<div class="post-metadata">

**Author:** ![anon47539524](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@anon47539524](https://discuss.circleci.com/u/anon47539524)\
**Post date:** [November 4, 2016, 12:49am UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/16 "2016-11-04T00:49:09Z")

</div>

For now please take a look at @boostworthy 's answer.

I’m working on a longterm fix and a short term one as I post this.

In the future you’ll be able to use simply put your preferred Ruby version in a `~/.ruby-version` file and chruby will pick that up by itself.

---

<div class="post-metadata">

**Author:** ![betzerra](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/betzerra/32/13320_2.png) [@betzerra](https://discuss.circleci.com/u/betzerra)\
**Post date:** [November 4, 2016, 2:42pm UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/17 "2016-11-04T14:42:14Z")

</div>

AH! Thanks! I missed that 😃 😃 😃

---

<div class="post-metadata">

**Author:** ![josephsromero](https://avatars.discourse-cdn.com/v4/letter/j/e9c0ed/32.png) [@josephsromero](https://discuss.circleci.com/u/josephsromero)\
**Post date:** [November 4, 2016, 3:48pm UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/18 "2016-11-04T15:48:28Z")

</div>

Could this update have impacted the way OSX installs code signing credentials? We are currently not finding the valid identities even though our last build yesterday found it no problem.

Currently getting this all throughout that step.

chruby: unknown Ruby: ruby-2.2.4

---

<div class="post-metadata">

**Author:** ![tristandl](https://avatars.discourse-cdn.com/v4/letter/t/7c8e57/32.png) [@tristandl](https://discuss.circleci.com/u/tristandl)\
**Post date:** [November 4, 2016, 11:57pm UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/19 "2016-11-04T23:57:42Z")

</div>

Did anyone test this? Because every line in circle.yml runs in its own shell, I had to prefix every step of ours that used ruby with chruby 2.3.1; export PATH; and then it worked

---

<div class="post-metadata">

**Author:** ![tristandl](https://avatars.discourse-cdn.com/v4/letter/t/7c8e57/32.png) [@tristandl](https://discuss.circleci.com/u/tristandl)\
**Post date:** [November 5, 2016, 12:00am UTC](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852/20 "2016-11-05T00:00:57Z")

</div>

It’s pretty disappointing to have a feature like this counted as shipped and a blog post written about how to use it, when it doesn’t work and breaks all our builds and deployments. Maybe test this and do an opt-in roll out rather than breaking everything next time

[Next page](https://discuss.circleci.com/t/how-to-use-ruby-on-the-os-x-machines/7852.md?page=2)
