升级到 Ruby 2.2.0 后出现符号查找错误
Symbol lookup error since upgrading to Ruby 2.2.0
我得到这个错误,因为升级到 2.2.0,只有当一个 http 请求发送到 puma
:
时才会发生
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 无论如何都会解决这个问题。
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 <ged@FaerieMUD.org>
[...]
Enhancements:
- Make use of rb_thread_fd_select() on Ruby 1.9 and avoid deprecated
rb_thread_select().
[...]
所以您可能正在使用旧的 pg
gem。将此 gem 升级到至少 0.15.0 应该可以解决您的问题。
我得到这个错误,因为升级到 2.2.0,只有当一个 http 请求发送到 puma
:
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 无论如何都会解决这个问题。
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 <ged@FaerieMUD.org>
[...]
Enhancements:
- Make use of rb_thread_fd_select() on Ruby 1.9 and avoid deprecated
rb_thread_select().
[...]
所以您可能正在使用旧的 pg
gem。将此 gem 升级到至少 0.15.0 应该可以解决您的问题。