ruby-on-rails - rake 数据库 :migrate error (Function 'inotify_init' not found)

标签 ruby-on-rails ruby ruby-on-rails-3.2 rake dbmigrate

enter image description here

我刚刚在我的旧 mac book 上完成了 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。

enter image description here

它继续运行迁移。

嗯...自从我们的 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 ,特别是这部分:

enter image description here

我添加了这个,它会执行 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

最佳答案

基本上,我团队中有人添加了一些特定于 Linux 的安装。要修复它,请执行以下操作:

对于 rb-inotify 的东西,这样做:

group :development do
  gem 'rb-inotify', :require => false
  gem 'rb-fsevent', :require => false
  gem 'rb-fchange', :require => false
end

如果您有 libnotify,请执行以下操作:

gem 'libnotify' if /linux/ =~ RUBY_PLATFORM
gem 'growl' if /darwin/ =~ RUBY_PLATFORM

为我工作,编码愉快!

关于ruby-on-rails - rake 数据库 :migrate error (Function 'inotify_init' not found),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14299757/

相关文章:

ruby-on-rails - 如何允许哈希中的所有值

amazon-s3 - Errors::SignatureDoesNotMatch,AWS-SDK gem 在 paperclip 3.0.1 和 rails 3.2 上支持 S3

ruby-on-rails - 处理默认 GEM_PATH 的建议

ruby-on-rails - 许多非常相似的功能,意大利面条代码修复?

ruby - 如何从全局范围调用与 ruby​​ 中的实例方法同名的方法?

ruby - Rspec : expect vs expect with block - what's the difference?

inheritance - Rails : ActiveRecord's default_scope and class inheritance

ruby-on-rails - ActiveRecord 模型的保留名称

ruby-on-rails - 运行 Ruby 2.3.1 时为 "Gem::InstallError: devise requires Ruby version >= 2.1.0."

javascript - 找不到文件 'jquery-ui'