Heroku Bundle Error (Rails App)

2020-02-06 03:12发布

i'm new to Ruby on Rails, app is running on local machine

local bundle works

however when i try to git push heroku master, this is the error i get:

remote: 
remote: -----> Ruby/Rails app detected
remote: -----> Using Ruby version: ruby-1.9.3
remote: -----> Installing dependencies using 
remote:        Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
remote:        /usr/bin/env: ruby1.9.1: No such file or directory
remote:  !
remote:  !     Failed to install gems via Bundler.
remote:  !
remote:  !     Heroku push rejected, failed to compile Ruby/rails app
remote: 

my gemfile:

source 'http://rubygems.org'
ruby '1.9.3' 
gem 'rails', '4.0.0.beta1'

group :development, :test do
  gem 'sqlite3'
  gem 'rspec-rails'
end

group :assets do
  gem 'sass-rails',   '~> 4.0.0.beta1'
  gem 'coffee-rails', '~> 4.0.0.beta1'

  gem 'therubyracer', platforms: :ruby

  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

gem 'turbolinks'
gem 'jbuilder', '~> 1.0.1'
group :test do
  gem 'capybara'
end

group :production do
  gem 'pg'
end

what am i missing? thanks in advance!

2条回答
混吃等死
2楼-- · 2020-02-06 03:41

I had a similar problem. The issue is that Bundler is generating stubs. Rails 4 apps do not store stubs in the app's bin/ directory. In order to fix this problem you need to use the following commands:

$ bundle config --delete bin

Then you need to update the bin directory to use the new Rails 4 executables

$ rake rails:update:bin

Then add the new bin/ directory to your version control using:

$ git add bin

Commit the changes and push your code to Heroku

查看更多
家丑人穷心不美
3楼-- · 2020-02-06 03:42

the issue is with your ruby PATH. so first see what happens when you run

$ heroku run "ruby -v"
Running `ruby -v` attached to terminal... up, run.8734
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]

Do you get similar output? If not, then check your path.

$ heroku config -s | grep PATH
GEM_PATH=vendor/bundle/ruby/1.9.1
PATH=bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin

notice, how bin is in the path. in case its missing from yours, you can manually set PATH and add the bin by following command.

$ heroku config:set PATH=bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin
查看更多
登录 后发表回答