You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行bundle exec rake db:migrate时出现不兼容LoadError错误求助

执行bundle exec rake db:migrate时的LoadError问题解决

环境信息

  • Ruby版本:3.2.2
  • Rails版本:6.1.6

错误信息

执行bundle exec rake db:migrate时触发如下错误:

rake aborted!
LoadError: 链接到不兼容的库 - /home/anubha/.rvm/gems/ruby-2.7.2/gems/date-3.3.3/lib/date_core.so
<internal:/home/anubha/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/home/anubha/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/anubha/.rvm/gems/ruby-2.7.2/gems/date-3.3.3/lib/date.rb:4:in `<top (required)>'
<internal:/home/anubha/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/home/anubha/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/home/anubha/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/home/anubha/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/anubha/.rvm/gems/ruby-2.7.2/gems/activesupport-6.1.7.3/lib/active_support/messages/metadata.rb:3:in `<top (required)>'
<internal:/home/anubha/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/home/anubha/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/anubha/.rvm/gems/ruby-2.7.2/gems/activesupport-6.1.7.3/lib/active_support/message_verifier.rb:6:in `<top (required)>'
<internal:/home/anubha/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/home/anubha/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/anubha/.rvm/gems/ruby-2.7.2/gems/railties-6.1.7.3/lib/rails/application.rb:7:in `<top (required)>'
<internal:/home/anubha/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/home/anubha/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/anubha/.rvm/gems/ruby-2.7.2/gems/railties-6.1.7.3/lib/rails.rb:13:in `<top (required)>'
<internal:/home/anubha/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/home/anubha/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/anubha/.rvm/gems/ruby-2.7.2/gems/railties-6.1.7.3/lib/rails/all.rb:5:in `<top (required)>'
<internal:/home/anubha/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/home/anubha/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/anubha/staging/wel-admin/config/application.rb:3:in `<top (required)>'
/home/anubha/staging/wel-admin/Rakefile:4:in `require_relative'
/home/anubha/staging/wel-admin/Rakefile:4:in `<top (required)>'
/home/anubha/.rvm/gems/ruby-2.7.2/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/home/anubha/.rvm/gems/ruby-2.7.2/bin/ruby_executable_hooks:22:in `eval'
/home/anubha/.rvm/gems/ruby-2.7.2/bin/ruby_executable_hooks:22:in `<main>'
(See full trace by running task with --trace)

问题分析

从错误路径能明显看出:当前运行的是rbenv管理的Ruby 3.2.2,但加载的date_core.so却是rvm管理的Ruby 2.7.2的gem库文件——这是Ruby版本与gem编译版本不兼容导致的,同时系统里同时存在rvm和rbenv两个版本管理工具,进一步加剧了环境混乱。

解决步骤

  1. 统一Ruby版本管理工具

    • 选一个工具保留(比如rbenv),卸载另一个(rvm),彻底避免环境变量冲突。
    • 暂时不想卸载的话,先确保当前会话只激活一个工具:
      • 用rbenv的话:先执行rvm use system切到系统Ruby,再执行rbenv local 3.2.2锁定项目Ruby版本。
      • 用rvm的话:先执行rbenv global system,再执行rvm use 3.2.2切换到目标版本。
  2. 重装适配当前Ruby版本的gem
    进入项目目录,执行以下命令清理旧依赖并重装:

    rm -rf vendor/bundle
    gem uninstall date
    bundle install
    

    确保bundle安装的gem都存放在当前Ruby版本的gem目录下,而非其他版本的目录。

  3. 验证环境一致性
    执行以下命令确认Ruby和gem路径匹配:

    which ruby
    which gem
    

    两个命令的输出路径必须对应同一个Ruby 3.2.2版本。

  4. 重新执行迁移

    bundle exec rake db:migrate
    

内容的提问来源于stack exchange,提问作者Anubha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 07:17:08