Your bundle is locked to mimemagic (0.3.3), but that version could not be found
in any of the sources listed in your Gemfile. If you haven't changed sources,
that means the author of mimemagic (0.3.3) has removed it. You'll need to update
your bundle to a version other than mimemagic (0.3.3) that hasn't been removed
in order to install.
rails 6.0.0
mimemagic 0.3.10
You can use bundle update but be aware that this update all your gems in the gemfile, maybe you are using mimemagic through rails dependency, and bundle update mimemagic not working for you. In that case, in my opinion bundle update is the best fit
Related
I created a ruby gem. And I made a change to it. But I did not change any of its development or runtime dependencies. After I made a change to the gem and pushed it to git, I then run bundle update --source on the Rails project that is using the gem:
bundle update --source my_gem
My expectation is that it will just update my_gem and nothing else. However, I found it is updating several other gems in Gemfile.lock of my Rails project:
- google-cloud-core (1.2.6)
+ google-cloud-core (1.2.7)
- google-cloud-env (1.0.4)
+ google-cloud-env (1.0.5)
- google-cloud-vision (0.30.3)
+ google-cloud-vision (0.30.4)
- signet (0.9.1)
+ signet (0.9.2)
Now yes my gem depends on google cloud. However, I did not update google cloud in my gem. I just updated one line of code in my gem itself. Why is it updating other gems and how can I prevent this?
I think you want bundle update --conservative --source my_gem
I am trying to update to the latest google vision, and so I add in Gemfile:
gem 'google-cloud-vision', '~> 0.28.0'
But when I run bundle install, I get the following error:
Bundler could not find compatible versions for gem "faraday": In
Gemfile:
google-cloud-vision (~> 0.28.0) ruby depends on
google-cloud-core (~> 1.2) ruby depends on
google-cloud-env (~> 1.0) ruby depends on
faraday (~> 0.11) ruby
forecast_io (>= 0) ruby depends on
faraday (0.9.2)
I tried using the latest version of forecast too:
gem 'forecast_io', '~> 2.0', '>= 2.0.2'
I understand that two different gems require two different versions of faraday. But isn't bundler supposed to resolve this?
According to bundler documentation
Update the gems specified (all gems, if none are specified), ignoring the previously installed gems specified in the Gemfile.lock. In general, you should use bundle install(1) to install the same exact gems and versions across machines.
You would use bundle update to explicitly update the version of a gem.
So use bundle update google-cloud-vision for update gem to new version.
I am trying to update Rails to 5.0.0.beta1, and I get errors that look like this:
Bundler could not find compatible versions for gem "minitest":
In Gemfile:
rails (= 5.0.0.beta1) was resolved to 5.0.0.beta1, which depends on
activejob (= 5.0.0.beta1) was resolved to 5.0.0.beta1, which depends on
activesupport (= 5.0.0.beta1) was resolved to 5.0.0.beta1, which depends
on minitest (~> 5.1)
minitest-rails-capybara was resolved to 0.0.1, which depends on
minitest-rails was resolved to 0.5, which depends on
minitest (~> 4.0)
No gem, including minitest-rails-capybara, has its version set explicitly in my Gemfile. There is no Gemfile.lock file in my app (I removed the existing one in the upgrade branch.)
minitest-rails-capybara is the latest version in the current gemset (and in others.) Why am I getting this error?
EDIT Even after starting with a new app, (rails new) if I add these lines to the Gemfile, I get the above errors:
group :test do
gem 'minitest-spec-rails'
gem 'minitest-rails-capybara'
end
Versions:
Ruby: 2.3.0
Bundler: 1.11.2
gem: 2.5.1
Well, I guess I'm jumping the gun somewhat here - those gems at least don't have their Rails5-compatible versions on Rubygems.org.
Pointing directly to Github fixes this:
gem 'minitest-rails', git: 'https://github.com/blowmage/minitest-rails', branch: 'rails5'
gem 'minitest-spec-rails'
gem 'minitest-rails-capybara', git: 'https://github.com/blowmage/minitest-rails-capybara', branch: 'rails5'
I got a problem with a new version of spree gem (branch: '2-3-stable'). When i try to install it, I receive this error.
my_store$ rails server
The git source https://github.com/spree/spree_gateway.git is not yet checked out. Please run `bundle install` before trying to start your application
my_store$ bundle install
Bundler could not find compatible versions for gem "i18n":
In Gemfile:
spree (= 2.3.1) ruby depends on
spree_core (= 2.3.1) ruby depends on
i18n (= 0.6.9) ruby
rails (= 4.1.2) ruby depends on
activesupport (= 4.1.2) ruby depends on
i18n (0.6.11)
But according to gem list i got both of this gems installed i18n (0.6.11, 0.6.9). Can someone help me to fix this problem
Copy from comment section:
Sorry. i figured it out myself simple execution of bundle update and then bundle install command fixed my issue
I'm fairly new to rails and I encountered this gem conflict, while running bundle install, between ActiveSupport and threetaps-client (which I need to use for my project).
I tried removing the Gemfile.lock file and running bundle install again but it gave me the same error message again. I also tried running bundle update which also gave the same result :(
Bundler could not find compatible versions for gem "activesupport":
In snapshot (Gemfile.lock):
activesupport (3.2.13)
In Gemfile:
threetaps-client (>= 0) ruby depends on
activesupport (~> 3.0.0) ruby
Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
The issue here is that you are using Rails 3.2 (and thus, activesupport 3.2). However, threetaps-client is version locked to rails/activesupport 3.0.x. The easiest solution to this would be to downgrade Rails to 3.0 in your Gemfile with:
gem "rails", "~> 3.0"
And then remove the Gemfile.lock and bundle install again. You should be good to go after that.
EDIT
I was able to get the gem to support activesupport 3.2 (I think). The tests do not pass on this branch, but they did not pass on master either. I assume this probably has to do with credentials or something. Update your Gemfile to use this repo for threetaps-client
gem "threetaps-client", git: "git#github.com:ehowe/3taps-Ruby-Client"
Insert required "your mileage may vary" warning here.