古いMacBookでRails環境のセットアップを完了したところ、このエラーが発生しました。FFIとrb-inotifyをインストールしました。また、バンドルインストールを再度実行しました。私は見ました
https://github.com/ffi/ffi/issues/66
と
https://groups.google.com/forum/?fromgroups=#!topic/ruby-ffi/gj3_k34o80k
これは両方とも、これがLinux固有のAPIであることを示しています。それらのリンクの2番目に、その宝石とそれに依存するものを削除する必要があるという提案がありますが、それに依存していると思われるFFIを削除することを躊躇しています。
どのような行動方針を提案しますか?この件に関するアドバイスをいただければ幸いです。
編集:私はrails 3.2.7を実行しています(今夜3.2.11に更新)。
編集2:私はこれを見つけました:Rubygems:プラットフォーム固有の依存関係を追加するにはどうすればよいですか?。これは役に立ちましたか?
編集3:それはrbenvと関係があると思いますか?
編集4:開発gemをrb-inotifyからrb-fseventに変更し、bundle installを実行してから、db:migrateを実行しました。
そして、移行を実行し続けます。
うーん...Linux開発者がgemセットにrb-inotifyを追加してから、macsを使用するチームメンバーにrake db:migrateの実行を試みてもらいました。
このリンクは、この方法で来る人に役立つかもしれません:https ://supportbee.com/devblog/2012/07/18/using-platform-dependent-gems-rb-inotify-and-rb-fsevent/
編集5:私はガードジェム、特にこの部分を見てきました:
これを追加すると、rake db:migrateが実行されますが、それでも次のようなエラーのリストが表示されます。
Could not open library 'libgtk-x11-2.0': dlopen(libgtk-x11-2.0, 13): image not found.
私は完全な解決策に進んでいると思います!
編集7:libnotify gemによる残りのエラーについてはこのstackoverflowの質問を見てください:Rails 3.1へのアップグレード後の画像が見つかりませんエラー、修正方法は?。これを行うことをお勧めします:
gem 'libnotify' if /linux/ =~ RUBY_PLATFORM
gem 'growl' if /darwin/ =~ RUBY_PLATFORM