I just updated an instance from ruby 1.9.3 to 2.2.2.
I had two issues during cap rubber:bootstrap and I had to tweak the config files to resolve:
I. fastthread gem would not compile: unintialized constant Config
Cause: Ruby 2.2 no longer using Config (replaced by RbConfig)
Resolution: remove fastthread from gem dependency in rubber-passenger.yml
gems: [fastthread, rack, [passenger, "#{passenger_version}"]]
changed to
gems: [rack, [passenger, "#{passenger_version}"]]
Fortunately, passenger hasn't required fastthread since 4.0
II. Invalid apache configuration
Message: WARNING:
The configuration file seems to be broken! Please double-check it by running:
/usr/sbin/apache2ctl -t
Upon inspection of /etc/apache2/mods-enabled/passenger.conf I noticed that passenger_root was not correct (it was blank actually). Looks like the find command intended to determine passenger_root (in config/rubber/rubber-passenger.yml) returned TWO directories instead of one. I made the following change:
passenger_root: "#{`bash -l -c 'find #{ruby_path} -name passenger-#{passenger_version}'`.strip}"
changed to:
passenger_root: "#{`bash -l -c 'find #{ruby_path} -name passenger-#{passenger_version} | grep -v extensions'`.strip}"