我正在尝试在 Debian 上安装 canvas lms,但在名为“数据库填充”的步骤中(这是一个教程:(https://github.com/instruct/canvas-lms/wiki/Quick-Start),当我使用命令
bundle exec rails db:initial_setup
我收到这样的错误:
/var/lib/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/runtime.rb:308:in `check_for_activated_spec!': You have already activated digest 3.1.0, but your Gemfile requires digest 3.1.1. Since digest is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports digest as a default gem. (Gem::LoadError)
from /var/lib/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/runtime.rb:25:in `block in setup'
from /var/lib/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/spec_set.rb:155:in `each'
from /var/lib/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/spec_set.rb:155:in `each'
from /var/lib/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/runtime.rb:24:in `map'
from /var/lib/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/runtime.rb:24:in `setup'
from /var/lib/gems/3.1.0/gems/bundler-2.3.26/lib/bundler.rb:161:in `setup'
from /var/lib/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/setup.rb:10:in `block in <top (required)>'
from /var/lib/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/ui/shell.rb:136:in `with_level'
from /var/lib/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/ui/shell.rb:88:in `silence'
from /var/lib/gems/3.1.0/gems/bundler-2.3.26/lib/bundler/setup.rb:10:in `<top (required)>'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
从这个输出我知道我应该有版本 3.1.1 但我的是 3.1.0 本教程中的版本与我的版本相同(3.1.0)。有人有这个问题吗?我尝试解决了几天但没有任何结果......
我尝试过使用这个: 捆绑清洁--强制 删除 config/dynamic_settings.yml 文件
我之前也遇到过一些类似的问题 它告诉我“您已经激活了 xxx a.b.c,但您的 Gemfile 需要摘要 a.d.e.
这种情况在开发过程中经常发生,似乎canvas使用了很多默认的gem,这些gem比ruby附带的更旧
就您而言,似乎您必须先升级捆绑器
bundler 需要版本 1 的 X gem,但你激活了版本 2 的 X
执行
bundle update xxx
来升级该宝石
但有时这不会成功,因为它是默认的 gem,并且捆绑器需要旧版本
您必须删除该版本的默认 gem 才能强制捆绑程序使用所需的 gem
例如,我遇到了这样的问题
You have already activated json 2.6.3, but your Gemfile requires digest 2.6.1.
执行完
bundle update json
后,我发现这没有帮助
你必须删除gem路径中的json-2.6.3
你可以通过
找到路径并找到gem environment
GEM PATHS:
我用asdf安装了ruby,所以我找到并删除了位于
$HOME/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/specifications/default/json-2.6.3
的gem
但如果发生问题,请确保在另一个路径中备份默认 gem