简体   繁体   中英

Heroku with rails 4 app fails to install gems via Bundler

I have seen a lot of questions along these same lines but I have tried bundle updating and committing the updated Gemfile.lock with no success. Here is the output when I try to push to my heroku git repo:

-----> Ruby app detected
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-1.9.3-jruby-1.7.4
-----> Installing JVM: openjdk7-latest
-----> Installing dependencies using Bundler version 1.3.2
       Ruby version change detected. Clearing bundler cache.
       Old: jruby 1.7.4 (1.9.3p392) 2013-07-24 fffffff on OpenJDK 64-Bit Server VM 1.7.0_25-b30 [linux-amd64]
       New: jruby 1.7.4 (1.9.3p392) 2013-07-24 fffffff on OpenJDK 64-Bit Server VM 1.7.0_45-b31 [linux-amd64]
       Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
       Picked up JAVA_TOOL_OPTIONS: -Djava.rmi.server.useCodebaseOnly=true
       You are trying to install in deployment mode after changing
       your Gemfile. Run `bundle install` elsewhere and add the
       updated Gemfile.lock to version control.
       You have added to the Gemfile:
       * source: git://github.com/gregbell/active_admin.git (at master)
       You have deleted from the Gemfile:
       * source: https://github.com/gregbell/active_admin.git (at master)
       You have changed in the Gemfile:
       * activeadmin from `git://github.com/gregbell/active_admin.git (at master)` to
       `no specified source`
       Bundler Output: Picked up JAVA_TOOL_OPTIONS: -Djava.rmi.server.useCodebaseOnly=true
       You are trying to install in deployment mode after changing
       your Gemfile. Run `bundle install` elsewhere and add the
       updated Gemfile.lock to version control.

       You have added to the Gemfile:
       * source: git://github.com/gregbell/active_admin.git (at master)

       You have deleted from the Gemfile:
       * source: https://github.com/gregbell/active_admin.git (at master)

       You have changed in the Gemfile:
       * activeadmin from `git://github.com/gregbell/active_admin.git (at master)` to
       `no specified source`
 !
 !     Failed to install gems via Bundler.
 !

 !     Push rejected, failed to compile Ruby app

Does anyone have any insight into why this might be failing? The lines showing a change in active_admin haven't been updated since a long time ago and pushes have been made to heroku since then.

Also in regards to You are trying to install in deployment mode after changing your Gemfile I have run bundle install and added my Gemfile.lock and pushed multiple times. A view of running git status in my project:

# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
# .ruby-version
# app/assets/stylesheets/_base.scss
# app/assets/stylesheets/_colors.scss
# app/assets/stylesheets/_footer.scss
# app/assets/stylesheets/_forms.scss
# app/assets/stylesheets/_header.scss
# app/assets/stylesheets/_icons.scss
# app/assets/stylesheets/_k.scss
# app/assets/stylesheets/_k_mixins.scss
# app/assets/stylesheets/_k_ratings.scss
# app/assets/stylesheets/_project_windows.scss
# app/assets/stylesheets/_reset.scss
# app/assets/stylesheets/application.scss
# app/assets/stylesheets/ie_fixes.scss
# app/assets/stylesheets/mixins.scss
nothing added to commit but untracked files present (use "git add" to track)

and my .gitignore:

# See http://help.github.com/ignore-files/ for more about ignoring files.
#
# If you find yourself ignoring temporary files generated by your text editor
# or operating system, you probably want to add a global ignore instead:
#   git config --global core.excludesfile '~/.gitignore_global'

# Ignore bundler config.
/.bundle

# Ignore the default SQLite database.
/db/*.sqlite3
/db/*.sqlite3-journal

# Ignore all logfiles and tempfiles.
/log/*.log
/tmp

# Ignore database config file
database.yml

*.iml
.rvmrc
.idea

If you're using a prerelease version of Bundler 1.4 when you run bundle on your local machine, you are running into an issue where the URLs for github gems changed from using the git protocol to https : https://github.com/bundler/bundler/issues/2600

To solve this, you should either update to a more-recent pre-release of Bundler 1.4 locally (by running gem install --pre bundler or remove the Bundler 1.4 prerelease and use 1.3.x.

This problem is bacause you commit bad (old) Gemfile.lock to heroku server. You need to update Gemfile.lock on heroku after adding/removing gems.

Do following steps:

  1. save HEROKU_APP_NAME of existing heroku app ( HEROKU_APP_NAME.herokuapp.com )
  2. remove heroku application from https://dashboard.heroku.com/apps and create new one
  3. rename new heroku app to old HEROKU_APP_NAME
  4. remove Gemfile.lock from your git repo
  5. remove Gemfile.lock form your local project and form .gitignore (if it exist there)
  6. run bundle install
  7. commit changes to git repo ( new created Gemfile.lock )
  8. run git push heroku master

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM