Canvas lms 捆绑执行rails db:initial_setup 错误

问题描述 投票:0回答:1

我正在尝试在 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 文件

ruby-on-rails linux database rubygems canvas-lms
1个回答
0
投票

我之前也遇到过一些类似的问题 它告诉我“您已经激活了 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

© www.soinside.com 2019 - 2024. All rights reserved.