Wednesday, September 18, 2013 Wednesday, March 20, 2013

How to fix missing psych warning in ruby 1.9.3 [p392]

Some days ago I was upgrading my ruby version to 1.9.3-p392 to work with the same patch level that Heroku. I got the following message when run bundle install.


$ bundle install
/Users/ancor/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.

To fix this warning we need to use rvm autolibs to install all missing packages including libyaml (check autolibs help page).


$ rvm help autolibs
# rvm_autolibs_flag

- 0 - disabled - 1 - use libs, do not install (default) - 2 - use libs, install if missing, fallback to 1 if brew not writable - 3 - 2 + install package manager if not available, also might call libraries upgrade - 4 - 3 + error out if brew not writable, no fallback
# invocation
- `rvm get head --autolibs=X` - preserve the option for any `rvm` invocation - `rvm install 1.9.3 --autolibs=X` - one time use for this `rvm` invocation

Reload rvm and reinstall ruby with the missing packages using rvm autolibs feature:


$ rvm get head --autolibs=4
....
$ rvm reinstall ruby-1.9.3-p392 --force --autolibs=4
....
$ bundle install

Easy. Then you shouldn’t see warning messages related to psych anymore with ruby 1.9.3-p392.

Saturday, December 17, 2011 Friday, December 16, 2011