我正在尝试使用evernote gem。它依赖于thrift gem。
的Gemfile
gem 'evernote'
当我尝试使用它时,我收到此错误:
Thrift::ProtocolException in PagesController#the_lab
No version identifier, old protocol client?
thrift (0.5.0) lib/thrift/protocol/binary_protocol.rb:122:in `read_message_begin'
thrift (0.5.0) lib/thrift/client.rb:45:in `receive_message'
evernote (0.9.0) vendor/gen-rb/evernote/edam/note_store.rb:97:in `recv_listNotebooks'
有newer version of the thrift gem available,可以解决问题。当我尝试安装它时,我收到此错误:
的Gemfile:
gem 'evernote'
gem 'thrift', "~> 0.6.0"
控制台:
$ bundle install
Fetching source index for http://rubygems.org/
You have requested:
thrift ~> 0.6.0
The bundle currently has thrift locked at 0.5.0.
Try running `bundle update thrift`
$ bundle update thrift
Fetching source index for http://rubygems.org/
Bundler could not find compatible versions for gem "thrift":
In Gemfile:
evernote depends on
thrift (~> 0.5.0)
thrift (0.6.0)
有没有办法可以改变evernote所依赖的节俭版本?
答案 0 :(得分:3)
你可以'分叉evernote gem,更新它以使用适当版本的thrift然后在你的应用程序中使用它?
的Gemfile
gem 'evernote', :git => "https://github.com/your_username/evernote.git
如果相关,则发送cgs拉取请求。
答案 1 :(得分:1)
试试这个:
bundle update evernote
似乎最新版本的evernote不依赖于特定版本的节俭,所以这应该可以解决您的问题。如果没有,尝试在你的Gemfile中同时使用evernote和thrift并更新两者(这将导致你拥有两个宝石的最新版本)。
答案 2 :(得分:1)
叉子evernote gem&编辑你的gemfile来引用它。 编辑你的分叉evernote gem的.gemspec以匹配thrift的版本。