2015-01-21 79 views
4

我得到這個錯誤,因爲升級到2.2.0,只是發生在一個HTTP請求發送到puma符號查找錯誤,因爲升級到2.2.0紅寶石

puma 2.10.2 (tcp://0.0.0.0:22555): symbol lookup error: 
    /usr/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0/do_postgres-0.10.14/do_postgres/do_postgres.so: 
    undefined symbol: rb_thread_select 

什麼原因,如何解決這個?

降級到2.1.5可以解決這個問題。

+1

看起來他們已經成爲[GitHub上的問題](https://github.com/datamapper/do/issues/74)。還沒有修復。 – zwippie 2015-01-21 08:54:50

回答

5

版本0.14.1之前的pg gem使用方法rb_thread_select。這個方法在Ruby 2.2中被刪除。據their history file,2013年3月發佈的版本0.15.0已經不使用它:

== v0.15.0 [2013-03-03] Michael Granger <[email protected]> 

[...] 

Enhancements: 

- Make use of rb_thread_fd_select() on Ruby 1.9 and avoid deprecated 
    rb_thread_select(). 

[...] 

所以,你可能會使用舊pg寶石。升級這個寶石至少0.15.0應該解決你的問題。

+0

我使用ruby-2.3.1,我剛剛升級到使用chruby和ruby-install,並得到這個錯誤 /home/x/.gem/ruby/2.3.1/gems/activesupport-3.2.9/lib/ active_support/values/time_zone.rb:270:warning:圓形參數引用 - 現在 /home/x/.rubies/ruby-2.3.1/bin/ruby:符號查找錯誤:/home/x/.gem/ruby/ 2.3.1/gems/json-1.7.6/lib/json/ext/generator.so:undefined symbol:rb_data_object_alloc 請提供任何提示? – 2016-05-20 04:12:58

+0

我不知道這個錯誤來自哪裏。嘗試升級json寶石。這似乎是一個不同的問題。你應該在StackOverfow上發佈一個新問題。 – cbliard 2016-05-20 08:40:37