Question

I have been having general issues with berkshelf, namely the dependancy solver problem that you can read more about here

Now that issue has been solved I've just tried to do a bundle install/update and a berks install to try out the new dependancy solver but I'm getting a strange error when i do a berks install:

➜  deployment git:(master) ✗ berks install
/usr/local/rvm/gems/ruby-1.9.3-p484@global/gems/ffi-1.9.3/lib/ffi/library.rb:133:in `block in ffi_lib': Could not open library '/usr/local/rvm/gems/ruby-1.9.3-p484/gems/dep_selector-1.0.0.alpha.2/lib/dep_gecode.bundle': dlopen(/usr/local/rvm/gems/ruby-1.9.3-p484/gems/dep_selector-1.0.0.alpha.2/lib/dep_gecode.bundle, 5): Symbol not found: __ZN6Gecode16ValBranchOptions3defE (LoadError)
  Referenced from: /usr/local/rvm/gems/ruby-1.9.3-p484/gems/dep_selector-1.0.0.alpha.2/lib/dep_gecode.bundle
  Expected in: flat namespace
 in /usr/local/rvm/gems/ruby-1.9.3-p484/gems/dep_selector-1.0.0.alpha.2/lib/dep_gecode.bundle
    from /usr/local/rvm/gems/ruby-1.9.3-p484@global/gems/ffi-1.9.3/lib/ffi/library.rb:100:in `map'
    from /usr/local/rvm/gems/ruby-1.9.3-p484@global/gems/ffi-1.9.3/lib/ffi/library.rb:100:in `ffi_lib'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/dep_selector-1.0.0.alpha.2/lib/dep_selector/dep_gecode.rb:33:in `<module:Dep_gecode>'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/dep_selector-1.0.0.alpha.2/lib/dep_selector/dep_gecode.rb:21:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/dep_selector-1.0.0.alpha.2/lib/dep_selector/gecode_wrapper.rb:21:in `require'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/dep_selector-1.0.0.alpha.2/lib/dep_selector/gecode_wrapper.rb:21:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/dep_selector-1.0.0.alpha.2/lib/dep_selector/dependency_graph.rb:21:in `require'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/dep_selector-1.0.0.alpha.2/lib/dep_selector/dependency_graph.rb:21:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/dep_selector-1.0.0.alpha.2/lib/dep_selector/selector.rb:21:in `require'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/dep_selector-1.0.0.alpha.2/lib/dep_selector/selector.rb:21:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/dep_selector-1.0.0.alpha.2/lib/dep_selector.rb:22:in `require'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/dep_selector-1.0.0.alpha.2/lib/dep_selector.rb:22:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/solve-1.0.0.rc1/lib/solve/solver.rb:1:in `require'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/solve-1.0.0.rc1/lib/solve/solver.rb:1:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/solve-1.0.0.rc1/lib/solve.rb:10:in `require_relative'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/solve-1.0.0.rc1/lib/solve.rb:10:in `<module:Solve>'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/gems/solve-1.0.0.rc1/lib/solve.rb:3:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/bundler/gems/berkshelf-7060813e4887/lib/berkshelf.rb:8:in `require'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/bundler/gems/berkshelf-7060813e4887/lib/berkshelf.rb:8:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/bundler/gems/berkshelf-7060813e4887/lib/berkshelf/cli.rb:1:in `require'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/bundler/gems/berkshelf-7060813e4887/lib/berkshelf/cli.rb:1:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/bundler/gems/berkshelf-7060813e4887/bin/berks:3:in `require'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/bundler/gems/berkshelf-7060813e4887/bin/berks:3:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/bin/berks:23:in `load'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/bin/berks:23:in `<main>'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/bin/ruby_executable_hooks:15:in `eval'
    from /usr/local/rvm/gems/ruby-1.9.3-p484/bin/ruby_executable_hooks:15:in `<main>'

Now I don't know very much about Ruby but I have some experience with C++ and I will never forget these sorts of library linking issues. Only problem is I literally have no idea what I'm supposed to do with this!?

I'm on a mac so I've installed the Gecode dependancy using homebrew. I've tried uninstalling it and re-installing it a few times, I even tried following this article but it didn't seem to change anything.

Any advice would be much appreciated, thanks!

Was it helpful?

Solution

I was seeing the same symptoms, and did a little bit of research onto it. Got it to work by switching gecode versions:

brew switch gecode 3.7.3

Then uninstalled the offending gems:

gem uninstall berkshelf
gem uninstall solve
gem uninstall dep_selector

And finally reinstalling bershelf:

gem install berkshelf

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top