I had a hard drive failure on my old laptop, so moving stuff to new laptop. Installed as normal and was surprised at the following output:
pault@clitheroe:~/jekyll/topcatradio.eu/topcat-radio$ bundle exec jekyll serve
Could not find ffi-1.15.0 in any of the sources
Run `bundle install` to install missing gems.
pault@clitheroe:~/jekyll/topcatradio.eu/topcat-radio$ bundle install
Using public_suffix 4.0.6
Using addressable 2.7.0
Using bundler 2.2.28
Using colorator 1.1.0
Using concurrent-ruby 1.1.8
Using eventmachine 1.2.7
Using http_parser.rb 0.6.0
Using em-websocket 0.5.2
Using ffi 1.15.0
Using forwardable-extended 2.6.0
Using i18n 0.9.5
Using rb-fsevent 0.10.4
Using rb-inotify 0.10.1
Using sass-listen 4.0.0
Using sass 3.7.4
Using jekyll-sass-converter 1.5.2
Using listen 3.5.1
Using jekyll-watch 2.2.1
Using rexml 3.2.5
Using kramdown 2.3.1
Using liquid 4.0.3
Using mercenary 0.3.6
Using pathutil 0.16.2
Using rouge 3.26.0
Using safe_yaml 1.0.5
Using jekyll 3.9.1
Using jekyll-feed 0.15.1
Using jekyll-seo-tag 2.7.1
Using jekyll-sitemap 1.4.0
Using kramdown-parser-gfm 1.1.0
Bundle complete! 5 Gemfile dependencies, 30 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
pault@clitheroe:~/jekyll/topcatradio.eu/topcat-radio$ bundle info ffi
* ffi (1.15.0)
Summary: Ruby FFI
Homepage: https://github.com/ffi/ffi/wiki
Documentation: https://github.com/ffi/ffi/wiki
Source Code: https://github.com/ffi/ffi/
Wiki: https://github.com/ffi/ffi/wiki
Changelog: https://github.com/ffi/ffi/blob/master/CHANGELOG.md
Bug Tracker: https://github.com/ffi/ffi/issues
Mailing List: http://groups.google.com/group/ruby-ffi
Path: /home/pault/gems/gems/ffi-1.15.0
The Path is also where the rest of the gems live. Can anyone shed any light?
pault@clitheroe:~/jekyll/topcatradio.eu/topcat-radio$ bundle add webrick
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Using bundler 2.2.28
Using rb-fsevent 0.11.1
Using colorator 1.1.0
Using concurrent-ruby 1.1.10
Using eventmachine 1.2.7
Using http_parser.rb 0.8.0
Using ffi 1.15.5
Using rexml 3.2.5
Using liquid 4.0.3
Using mercenary 0.3.6
Using safe_yaml 1.0.5
Using forwardable-extended 2.6.0
Using public_suffix 4.0.7
Using i18n 0.9.5
Using pathutil 0.16.2
Using rb-inotify 0.10.1
Using addressable 2.8.0
Using sass-listen 4.0.0
Using listen 3.7.1
Using kramdown 2.4.0
Using em-websocket 0.5.3
Fetching webrick 1.7.0
Using sass 3.7.4
Using jekyll-watch 2.2.1
Using jekyll-sass-converter 1.5.2
Using rouge 3.28.0
Using kramdown-parser-gfm 1.1.0
Using jekyll 3.9.2
Using jekyll-feed 0.16.0
Using jekyll-seo-tag 2.8.0
Using jekyll-sitemap 1.4.0
Installing webrick 1.7.0
pault@clitheroe:~/jekyll/topcatradio.eu/topcat-radio$ bundle install
Using public_suffix 4.0.7
Using addressable 2.8.0
Using bundler 2.2.28
Using colorator 1.1.0
Using concurrent-ruby 1.1.10
Using eventmachine 1.2.7
Using http_parser.rb 0.8.0
Using em-websocket 0.5.3
Using ffi 1.15.5
Using forwardable-extended 2.6.0
Using i18n 0.9.5
Using rb-fsevent 0.11.1
Using rb-inotify 0.10.1
Using sass-listen 4.0.0
Using sass 3.7.4
Using jekyll-sass-converter 1.5.2
Using listen 3.7.1
Using jekyll-watch 2.2.1
Using rexml 3.2.5
Using kramdown 2.4.0
Using liquid 4.0.3
Using mercenary 0.3.6
Using pathutil 0.16.2
Using rouge 3.28.0
Using safe_yaml 1.0.5
Using jekyll 3.9.2
Using jekyll-feed 0.16.0
Using jekyll-seo-tag 2.8.0
Using jekyll-sitemap 1.4.0
Using kramdown-parser-gfm 1.1.0
Using webrick 1.7.0
Bundle complete! 6 Gemfile dependencies, 31 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
pault@clitheroe:~/jekyll/topcatradio.eu/topcat-radio$ bundle update
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies...
Using public_suffix 4.0.7
Using bundler 2.2.28
Using colorator 1.1.0
Using concurrent-ruby 1.1.10
Using eventmachine 1.2.7
Using http_parser.rb 0.8.0
Using ffi 1.15.5
Using forwardable-extended 2.6.0
Using rb-fsevent 0.11.1
Using rexml 3.2.5
Using liquid 4.0.3
Using mercenary 0.3.6
Using rouge 3.28.0
Using safe_yaml 1.0.5
Using webrick 1.7.0
Using kramdown 2.4.0
Using em-websocket 0.5.3
Using rb-inotify 0.10.1
Using addressable 2.8.0
Using sass-listen 4.0.0
Using listen 3.7.1
Using kramdown-parser-gfm 1.1.0
Using jekyll-watch 2.2.1
Using i18n 0.9.5
Using sass 3.7.4
Using jekyll-sass-converter 1.5.2
Using pathutil 0.16.2
Using jekyll 3.9.2
Using jekyll-feed 0.16.0
Using jekyll-seo-tag 2.8.0
Using jekyll-sitemap 1.4.0
Bundle updated!
pault@clitheroe:~/jekyll/topcatradio.eu/topcat-radio$ bundle exec jekyll serve
Could not find http_parser.rb-0.8.0, ffi-1.15.5 in any of the sources
Run `bundle install` to install missing gems.
you might have ruby installed twice - and some gems are in the other install? you seem to have ruby at /home/pault/gems/gems/ffi-1.15.0 which seems weird to me, usually the gems are inside a ruby folder? I’m no ruby expert though, just something I have noticed a lot of people having issues with.
pault@clitheroe:~/jekyll/topcatradio.eu/topcat-radio$ jekyll server
Ignoring sassc-2.4.0 because its extensions are not built. Try: gem pristine sassc --version 2.4.0
Ignoring ffi-1.15.5 because its extensions are not built. Try: gem pristine ffi --version 1.15.5
Ignoring ffi-1.15.0 because its extensions are not built. Try: gem pristine ffi --version 1.15.0
Ignoring http_parser.rb-0.8.0 because its extensions are not built. Try: gem pristine http_parser.rb --version 0.8.0
Ignoring ffi-1.15.5 because its extensions are not built. Try: gem pristine ffi --version 1.15.5
Ignoring ffi-1.15.0 because its extensions are not built. Try: gem pristine ffi --version 1.15.0
Ignoring http_parser.rb-0.8.0 because its extensions are not built. Try: gem pristine http_parser.rb --version 0.8.0
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require': incompatible library version - /home/pault/gems/gems/ffi-1.15.5/lib/ffi_c.so (LoadError)
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /home/pault/gems/gems/ffi-1.15.5/lib/ffi.rb:5:in `rescue in <top (required)>'
from /home/pault/gems/gems/ffi-1.15.5/lib/ffi.rb:2:in `<top (required)>'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /home/pault/gems/gems/sassc-2.4.0/lib/sassc/native.rb:3:in `<top (required)>'
from /home/pault/gems/gems/sassc-2.4.0/lib/sassc.rb:31:in `require_relative'
from /home/pault/gems/gems/sassc-2.4.0/lib/sassc.rb:31:in `<top (required)>'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /home/pault/gems/gems/jekyll-sass-converter-2.1.0/lib/jekyll/converters/scss.rb:3:in `<top (required)>'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /home/pault/gems/gems/jekyll-sass-converter-2.1.0/lib/jekyll-sass-converter.rb:4:in `<top (required)>'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /home/pault/gems/gems/jekyll-4.2.1/lib/jekyll.rb:195:in `<top (required)>'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /home/pault/gems/gems/jekyll-4.2.1/exe/jekyll:8:in `<top (required)>'
from /home/pault/gems/bin/jekyll:25:in `load'
from /home/pault/gems/bin/jekyll:25:in `<main>'
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- 3.0/ffi_c (LoadError)
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /home/pault/gems/gems/ffi-1.15.5/lib/ffi.rb:3:in `<top (required)>'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /home/pault/gems/gems/sassc-2.4.0/lib/sassc/native.rb:3:in `<top (required)>'
from /home/pault/gems/gems/sassc-2.4.0/lib/sassc.rb:31:in `require_relative'
from /home/pault/gems/gems/sassc-2.4.0/lib/sassc.rb:31:in `<top (required)>'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /home/pault/gems/gems/jekyll-sass-converter-2.1.0/lib/jekyll/converters/scss.rb:3:in `<top (required)>'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /home/pault/gems/gems/jekyll-sass-converter-2.1.0/lib/jekyll-sass-converter.rb:4:in `<top (required)>'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /home/pault/gems/gems/jekyll-4.2.1/lib/jekyll.rb:195:in `<top (required)>'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /home/pault/gems/gems/jekyll-4.2.1/exe/jekyll:8:in `<top (required)>'
from /home/pault/gems/bin/jekyll:25:in `load'
from /home/pault/gems/bin/jekyll:25:in `<main>'
I don’t know ruby internals but it looks like this is the important line:
<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- 3.0/ffi_c (LoadError)
And I also note that two ffi versions are being called. is it advisable to run the gem pristine commands referenced earlier in the output?
hmm, never seen the bashrc file, not sure what it does (I’m a PC person and also not a ruby expert) but it seems fishy that you have gems in 2 different places.
Though the extensions not being built is probably a bigger issue.
When you use ruby some gems are ready to go and other need to be built at install time and to do that you need the ruby dev tools - or at least you used to. I want to say some of that changed a couple years ago.
What OS are you on?
I would remove all ruby stuff and re-install it making sure the ruby version you install has access to the ruby devkit.
Usually you would have seen a different error when installing jekyll though if the extensions are not built so it is a little weird you made it past that part.
It’s fixed, but it required uninstalling everything Ruby and starting from scratch. Thinking about what happened I think it was a Ruby 2.7>3.0 issue. The ffi gem still seemed to be looking for /usr/bin/ruby2.7 even though I had uninstalled. The series of posts from @MichaelCurrin on Upgrade to Ruby 3 was very useful. Thanks to everyone for their help.
Glad to hear that worked out for you and I am sorry I could not be of more assistance. I spent about a month learning Docker recently and finally came up with a very easy way to manage my Jekyll code in a container so I do not have to manage Ruby on my desktop anymore. If you are interested in that approach, here is a video I created: