我从我的 FreeBSD 11.3 上的端口安装了 redmine 现在尝试从浏览器访问它并崩溃。 错误日志显示如下。
/usr/local/lib/ruby/gems/2.6/gems/activesupport-4.2.11.1/lib/active_support/core_ext/object/duplicable.rb:111: warning: BigDecimal.new is deprecated; use BigDecimal() method instead.
/usr/local/lib/ruby/gems/2.6/gems/mysql2-0.4.10/lib/mysql2/mysql2.so: [BUG] Segmentation fault at 0x0000000000000000
ruby 2.6.6p146 (2020-03-31 revision 67876) [amd64-freebsd11]
-- Control frame information -----------------------------------------------
c:0027 p:-4313666350 s:0131 e:000130 TOP [FINISH]
c:0026 p:---- s:0128 e:000127 CFUNC :require
c:0025 p:0261 s:0123 e:000122 TOP /usr/local/lib/ruby/gems/2.6/gems/mysql2-0.4.10/lib/mysql2.rb:31 [FINISH]
c:0024 p:---- s:0119 e:000118 CFUNC :require
c:0023 p:0033 s:0114 e:000113 BLOCK /usr/local/lib/ruby/gems/2.6/gems/bundler-2.0.2/lib/bundler/runtime.rb:81 [FINISH]
输出要长得多,我把它缩短了,这是堆栈中最顶层的错误。 我不确定哪个社区会更好地解决这个问题,所以我决定先在这里问。
我今天在 ubuntu 20.04 和 msql2 -v 0.5.1 上遇到了类似的问题。问题解决方案:
sudo apt remove libmysqlclient-dev
sudo apt install libmariadbclient-dev
gem install mysql2 -v '0.5.1'
这里有更详细的描述: https://github.com/brianmario/mysql2/issues/1075
或更高版本:
sudo apt remove libmariadbd-dev
sudo apt install libmariadbd-dev
gem install mysql2 -v 'your version'
libmariadbclient-dev 在 ubuntu 22 上对我来说不存在:必须安装 libmariadbd-dev 并重新安装 mysql2 gem。