'bundle exec middleman'命令在Mac OS Sierra上失败

时间:2017-04-17 16:59:49

标签: javascript ruby macos ember.js

我正在逐步了解Ember Guides关于本地配置项目的内容。

我可以安装每个软件包管理器(Homebrew,Bundler)和构建器(Middleman)。

但是当执行项目(bundle exec middleman)时,我收到错误并且服务器无法启动:

MacBook-Pro-de-Pedro:guides pedro$ bundle exec middleman
bundler: failed to load command: middleman (/usr/local/bin/middleman)
LoadError: Could not open library 'c': dlopen(c, 5): image not found.
Could not open library 'libc.dylib': dlopen(libc.dylib, 5): image not found
/Library/Ruby/Gems/2.0.0/gems/ffi-1.9.10/lib/ffi/library.rb:133:in `block in ffi_lib'
/Library/Ruby/Gems/2.0.0/gems/ffi-1.9.10/lib/ffi/library.rb:100:in `map'
/Library/Ruby/Gems/2.0.0/gems/ffi-1.9.10/lib/ffi/library.rb:100:in `ffi_lib'
/Library/Ruby/Gems/2.0.0/gems/ethon-0.8.0/lib/ethon/libc.rb:8:in `<module:Libc>'
/Library/Ruby/Gems/2.0.0/gems/ethon-0.8.0/lib/ethon/libc.rb:6:in `<module:Ethon>'
/Library/Ruby/Gems/2.0.0/gems/ethon-0.8.0/lib/ethon/libc.rb:1:in `<top (required)>'
/Library/Ruby/Gems/2.0.0/gems/ethon-0.8.0/lib/ethon.rb:10:in `require'
/Library/Ruby/Gems/2.0.0/gems/ethon-0.8.0/lib/ethon.rb:10:in `<top (required)>'
/Library/Ruby/Gems/2.0.0/gems/typhoeus-0.8.0/lib/typhoeus.rb:2:in `require'
/Library/Ruby/Gems/2.0.0/gems/typhoeus-0.8.0/lib/typhoeus.rb:2:in `<top (required)>'
/Library/Ruby/Gems/2.0.0/gems/html-proofer-2.5.2/lib/html/proofer/url_validator.rb:1:in `require'
/Library/Ruby/Gems/2.0.0/gems/html-proofer-2.5.2/lib/html/proofer/url_validator.rb:1:in `<top (required)>'
/Library/Ruby/Gems/2.0.0/gems/html-proofer-2.5.2/lib/html/proofer.rb:4:in `require'
/Library/Ruby/Gems/2.0.0/gems/html-proofer-2.5.2/lib/html/proofer.rb:4:in `block in require_all'
/Library/Ruby/Gems/2.0.0/gems/html-proofer-2.5.2/lib/html/proofer.rb:3:in `each'
/Library/Ruby/Gems/2.0.0/gems/html-proofer-2.5.2/lib/html/proofer.rb:3:in `require_all'
/Library/Ruby/Gems/2.0.0/gems/html-proofer-2.5.2/lib/html/proofer.rb:8:in `<top (required)>'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:105:in `require'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:105:in `rescue in block in require'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:82:in `block in require'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:75:in `each'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:75:in `require'
/Library/Ruby/Gems/2.0.0/gems/bundler-1.14.6/lib/bundler.rb:107:in `require'
/Library/Ruby/Gems/2.0.0/gems/middleman-core-3.4.0/lib/middleman-core/load_paths.rb:37:in `setup_load_paths'
/Library/Ruby/Gems/2.0.0/gems/middleman-core-3.4.0/bin/middleman:10:in `<top (required)>'
/usr/local/bin/middleman:23:in `load'
/usr/local/bin/middleman:23:in `<top (required)>'

有同样问题的人吗?

1 个答案:

答案 0 :(得分:0)

解决!正如Yevgeniy Anfilofyev在评论中所说,有一个完整的讨论here

在这个问题之后,我最终做的是替换library.rb file content from the elcapt branch in the ffi/ffi project

这可能不是最优雅的解决方法,但它为我做到了。

其他开发人员做了Yevgeniy在评论中提到的内容,这已经足够了。只需替换该文件中变量的值:用LIBC ='/usr/lib/libc.dylib'替换LIBC = FFI :: Platform :: LIBC字符串。