Jekyll fails to serve (Ruby incompatible library version) - ruby

When trying to run jekyll serve, it seems to build correctly (though with warnings that I haven't been able to resolve), but then fails to serve. jekyll build completes, but the resulting files are missing the compiled CSS.
Output from jekyll serve:
Ignoring ffi-1.9.10 because its extensions are not built. Try: gem pristine ffi --version 1.9.10
Ignoring curb-0.9.3 because its extensions are not built. Try: gem pristine curb --version 0.9.3
Ignoring executable-hooks-1.3.2 because its extensions are not built. Try: gem pristine executable-hooks --version 1.3.2
Ignoring ffi-1.9.10 because its extensions are not built. Try: gem pristine ffi --version 1.9.10
Ignoring gem-wrappers-1.2.7 because its extensions are not built. Try: gem pristine gem-wrappers --version 1.2.7
Ignoring json-1.8.2 because its extensions are not built. Try: gem pristine json --version 1.8.2
Ignoring thin-1.6.1 because its extensions are not built. Try: gem pristine thin --version 1.6.1
Configuration file: /home/jtebert/OwnCloud/Projects/Programming/python/AMS/mockup/_config.yml
Source: /home/jtebert/OwnCloud/Projects/Programming/python/AMS/mockup
Destination: /home/jtebert/OwnCloud/Projects/Programming/python/AMS/mockup/_site
Incremental build: disabled. Enable with --incremental
Generating...
done in 1.404 seconds.
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in `require': incompatible library version - /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/ffi-1.9.10/lib/ffi_c.so (LoadError)
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in `require'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/ffi-1.9.10/lib/ffi.rb:6:in `rescue in <top (required)>'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/ffi-1.9.10/lib/ffi.rb:3:in `<top (required)>'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in `require'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in `require'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/rb-inotify-0.9.7/lib/rb-inotify/native.rb:1:in `<top (required)>'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in `require'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in `require'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/rb-inotify-0.9.7/lib/rb-inotify.rb:1:in `<top (required)>'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in `require'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in `require'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/listen-3.0.6/lib/listen/adapter/linux.rb:30:in `_configure'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/listen-3.0.6/lib/listen/adapter/base.rb:45:in `block in configure'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/listen-3.0.6/lib/listen/adapter/base.rb:40:in `each'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/listen-3.0.6/lib/listen/adapter/base.rb:40:in `configure'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/listen-3.0.6/lib/listen/adapter/base.rb:63:in `start'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/listen-3.0.6/lib/listen/backend.rb:26:in `start'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/listen-3.0.6/lib/listen/listener.rb:67:in `block in <class:Listener>'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/listen-3.0.6/lib/listen/fsm.rb:120:in `instance_eval'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/listen-3.0.6/lib/listen/fsm.rb:120:in `call'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/listen-3.0.6/lib/listen/fsm.rb:91:in `transition_with_callbacks!'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/listen-3.0.6/lib/listen/fsm.rb:57:in `transition'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/listen-3.0.6/lib/listen/listener.rb:90:in `start'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/jekyll-watch-1.3.1/lib/jekyll/watcher.rb:12:in `watch'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/jekyll-3.1.3/lib/jekyll/commands/build.rb:72:in `watch'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/jekyll-3.1.3/lib/jekyll/commands/build.rb:39:in `process'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/jekyll-3.1.3/lib/jekyll/commands/serve.rb:34:in `block (2 levels) in init_with_program'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in `block in execute'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in `each'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in `execute'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/mercenary-0.3.5/lib/mercenary/program.rb:42:in `go'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/mercenary-0.3.5/lib/mercenary.rb:19:in `program'
from /home/jtebert/.rvm/gems/ruby-2.0.0-p643/gems/jekyll-3.1.3/bin/jekyll:13:in `<top (required)>'
from /usr/local/bin/jekyll:23:in `load'
from /usr/local/bin/jekyll:23:in `<main>'
When trying to start a Jekyll project, I did have to create a link of Ruby versions because it was looking for 'Ruby2.1', but I'm not sure if this is playing a role in the current problem: ln -s /usr/bin/ruby '/usr/bin/ruby2.1'.
According to my package manager, I've installed Ruby 2.3.0. But according to which ruby, I'm using 2.0.0 which it's getting from rvm: /home/xxxxxxx/.rvm/rubies/ruby-2.0.0-p643/bin/ruby. And as I mentioned before, Jekyll seems to want v2.1 for something. I'm guessing these conflicting versions are somehow causing the problem, but I don't know how to resolve it.

In my case I had to install the ffi library with gem:
gem install ffi
This error is probably caused by an older version of the library installed in the system. gem then installs the correct version for your project.

The problem for me seemed to be rvm (which I'm not sure how I ended up using). The solution was to remove rvm with rvm implode, then reinstall jekyll with gem install jekyll. Both the warnings and errors disappeared, and it is serving properly.

Related

Ignoring bcrypt-3.1.16 because its extensions are not built. Try: gem pristine bcrypt --version 3.1.16

I'm receiving this giant error when i try to install bundler or rails or even when i try to start the server. any suggestions please? I am a beginner and have no idea what to do??? I already tried what the error suggested (install libyaml) and reinstalling ruby but it still does the same thing. Also tried gem pristine all but nothing.
gem install bundler
Ignoring bcrypt-3.1.16 because its extensions are not built. Try: gem pristine bcrypt --version 3.1.16
Ignoring bindex-0.8.1 because its extensions are not built. Try: gem pristine bindex --version 0.8.1
Ignoring bootsnap-1.13.0 because its extensions are not built. Try: gem pristine bootsnap --version 1.13.0
Ignoring bootsnap-1.7.5 because its extensions are not built. Try: gem pristine bootsnap --version 1.7.5
Ignoring byebug-11.1.3 because its extensions are not built. Try: gem pristine byebug --version 11.1.3
Ignoring date-3.3.3 because its extensions are not built. Try: gem pristine date --version 3.3.3
Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1
Ignoring debug-1.6.2 because its extensions are not built. Try: gem pristine debug --version 1.6.2
Ignoring digest-3.1.0 because its extensions are not built. Try: gem pristine digest --version 3.1.0
Ignoring eventmachine-1.2.7 because its extensions are not built. Try: gem pristine eventmachine --version 1.2.7
Ignoring ffi-1.15.3 because its extensions are not built. Try: gem pristine ffi --version 1.15.3
Ignoring ffi-1.15.1 because its extensions are not built. Try: gem pristine ffi --version 1.15.1
Ignoring ffi-1.15.0 because its extensions are not built. Try: gem pristine ffi --version 1.15.0
/Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/yaml.rb:3: warning: It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
Traceback (most recent call last):
23: from /Users/angie/.rvm/rubies/ruby-2.7.4/bin/gem:21:in `<main>'
22: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/gem_runner.rb:44:in `run'
21: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/gem_runner.rb:79:in `do_configuration'
20: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/gem_runner.rb:79:in `new'
19: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/config_file.rb:182:in `initialize'
18: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/config_file.rb:332:in `load_file'
17: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems.rb:715:in `load_yaml'
16: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
15: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
14: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/yaml.rb:4:in `<top (required)>'
13: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
12: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
11: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/psych.rb:15:in `<top (required)>'
10: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
9: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
8: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/psych/nodes.rb:2:in `<top (required)>'
7: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
6: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
5: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/psych/nodes/node.rb:4:in `<top (required)>'
4: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
3: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
2: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/psych/scalar_scanner.rb:2:in `<top (required)>'
1: from /Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
/Users/angie/.rvm/rubies/ruby-2.7.4/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require': dlopen(/Users/angie/.rvm/gems/ruby-2.7.4/gems/strscan-3.0.4/lib/strscan.bundle, 0x0009): tried: '/Users/angie/.rvm/gems/ruby-2.7.4/gems/strscan-3.0.4/lib/strscan.bundle' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/local/lib/strscan.bundle' (no such file), '/usr/lib/strscan.bundle' (no such file) - /Users/angie/.rvm/gems/ruby-2.7.4/gems/strscan-3.0.4/lib/strscan.bundle (LoadError)

"invalid gem" with different versions of ruby and its packages

I know very little about ruby and its package management. On a Ubuntu 16.04 system, there seems to be something messed up with different versions of ruby. I tried to run pdfbeads ruby program.
$ pdfbeads -o all.pdf
/home/t/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:54:in `require': iconv will be deprecated in the future, use String#encode instead.
/home/t/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:128:in `require': libMagickCore.so.5: cannot open shared object file: No such file or directory - /home/t/.rvm/gems/ruby-1.9.3-p551/extensions/x86_64-linux/1.9.1/rmagick-2.13.4/RMagick2.so (LoadError)
from /home/t/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:128:in `rescue in require'
from /home/t/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:39:in `require'
from /home/t/.rvm/gems/ruby-1.9.3-p551/gems/rmagick-2.13.4/lib/rmagick_internal.rb:11:in `<top (required)>'
from /home/t/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:54:in `require'
from /home/t/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:54:in `require'
from /home/t/.rvm/gems/ruby-1.9.3-p551/gems/rmagick-2.13.4/lib/RMagick.rb:1:in `<top (required)>'
from /home/t/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:54:in `require'
from /home/t/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:54:in `require'
from /home/t/.rvm/gems/ruby-1.9.3-p551/gems/pdfbeads-1.1.1/lib/pdfbeads.rb:35:in `<top (required)>'
from /home/t/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:54:in `require'
from /home/t/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:54:in `require'
from /home/t/.rvm/gems/ruby-1.9.3-p551/gems/pdfbeads-1.1.1/bin/pdfbeads:38:in `<top (required)>'
from /home/t/.rvm/gems/ruby-1.9.3-p551/bin/pdfbeads:23:in `load'
from /home/t/.rvm/gems/ruby-1.9.3-p551/bin/pdfbeads:23:in `<main>'
from /home/t/.rvm/gems/ruby-1.9.3-p551/bin/ruby_executable_hooks:15:in `eval'
from /home/t/.rvm/gems/ruby-1.9.3-p551/bin/ruby_executable_hooks:15:in `<main>'
I first found that the default pdfbeads isn't the one for the latest version of ruby, so I call the latter directly:
$ which pdfbeads
/home/t/.rvm/gems/ruby-1.9.3-p551/bin/pdfbeads
$ whereis pdfbeads
pdfbeads: /usr/local/bin/pdfbeads /home/t/.rvm/gems/ruby-1.9.3-p551/bin/pdfbeads
$ whereis gem
gem: /usr/bin/gem2.3 /usr/bin/gem /home/t/.rvm/rubies/ruby-1.9.3-p551/bin/gem /usr/share/man/man1/gem.1.gz
$ gem --version
2.4.3
$ /usr/local/bin/pdfbeads -o all.pdf
Ignoring executable-hooks-1.3.2 because its extensions are not built. Try: gem pristine executable-hooks --version 1.3.2
Ignoring gem-wrappers-1.2.7 because its extensions are not built. Try: gem pristine gem-wrappers --version 1.2.7
Ignoring nokogiri-1.6.6.2 because its extensions are not built. Try: gem pristine nokogiri --version 1.6.6.2
Ignoring rmagick-2.13.4 because its extensions are not built. Try: gem pristine rmagick --version 2.13.4
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- iconv (LoadError)
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/t/.rvm/gems/ruby-1.9.3-p551/gems/pdfbeads-1.1.1/bin/pdfbeads:35:in `<top (required)>'
from /usr/local/bin/pdfbeads:23:in `load'
from /usr/local/bin/pdfbeads:23:in `<main>'
Hoping to solve the problem, I run the suggested gem command, but what does the error mean here?
$ gem pristine executable-hooks --version 1.3.2
Restoring gems to pristine condition...
Cached gem for executable-hooks-1.3.2 not found, attempting to fetch...
Fetching: executable-hooks-1.3.2.gem (100%)
ERROR: While executing gem ... (Gem::InstallError)
invalid gem: No such file or directory - /home/t/.rvm/gems/ruby-1.9.3-p551#global/cache/executable-hooks-1.3.2.gem
How can I clean up the old version of ruby and its packages, if I only need the newer version?
Thanks.
You are missing some libraries (imagemagick). Please try installing them:
sudo apt-get install imagemagick libmagickwand-dev
After that try again to install your gem.
To cleanup old version of a gem run:
gem cleanup pdfbeads
To uninstall a specific ruby version run:
rvm remove 1.9.3
You can also take a look in the folder /home/t/.rvm/ and clean up by hand. But do that with care. Or just take a look in this folder to find out which ruby versions and gemsets are installed and clean up with the rvm commands.

Gem has wrong version for Jekyll

I've installed latest Jekyll (3.3.1), but Gem/Ruby still thinks I'm on 3.2.1. E.g.:
$ jekyll --version
/Users/userx/.rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/resolver.rb:203:in `rescue in start': Bundler could not find compatible versions for gem "jekyll": (Bundler::VersionConflict)
In Gemfile:
jekyll (= 3.2.1)
minima was resolved to 2.1.0, which depends on
jekyll (~> 3.3)
from /Users/userx/.rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/resolver.rb:199:in `start'
from /Users/userx/.rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/resolver.rb:181:in `resolve'
from /Users/userx/.rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/definition.rb:250:in `resolve'
from /Users/userx/.rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/definition.rb:174:in `specs'
from /Users/userx/.rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/definition.rb:233:in `specs_for'
from /Users/userx/.rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/definition.rb:222:in `requested_specs'
from /Users/userx/.rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/runtime.rb:118:in `block in definition_method'
from /Users/userx/.rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/runtime.rb:19:in `setup'
from /Users/userx/.rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler.rb:99:in `setup'
from /Users/userx/.rvm/gems/ruby-2.4.0/gems/jekyll-3.3.1/lib/jekyll/plugin_manager.rb:36:in `require_from_bundler'
from /Users/userx/.rvm/gems/ruby-2.4.0/gems/jekyll-3.3.1/exe/jekyll:9:in `<top (required)>'
from /Users/userx/.rvm/gems/ruby-2.4.0/bin/jekyll:22:in `load'
from /Users/userx/.rvm/gems/ruby-2.4.0/bin/jekyll:22:in `<main>'
from /Users/userx/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in `eval'
from /Users/userx/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in `<main>'
The ~/.rvm/gems/ruby-2.4.0/gems/ folder contains folders jekyll-3.2.1 and jekyll-3.3.1. Running gem install jekyll returns Successfully installed jekyll-3.3.1. Any idea what the issue is here?
In your Gemfile change : gem 'jekyll', '3.2.1' for gem 'jekyll'.
Then : bundle update

Appium: Nokogiri giving load error while running test case

I have upgraded Ruby version to 2.1.0 from Ruby 1.8.7 and installed all dependencies to run a sample Appium test case using Ruby. But I am facing an issue to load nokogiri while running a test case.
I am using
OS: Mac OS - 1.9.2
Ruby: 2.1.0
Appium: 1.2.0
Nokogiri: 1.6.3.1
This works fine on Ruby: 1.8.7.
Error:
Users/.rvm/gems/ruby-2.1.0/ruby/2.1.0/gems/nokogiri-1.6.3.1/lib/nokogiri.rb:29:in `require': dlopen(/Users/.rvm/gems/ruby-2.1.0/ruby/2.1.0/gems/nokogiri-1.6.3.1/lib/nokogiri/nokogiri.bundle, 9): Library not loaded: /Users/.rvm/rubies/ruby-2.1.0/lib/libruby.2.1.0.dylib (LoadError)
Referenced from: /Users/.rvm/gems/ruby-2.1.0/ruby/2.1.0/gems/nokogiri-1.6.3.1/lib/nokogiri/nokogiri.bundle
Reason: image not found - /Users/.rvm/gems/ruby-2.1.0/ruby/2.1.0/gems/nokogiri-1.6.3.1/lib/nokogiri/nokogiri.bundle
from /Users/.rvm/gems/ruby-2.1.0/ruby/2.1.0/gems/nokogiri-1.6.3.1/lib/nokogiri.rb:29:in `rescue in <top (required)>'
from /Users/.rvm/gems/ruby-2.1.0/ruby/2.1.0/gems/nokogiri-1.6.3.1/lib/nokogiri.rb:25:in `<top (required)>'
from /Users/.rvm/gems/ruby-2.1.0/ruby/2.1.0/gems/appium_lib-4.1.0/lib/appium_lib/driver.rb:4:in `require'
from /Users/.rvm/gems/ruby-2.1.0/ruby/2.1.0/gems/appium_lib-4.1.0/lib/appium_lib/driver.rb:4:in `<top (required)>'
from /Users/.rvm/gems/ruby-2.1.0/ruby/2.1.0/gems/appium_lib-4.1.0/lib/appium_lib.rb:28:in `require_relative'
from /Users/.rvm/gems/ruby-2.1.0/ruby/2.1.0/gems/appium_lib-4.1.0/lib/appium_lib.rb:28:in `<top (required)>'
from /Users/Documents/rslRuby/li_workspace/flagship_native_tests/UITestFramework/selenium/base/LI_framework.rb:32:in `require'
from /Users/Documents/rslRuby/li_workspace/flagship_native_tests/UITestFramework/selenium/base/LI_framework.rb:32:in `<top (required)>'
from /Users/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Users/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from samle_tests/sign_in_test.rb:10:in `<main>'
Possible Fix 1:
This usually happens when gems are linked wrong, i recommend trying to re-install ruby via rvm.
rvm reinstall 2.1
rvm use 2.1
Make sure all the gems are up to date by running(in your apps directory)
bundle install
Possible Fix 2:
Another common problem is to install rvm as a root user, if you've done this re install rvm.
You can uninstall rvm by running
rvm implode
Follow the steps on the website to install rvm

'grunt compass' throwing error that it's not in the system PATH

I'm pretty new to using grunt, compass, and sass and am having trouble getting it to work. I have a Redhat installation with Drupal 7 and when I try to run 'grunt compass' from within the site's theme directory I get the following error:
Running "compass:dist" (compass) task
Warning: You need to have Ruby and Compass installed and in your system PATH for this task to work. More info: https://github.com/gruntjs/grunt-contrib-compass Use --force to continue.
Aborted due to warnings.
I've installed Grunt, Bower, and used 'bundle install' to install the needed gems. When I run 'gem list' I get the following:
bigdecimal (1.2.4)
breakpoint (2.0.7)
bundler (1.6.2)
bundler-unload (1.0.2)
chunky_png (1.3.1)
compass (0.12.6)
compass-normalize (1.4.3)
executable-hooks (1.3.1)
fssm (0.2.10)
gem-wrappers (1.2.4)
io-console (0.4.2)
json (1.8.1)
kss (0.5.0)
minitest (4.7.5)
psych (2.0.3)
rake (10.1.0)
rdoc (4.1.0)
ruby (0.1.0)
rubygems-bundler (1.4.3)
rubygems-update (2.2.2)
rvm (1.11.3.9)
sass (3.2.19)
test-unit (2.1.1.0)
zurb-foundation (4.3.2)
So it seems that I have all of the needed gems. I then looked at my PATH settings via 'echo $PATH' and got the following:
/home/ec2-user/.rvm/gems/ruby-2.1.1/bin:/home/ec2-user/.rvm/gems/ruby-2.1.1#global/bin:/home/ec2-user/.rvm/rubies/ruby-2.1.1/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/bin:/home/ec2-user/.rvm/bin
I looked into the paths and see that in /usr/bin I have ruby2.0 and in /home/ec2-user/bin I have compass so the installations seem to be in the system PATH.
When I run 'ruby2.0' from the command line I get the following:
/usr/local/share/ruby/site_ruby/2.0/rubygems/ext/builder.rb:12:in `<class:Builder>': uninitialized constant Gem::UserInteraction (NameError)
from /usr/local/share/ruby/site_ruby/2.0/rubygems/ext/builder.rb:10:in `<top (required)>'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/ext.rb:13:in `<top (required)>'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:1431:in `build_extensions'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/stub_specification.rb:60:in `build_extensions'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/basic_specification.rb:56:in `contains_requirable_file?'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:925:in `block in find_inactive_by_path'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `each'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `find'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `find_inactive_by_path'
from /usr/local/share/ruby/site_ruby/2.0/rubygems.rb:185:in `try_activate'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:132:in `rescue in require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:144:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/user_interaction.rb:8:in `<top (required)>'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/config_file.rb:7:in `<top (required)>'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:1430:in `build_extensions'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/stub_specification.rb:60:in `build_extensions'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/basic_specification.rb:56:in `contains_requirable_file?'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:925:in `block in find_inactive_by_path'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `each'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `find'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `find_inactive_by_path'
from /usr/local/share/ruby/site_ruby/2.0/rubygems.rb:185:in `try_activate'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:132:in `rescue in require'
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:144:in `require'
from <internal:abrt_prelude>:2:in `<compiled>'
When I run simply 'ruby' nothing ever happens. Is 'grunt compass' looking to find 'ruby' and instead I have 'ruby2.0'? Do I need to create a symlink with ruby -> ruby2.0?
When I run 'compass' from the command line I get:
Usage: compass help [command]
Description:
The Compass Stylesheet Authoring Framework helps you
build and maintain your stylesheets and makes it easy
for you to use stylesheet libraries provided by others.
Etc.
Any thoughts would be appreciated
I've done some researching on this and the following worked for me...
If you have a windows build with Ruby and Compass installed via CLI then try;
Control Panel > System > Advanced system settings
Advanced > Environment Variables
Under System variables search for the 'path' variable which should have a value
Finally click edit and add ;C:\Ruby193\bin at the very end of the Variable value.
This should do the trick.
Note that ;C:\Ruby193\bin refers to the installation of Ruby > Compass on your machine.
If you have a Mac build then perhaps a similar version of fix could work for Mac but I couldn't map that for you, a bit of Googling might help...
grunt compass looks for a ruby gem. In your case 'compass -v' gives no error so the compass part works fine. outside this, it doesn't depend on any other component of ruby.
Now that compass is ready, grunt compass also looks for a npm module grunt-contrib-compass which you would find reference of in a package.json file. If you do a npm install this npm package gets installed and I believe it should make grunt compass work.
grunt-contrib-compass has a bundleExec option that makes the magic. With bundle it will load the gems installed using bundle install. Just set bundleExec: true
https://github.com/gruntjs/grunt-contrib-compass#bundleexec

Resources