Hi,
I’m using the chruby 0.2.1 cookbook to install Ruby on a server.
I’m going to run a Rails application there, but bundle install fails to compile the pg gem. Since I can compile the gem just fine in the shell, my guess is that bundle is running with the system Ruby.
I tried to use the bundle_command attribute like such:
application “rails_app” do
…
rails do
bundler true
bundle_command ". /etc/profile.d/chruby.sh && bundle install --binstubs"
end
end
but that fails:
---- Begin output of . /etc/profile.d/chruby.sh && bundle install --binstubs install --path=vendor/bundle --deployment --without development test cucumber staging ----
STDOUT:
STDERR: sh: 1: /etc/profile.d/chruby.sh: source: not found
sh: 2: /etc/profile.d/chruby.sh: source: not found
sh: 3: /etc/profile.d/chruby.sh: Syntax error: word unexpected (expecting “)”)
---- End output of . /etc/profile.d/chruby.sh && bundle install --binstubs install --path=vendor/bundle --deployment --without development test cucumber staging ----
Ran . /etc/profile.d/chruby.sh && bundle install --binstubs install --path=vendor/bundle --deployment --without development test cucumber staging returned 2
I’ve also tried to source /usr/local/chruby/share/chruby/chruby.sh directly, but that also fails with similar errors.
What’s the best approach to correcting this problem?
Thanks!
On Wednesday, July 10, 2013 at 6:32 AM, Cassiano Leal wrote:
Hi,
I’m using the chruby 0.2.1 cookbook to install Ruby on a server.
I’m going to run a Rails application there, but bundle install fails to compile the pg gem. Since I can compile the gem just fine in the shell, my guess is that bundle is running with the system Ruby.
I tried to use the bundle_command attribute like such:
application “rails_app” do
...
rails do
bundler true
bundle_command ". /etc/profile.d/chruby.sh && bundle install --binstubs"
end
end
but that fails:
---- Begin output of . /etc/profile.d/chruby.sh && bundle install --binstubs install --path=vendor/bundle --deployment --without development test cucumber staging ----
STDOUT:
STDERR: sh: 1: /etc/profile.d/chruby.sh: source: not found
sh: 2: /etc/profile.d/chruby.sh: source: not found
sh: 3: /etc/profile.d/chruby.sh: Syntax error: word unexpected (expecting ")")
---- End output of . /etc/profile.d/chruby.sh && bundle install --binstubs install --path=vendor/bundle --deployment --without development test cucumber staging ----
Ran . /etc/profile.d/chruby.sh && bundle install --binstubs install --path=vendor/bundle --deployment --without development test cucumber staging returned 2
I’ve also tried to source /usr/local/chruby/share/chruby/chruby.sh (http://chruby.sh) directly, but that also fails with similar errors.
What’s the best approach to correcting this problem?
Thanks!
Ugly hack that should work is to wrap your bundle command in bash -c. According to the README chruby supports bash or zsh, I'm guessing the basic bourne shell (/bin/sh) doesn't work.
I'm not familiar with the application cookbook, so I don't know what's involved in making it support running bundle_command in bash.
--
Daniel DeLeo
Hi,
Thanks for your answer. That’s on an Ubuntu machine where the default shell is dash.
I went ahead and changed the /bin/sh symlink to point to bash and it works now.
Thanks,
Cassiano Leal
On Friday, July 12, 2013 at 12:20, Daniel DeLeo wrote:
On Wednesday, July 10, 2013 at 6:32 AM, Cassiano Leal wrote:
Hi,
I’m using the chruby 0.2.1 cookbook to install Ruby on a server.
I’m going to run a Rails application there, but bundle install fails to compile the pg gem. Since I can compile the gem just fine in the shell, my guess is that bundle is running with the system Ruby.
I tried to use the bundle_command attribute like such:
application “rails_app” do
...
rails do
bundler true
bundle_command ". /etc/profile.d/chruby.sh && bundle install --binstubs"
end
end
but that fails:
---- Begin output of . /etc/profile.d/chruby.sh && bundle install --binstubs install --path=vendor/bundle --deployment --without development test cucumber staging ----
STDOUT:
STDERR: sh: 1: /etc/profile.d/chruby.sh: source: not found
sh: 2: /etc/profile.d/chruby.sh: source: not found
sh: 3: /etc/profile.d/chruby.sh: Syntax error: word unexpected (expecting ")")
---- End output of . /etc/profile.d/chruby.sh && bundle install --binstubs install --path=vendor/bundle --deployment --without development test cucumber staging ----
Ran . /etc/profile.d/chruby.sh && bundle install --binstubs install --path=vendor/bundle --deployment --without development test cucumber staging returned 2
I’ve also tried to source /usr/local/chruby/share/chruby/chruby.sh (http://chruby.sh) directly, but that also fails with similar errors.
What’s the best approach to correcting this problem?
Thanks!
Ugly hack that should work is to wrap your bundle command in bash -c. According to the README chruby supports bash or zsh, I'm guessing the basic bourne shell (/bin/sh) doesn't work.
I'm not familiar with the application cookbook, so I don't know what's involved in making it support running bundle_command in bash.
--
Daniel DeLeo