Red Hat Bugzilla – Bug 1464502
bundler install - rb-inotify (~> 0.9, >= 0.9.7) not satisfied by installed rubygem-rb-inotify-0.9.7-1.fc25.noarch ??
Last modified: 2017-06-26 05:47:20 EDT
Description of problem:
Trying to start a fresh jekyll project, the user is asked to run `bundle install`. But, it does not use the installed rubygem-rb-inotify and instead downloads it from the internet. This does not make sense, the only reason `bundle install` was required was to install the minima theme.
Version-Release number of selected component (if applicable):
How reproducible: always
Steps to Reproduce:
1. dnf install rubygem-jekyll
2. jekyll new testblog
3. cd testblog
4. bundle exec jekyll serve
5. run `bundle install` if suggested
$ bundle exec jekyll serve
Could not find gem 'minima' in any of the gem sources listed in your Gemfile or available on this machine.
Run `bundle install` to install missing gems.
$ bundle install
Fetching gem metadata from https://rubygems.org/
Fetching version metadata from https://rubygems.org/
Fetching dependency metadata from https://rubygems.org/
Using colorator 1.1.0
Installing ffi 1.9.18 with native extensions
Using forwardable-extended 2.6.0
Installing sass 3.4.24
Using kramdown 1.13.2
Installing liquid 3.0.6
Using mercenary 0.3.6
Using rouge 1.11.1
Using safe_yaml 1.0.4
Installing minima 2.0.0
Using bundler 1.12.5
Installing rb-inotify 0.9.10
Using pathutil 0.14.0
Using jekyll-sass-converter 1.5.0
Using listen 3.1.5
Using jekyll-watch 1.5.0
Using jekyll 3.2.1
Bundle complete! 2 Gemfile dependencies, 17 gems now installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.
bundler should not have installed rb-notify, when the jekyll RPM had already pulled in rubygem-rb-inotify-0.9.7-1.fc25.noarch. See below.
Either this is a bug in bundler, or there is some issue with the rubygem packaging which I can't find.
Look in the Gemfile (below), and you see that
1. the only gem with a dependency on rb-inotify is `listen`.
2. `listen` requires `rb-inotify (~> 0.9, >= 0.9.7)`
$ gem list | grep rb-inotify
rb-inotify (0.9.10, 0.9.7)
$ cat Gemfile.lock
colorator (~> 1.0)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 1.1)
kramdown (~> 1.3)
liquid (~> 3.0)
mercenary (~> 0.3.3)
pathutil (~> 0.9)
rouge (~> 1.7)
safe_yaml (~> 1.0)
sass (~> 3.4)
listen (~> 3.0)
rb-inotify (~> 0.9, >= 0.9.7)
forwardable-extended (~> 2.6)
ffi (>= 0.5.0, < 2)
Well, this is misfeature of Bundler. I guess that following steps should help you to move forward:
1) dnf install rubygem-jekyll
2) gem install minima
3) jekyll new testblog
4) cd testblog
5) bundle install --local
We have tried several times to convince upstream, that it should prefer the already installed packages, but we always failed :/
I am closing this now and hope that the workaround helps you. But feel free to reopen in case I was wrong.
Hi, thanks for engaging.
The non-obvious part is how it's happy to use jekyll, jekyll-watch, and listen, but then balks at rb-inotify.
That workaround doesn't work, but I don't want to complain about that. It seems more a bug in rubygem-jekyll, that we have it packaged, but none of the themes that you would need to actually use it are packaged.
Bundler could not find compatible versions for gem "jekyll":
jekyll (= 3.2.1)
minima was resolved to 2.1.1, which depends on
jekyll (~> 3.3)
(In reply to Alan Jenkins from comment #2)
> Resolving dependencies...
> Bundler could not find compatible versions for gem "jekyll":
> In Gemfile:
> jekyll (= 3.2.1)
> minima was resolved to 2.1.1, which depends on
> jekyll (~> 3.3)
Ok, so the most recent minima requires more recent jekyll. Two options here:
1) Specify the version of minima compatible with Jekyll package in Fedora:
a) "gem install minima -v 2.0.0"
b) Restrict the minima version in the Gemfile
2) Ask rubygem-jekyll maintainers to update the Jekyll package in Fedora.