【发布时间】:2012-12-27 07:26:09
【问题描述】:
我刚刚在我的旧 mac 书上设置完我的 rails 环境并遇到了这个错误。我已经安装了 FFI 和 rb-inotify。我也再次运行了 bundle install 。我看过了
https://github.com/ffi/ffi/issues/66
和
https://groups.google.com/forum/?fromgroups=#!topic/ruby-ffi/gj3_k34o80k
这两者都表明这是一个特定于 linux 的 API。这些链接中的第二个有一个建议说我应该删除那个 gem 和依赖它的东西,但是我很犹豫要删除似乎依赖它的 FFI。
您建议采取什么行动?非常感谢有关此问题的任何建议。
编辑:我正在运行 rails 3.2.7(今晚更新到 3.2.11)。
编辑 2:我发现了这个:Rubygems: How do I add platform-specific dependency?。这有帮助吗?
编辑 3:您认为这可能与 rbenv 有关吗?
编辑 4:我将开发 gem 从 rb-inotify 更改为 rb-fsevent,运行 bundle install 然后执行 db:migrate。
它会继续运行迁移。
嗯...自从我们的 Linux 开发人员将 rb-inotify 添加到我们的 gem 集中以来,我问我使用 mac 的团队成员尝试执行 rake db:migrate。
此链接可能对来这里的人有所帮助:https://supportbee.com/devblog/2012/07/18/using-platform-dependent-gems-rb-inotify-and-rb-fsevent/
编辑 5:我一直在查看 guard gem,特别是这部分:
我添加了这个,它将执行 rake db:migrate,但我仍然得到一个非常类似于以下内容的错误列表:
Could not open library 'libgtk-x11-2.0': dlopen(libgtk-x11-2.0, 13): image not found.
我想我正在走向一个完整的解决方案!
编辑 7:查看这个 stackoverflow 问题,了解由于 libnotify gem 导致的剩余错误:Image Not Found Errors after Upgrade to Rails 3.1, how to fix?。它建议这样做:
gem 'libnotify' if /linux/ =~ RUBY_PLATFORM
gem 'growl' if /darwin/ =~ RUBY_PLATFORM
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3.2 rake dbmigrate