1

我一直在使用 berkshelf 遇到一般问题,即依赖求解器问题,您可以在此处阅读更多信息

现在这个问题已经解决了,我刚刚尝试进行捆绑安装/更新和 berks 安装来尝试新的依赖关系求解器,但是当我进行 berks 安装时出现了一个奇怪的错误:

➜  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>'

现在我对 Ruby 不太了解,但我对 C++ 有一些经验,我永远不会忘记这类库链接问题。唯一的问题是我真的不知道我应该用这个做什么!?

我在 Mac 上,所以我使用自制软件安装了 Gecode 依赖项。我已经尝试卸载它并重新安装了几次,我什至尝试按照这篇文章进行操作,但它似乎并没有改变任何东西。

任何建议将不胜感激,谢谢!

4

1 回答 1

2

我看到了同样的症状,并对其进行了一些研究。通过切换gecode版本让它工作:

brew switch gecode 3.7.3

然后卸载有问题的宝石:

gem uninstall berkshelf
gem uninstall solve
gem uninstall dep_selector

最后重新安装bershelf:

gem install berkshelf

于 2014-04-15T22:57:45.183 回答