I finished setting up OAuth in my app, but I can't seem to push to Heroku. There is a gem dependency that was installed (and everything works locally), but Heroku rejects the push.
I have tried deleted my .lock file, .bundle, and have tried bundle update as well. Heroku will not accept the push
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-2.5.3
remote: -----> Installing dependencies using bundler 1.15.2
remote: Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
remote: Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.17.1). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote: Fetching gem metadata from https://rubygems.org/........
remote: Fetching version metadata from https://rubygems.org/..
remote: Fetching dependency metadata from https://rubygems.org/.
remote: Could not find multipart-post-2.0.0 in any of the sources
remote: Bundler Output: Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.17.1). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote: Fetching gem metadata from https://rubygems.org/........
remote: Fetching version metadata from https://rubygems.org/..
remote: Fetching dependency metadata from https://rubygems.org/.
remote: Could not find multipart-post-2.0.0 in any of the sources
remote:
remote: !
remote: ! Failed to install gems via Bundler.
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
The gem is supposed to be multipart-post (version 2.0.0), but for some reason it is including the version as part of the gem file. Any thoughts?
You can see the RubyGems site & use proper version format such as
gem 'multipart-post', '~> 2.0'
and again commit lifecycle & see what happens
Related
I try to push my project on heroku and error message pop outs
git push heroku master
remote: -----> Building on the Heroku-18 stack
remote: -----> Using buildpack: heroku/ruby
remote: -----> Ruby app detected
remote: -----> Installing bundler 2.2.11
remote: -----> Removing BUNDLED WITH version in the Gemfile.lock
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-2.6.3
remote: -----> Installing dependencies using bundler 2.2.11
remote: Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4
remote: Fetching gem metadata from https://rubygems.org/............
remote: **Your bundle is locked to mimemagic (0.3.5), but that version could not be found**
remote: in any of the sources listed in your Gemfile. If you haven't changed sources,
remote: that means the author of mimemagic (0.3.5) has removed it. You'll need to update
remote: your bundle to a version other than mimemagic (0.3.5) that hasn't been removed
remote: in order to install.
remote: Bundler Output: Fetching gem metadata from https://rubygems.org/............
remote: Your bundle is locked to mimemagic (0.3.5), but that version could not be found
remote: in any of the sources listed in your Gemfile. If you haven't changed sources,
remote: that means the author of mimemagic (0.3.5) has removed it. You'll need to update
remote: your bundle to a version other than mimemagic (0.3.5) that hasn't been removed
remote: in order to install.
remote:
remote: !
remote: ! Failed to install gems via Bundler.
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: !
I guess the problem is caused by rails gem mimemagic's version is out of date so I try to update to the latest version, it still doesn't work.
Here's my ruby, Rails, mimemagic version
ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]
rails -v
Rails 6.1.3.1
bundle info mimemagic
* mimemagic (0.4.3)
information in Gemfile
gem 'rails', '~> 6.1', '>= 6.1.0'
gem 'bundler', '~> 2.2', '>= 2.2.1.1'
gem 'mimemagic', '~> 0.4.3'
in Gemfile.lock
mimemagic (~> 0.4.3)
run bundle update mimemagic worked for me
Change version of mimemagic to 0.3.10 in your Gemfile
Mimemagic seems to be experiencing updates? hopefully will be fixed soon. Try changing mimemagic to previous version for now..
Gemfile:
gem 'mimemagic', '~> 0.3.10'
Running bundle update will automatically update every dependency on your app to the latest version
I'm trying to upload a Rails 5.2 Application in Heroku however, I'm unable to deploy it. I am using Rails 5.2 and Ruby ruby '2.5.1'
Below are the logs request your kind assistance.
Thanks!
Peeyushs-MacBook-Air: peeyushverma$ git push heroku master
Counting objects: 1642, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1588/1588), done.
Writing objects: 100% (1642/1642), 8.01 MiB | 257.00 KiB/s, done.
Total 1642 (delta 684), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-2.5.1
remote: -----> Installing dependencies using bundler 1.15.2
remote: Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
remote: Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.17.1). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote: Fetching gem metadata from http://rubygems.org/...........
remote: Fetching gem metadata from https://rubygems.org/...........
remote: Fetching version metadata from http://rubygems.org/..
remote: Fetching version metadata from https://rubygems.org/..
remote: Fetching dependency metadata from http://rubygems.org/.
remote: Fetching dependency metadata from https://rubygems.org/.
remote: Could not find rails-assets-jquery-3.3.1 in any of the sources
remote: Bundler Output: Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.17.1). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote: Fetching gem metadata from http://rubygems.org/...........
remote: Fetching gem metadata from https://rubygems.org/...........
remote: Fetching version metadata from http://rubygems.org/..
remote: Fetching version metadata from https://rubygems.org/..
remote: Fetching dependency metadata from http://rubygems.org/.
remote: Fetching dependency metadata from https://rubygems.org/.
remote: Could not find rails-assets-jquery-3.3.1 in any of the sources
remote:
remote: !
remote: ! Failed to install gems via Bundler.
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to.
remote:
To https://git.heroku.com/.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/.git'
In your assets/javascripts/application.js, try to replace //=require jquery with //=require jquery3
I think you should remove //=require jquery or //=require jquery3 from assets/javascripts/application.js and use rails default //= require rails-ujs and try to deploy again.
I am totally new to Git and Ruby on Rails and I'm doing the "The Odin Project", but I've got stucked.
I am trying to deploy the application I've created, using Git to push the master branch up to Heroku.
When I run the command "git push heroku master" I get this log with the follwing mistakes, what it may be?
matteo#matteo-VirtualBox:~/railsbridge/hello_app$ git push heroku master
Counting objects: 90, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (76/76), done.
Writing objects: 100% (90/90), 22.03 KiB | 0 bytes/s, done.
Total 90 (delta 6), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: ! Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used.
remote: Detected buildpacks: Ruby,Node.js
remote: See https://devcenter.heroku.com/articles/buildpacks#buildpack-detect-order
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-2.3.4
remote: -----> Installing dependencies using bundler 1.15.2
remote: Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
remote: Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.15.4). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote: Fetching gem metadata from https://rubygems.org/.........
remote: Fetching version metadata from https://rubygems.org/..
remote: Fetching dependency metadata from https://rubygems.org/.
remote: Fetching rake 12.1.0
remote: Installing concurrent-ruby 1.0.5
remote: Fetching minitest 5.10.3
....
remote: Installing turbolinks 5.0.1
remote: Fetching activesupport 5.1.4
remote: The latest bundler is 1.16.0.pre.3, but you are currently running 1.15.2.
remote: To update, run `gem install bundler --pre`
remote: Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
remote: current directory:
remote: /tmp/build_c400101f4282a4c7d4222ce20d2d35b2/vendor/bundle/ruby/2.3.0/gems/sqlite3-1.3.13/ext/sqlite3
remote: /tmp/build_c400101f4282a4c7d4222ce20d2d35b2/vendor/ruby-2.3.4/bin/ruby -r
remote: ./siteconf20171015-278-1swne7x.rb extconf.rb
remote: checking for sqlite3.h... no
remote: sqlite3.h is missing. Try 'brew install sqlite3',
remote: 'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
remote: and check your shared library search path (the
remote: location where your sqlite3 shared library is located).
remote: *** extconf.rb failed ***
remote: Could not create Makefile due to some reason, probably lack of necessary
remote: libraries and/or headers. Check the mkmf.log file for more details. You may
remote: need configuration options.
remote: Provided configuration options:
remote: --with-opt-dir
remote: --srcdir=.
remote: --curdir
remote: --ruby=/tmp/build_c400101f4282a4c7d4222ce20d2d35b2/vendor/ruby-2.3.4/bin/$(RUBY_BASE_NAME)
remote: --with-sqlite3-config
remote: --without-sqlite3-config
remote: --without-sqlite3-lib=${sqlite3-dir}/lib
remote: To see why this extension failed to compile, please check the mkmf.log which can
remote: be found here:
remote: /tmp/build_c400101f4282a4c7d4222ce20d2d35b2/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/sqlite3-1.3.13/mkmf.log
remote: extconf failed, exit code 1
remote: Gem files will remain installed in
remote: /tmp/build_c400101f4282a4c7d4222ce20d2d35b2/vendor/bundle/ruby/2.3.0/gems/sqlite3-1.3.13
remote: for inspection.
remote: Results logged to
remote: /tmp/build_c400101f4282a4c7d4222ce20d2d35b2/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/sqlite3-1.3.13/gem_make.out
remote: An error occurred while installing sqlite3 (1.3.13), and Bundler cannot
remote: continue.
remote: Make sure that `gem install sqlite3 -v '1.3.13'` succeeds before bundling.
remote: In Gemfile:
remote: sqlite3
remote: Bundler Output: Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.15.4). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote: Fetching gem metadata from https://rubygems.org/.........
remote: Fetching version metadata from https://rubygems.org/..
remote: Fetching dependency metadata from https://rubygems.org/.
remote: Fetching rake 12.1.0
remote: Fetching concurrent-ruby 1.0.5
1.4
remote: Fetching rb-inotify 0.9.10
remote: Installing rb-inotify 0.9.10
remote: The latest bundler is 1.16.0.pre.3, but you are currently running 1.15.2.
remote: To update, run `gem install bundler --pre`
remote: Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
remote:
remote: current directory:
remote: /tmp/build_c400101f4282a4c7d4222ce20d2d35b2/vendor/bundle/ruby/2.3.0/gems/sqlite3-1.3.13/ext/sqlite3
remote: /tmp/build_c400101f4282a4c7d4222ce20d2d35b2/vendor/ruby-2.3.4/bin/ruby -r
remote: ./siteconf20171015-278-1swne7x.rb extconf.rb
remote: checking for sqlite3.h... no
remote: sqlite3.h is missing. Try 'brew install sqlite3',
remote: 'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
remote: and check your shared library search path (the
remote: location where your sqlite3 shared library is located).
remote: *** extconf.rb failed ***
remote: Could not create Makefile due to some reason, probably lack of necessary
remote: libraries and/or headers. Check the mkmf.log file for more details. You may
remote: need configuration options.
remote:
remote: Provided configuration options:
remote: --with-opt-dir
remote: --without-opt-dir
remote: --ruby=/tmp/build_c400101f4282a4c7d4222ce20d2d35b2/vendor/ruby-2.3.4/bin/$(RUBY_BASE_NAME)
remote: --with-sqlite3-config
remote: --without-sqlite3-lib=${sqlite3-dir}/lib
remote:
remote: To see why this extension failed to compile, please check the mkmf.log which can
remote: be found here:
remote:
remote: /tmp/build_c400101f4282a4c7d4222ce20d2d35b2/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/sqlite3-1.3.13/mkmf.log
remote:
remote: extconf failed, exit code 1
remote:
remote: Gem files will remain installed in
remote: /tmp/build_c400101f4282a4c7d4222ce20d2d35b2/vendor/bundle/ruby/2.3.0/gems/sqlite3-1.3.13
remote: for inspection.
remote: Results logged to
remote: /tmp/build_c400101f4282a4c7d4222ce20d2d35b2/vendor/bundle/ruby/2.3.0/extensions/x86_64-linux/2.3.0/sqlite3-1.3.13/gem_make.out
remote:
remote: An error occurred while installing sqlite3 (1.3.13), and Bundler cannot
remote: continue.
remote: Make sure that `gem install sqlite3 -v '1.3.13'` succeeds before bundling.
remote:
remote: In Gemfile:
remote: sqlite3
remote: !
remote: ! Failed to install gems via Bundler.
remote: ! Detected sqlite3 gem which is not supported on Heroku:
remote: ! https://devcenter.heroku.com/articles/sqlite3
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to murmuring-river-60914.
remote:
To https://git.heroku.com/murmuring-river-60914.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/murmuring-river-60914.git'
I have followed the tutorial instruction by setting the Gemfile with this inside:
group :development, :test do
gem 'sqlite3', '1.3.13'
gem 'byebug', '9.0.0', platform: :mri
end
group :production do
gem 'pg', '0.20.0'
end
For multiple buildpacks, remove all of them and then set the Ruby one:
$ heroku buildpacks:clear
$ heroku buildpacks:set heroku/ruby
About SQLite on Heroku:
SQLite runs in memory, and backs up its data store in files on disk.
While this strategy works well for development, Heroku’s Cedar stack
has an ephemeral filesystem. You can write to it, and you can read
from it, but the contents will be cleared periodically. If you were to
use SQLite on Heroku, you would lose your entire database at least
once every 24 hours.
So, for the message
sqlite3.h is missing. Try 'brew install sqlite3'`
replace the sqlite3 gem for pg in your Gemfile, then edit the database.yml file:
# Gemfile
gem 'pg'
# config/database.yml
default: &default
adapter: postgresql
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
development:
<<: *default
database: your_project_name_dev
test:
<<: *default
database: your_project_name_test
production:
<<: *default
database: your_project_name_prod
Probably you'll need to clean the tmp/ folder, so you can delete the Gemfile.lock file and run the rails commands for that:
$ rm -rf Gemfile.lock
$ rails tmp:clear
$ rails tmp:create
I'd like to make staging environment on Heroku, besides production environment. I've prepared stating env as following.
heroku create odai-staging --remote staging
heroku config:add RACK_ENV=staging RAILS_ENV=staging --remote staging
On Gemfile, a group of staging is prepared.
group :production, :staging do
gem 'pg'
gem 'rails_12factor'
end
Then, do as follows.
bundle install
git push staging master
However, I've got following errors. How should I do? I'm looking forward to hearing from you.
remote: Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
remote: Fetching gem metadata from https://rubygems.org/...........
remote: Fetching version metadata from https://rubygems.org/...
remote: Fetching dependency metadata from https://rubygems.org/..
remote: Could not find net-ssh-2.10.0 in any of the sources
remote: Bundler Output: Fetching gem metadata from https://rubygems.org/...........
remote: Fetching version metadata from https://rubygems.org/...
remote: Fetching dependency metadata from https://rubygems.org/..
remote: Could not find net-ssh-2.10.0 in any of the sources
remote: !
remote: ! Failed to install gems via Bundler.
I've solved the problem doing as follows! Thank your for your help!
gem 'net-ssh', '!= 2.10.0'
bundle update
I have created a simple custom gem in 'gemz' folder and configured in gemfile ('checkpercentage', '~>0.1.0') and it works fine in my application but can't deploy it to heroku.
I'm getting the following error when trying to push my updates into my master branch at Heroku.
my Ruby version:
ruby 2.1.1p76 (2014-02-24 revision 45161) [i686-linux]
Error:
nci#nci-VirtualBox:~/Zacchi/kuizu$ git push heroku master
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-2.0.0
remote: -----> Installing dependencies using 1.7.12
remote: Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
remote: You are trying to install in deployment mode after changing
remote: your Gemfile. Run `bundle install` elsewhere and add the
remote: updated Gemfile.lock to version control.
remote: You have added to the Gemfile:
remote: * source: source at /home/nci/Zacchi/kuizu/gemz
remote: You have deleted from the Gemfile:
remote: * source: source at gemz
remote: Bundler Output: You are trying to install in deployment mode after changing
remote: your Gemfile. Run `bundle install` elsewhere and add the
remote: updated Gemfile.lock to version control.
remote:
remote: You have added to the Gemfile:
remote: * source: source at /home/nci/Zacchi/kuizu/gemz
remote:
remote: You have deleted from the Gemfile:
remote: * source: source at gemz
remote: !
remote: ! Failed to install gems via Bundler.
remote: !
remote:
remote: ! Push rejected, failed to compile Ruby app
remote:
remote: Verifying deploy....
remote:
remote: ! Push rejected to safe-waters-3501.
remote:
Gemfile:
source 'https://rubygems.org'
gem 'bootstrap-sass', '~> 3.2.0'
gem 'autoprefixer-rails'
gem 'devise'
gem 'checkpercentage', '~>0.1.0', :path => "/home/nci/Zacchi/kuizu/gemz"
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.0'
# Use sqlite3 as the database for Active Record
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
.... more gems ...
These are the things I tried to fix this problem but had no luck so far:
bundle install
bundle install --deployment
renamed gemfile.lock then rerun bundle install
Any help is appreciated!
When Heroku "reads" /home/nci/Zacchi/kuizu/gemz (or any other local reference) it doesn't know where to go. You need to publish your gem and remove the local reference from your Gemfile.