【问题标题】:bundle uses wrong ruby versionbundle 使用了错误的 ruby​​ 版本
【发布时间】:2015-10-30 15:08:41
【问题描述】:

我正在尝试运行

env RAILS_ENV=test bundle exec rake db:migrate

并得到以下错误

Your Ruby version is 2.1.7, but your Gemfile specified 2.2.3

ruby -v

给我

ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]

如果这很重要,我正在使用 rbenv。 rbenv versions 给出以下内容: system * 2.2.3 (set by /Users/thatsme/Projects/demoproject/.ruby-version) 所以我没有安装ruby 2.1.7。 Spring 没有运行,我运行了rbenv rehash。然后安装bundler gem。 我要疯了。有人可以告诉我为什么使用了错误的 ruby​​ 版本吗?谢谢!

【问题讨论】:

  • 此链接可能有一些选项:stackoverflow.com/questions/23039528/…
  • 感谢您的链接,但它不是缺少的捆绑器宝石。我已经相应地更新了我的问题。
  • 我昨天遇到了同样的问题 - 我followed this articles steps 安装了 ruby​​,但我忘记将 rbenv 添加到 bast - 请注意文章中的 # Add rbenv to bash so that it loads every time you open a terminal 评论。
  • @MichalSzyndel 正如我所写,rbenv rehash 没有解决问题。 @Vucko 感谢您的提示。我正在努力使这项工作适用于鱼壳。
  • which bundle 告诉你什么?

标签: ruby-on-rails ruby bundle rbenv


【解决方案1】:

运行下面的命令以某种方式帮助了我: rbenv exec gem install bundler

【讨论】:

  • 哇哦。我一直在四处寻找数十个类似问题的解决方案,但都没有奏效,这终于为我解决了。谢谢!
  • rbenv exec gem install bundler zsh:找不到命令:rbenv
【解决方案2】:

假设:您正在使用 RVM。 这意味着在 RVM 之外安装了一个 ruby​​ 版本。 运行

清除你的 rvm 红宝石
rvm uninstall <ruby version>

一旦您卸载了所有 rvm rubies,请执行ruby -v,如果这返回指定 ruby​​ 版本的输出,那么这就是问题的根源。卸载它

sudo apt-get remove ruby

现在使用rvm install &lt;ruby version&gt; 安装您的rvm rubies,并将其设置为默认rvm use &lt;ruby version&gt;

现在安装捆绑器

gem install bundler

然后bundle install

【讨论】:

  • 似乎只运行“gem install bundler”(更新ruby版本后,用RVM打点不是先决条件)解决问题
  • 这对我有用,但到底为什么这会对识别要使用的红宝石产生影响?
【解决方案3】:

TLDR;

仔细检查.bash_profile.bashrc 文件的内容。

没有一个答案能真正解决我的问题。所以这是我的解决方案。

这是我得到的错误:

$ bundle install
Your Ruby version is 3.0.1, but your Gemfile specified 2.7.1

我检查了我的rbenv 设置:

$ rbenv versions
  system
  2.4.1
  2.5.0
  2.7.0
* 2.7.1 (set by /Users/setoelka/awesome-project/.ruby-version)
  3.0.1

我卸载了错误的版本可能会显示一个新错误。我可以稍后再安装它,我在想。

$ rbenv uninstall 3.0.1

它确实揭示了一个新错误:

$ bundle install
-bash: /Users/setoelka/.gem/ruby/3.0.0/bin/bundle: /Users/setoelka/.rbenv/versions/3.0.1/bin/ruby: bad interpreter: No such file or directory

好吧,这很奇怪。我可以删除那里的.gem 目录。

$ rm -rf ~/.gem/

现在又出现一个新错误:

$ bundle install
-bash: /Users/setoelka/.gem/ruby/3.0.0/bin/bundle: No such file or directory

看来我的 PATH 变量搞砸了。所以我这样做:

$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 3.2.27
  - RUBY VERSION: 2.7.1 (2020-03-31 patchlevel 83) [x86_64-darwin20]
  - INSTALLATION DIRECTORY: /Users/setoelka/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0
  - USER INSTALLATION DIRECTORY: /Users/setoelka/.local/share/gem/ruby/2.7.0
  - RUBY EXECUTABLE: /Users/setoelka/.rbenv/versions/2.7.1/bin/ruby
  - GIT EXECUTABLE: /usr/bin/git
  - EXECUTABLE DIRECTORY: /Users/setoelka/.rbenv/versions/2.7.1/bin
  - SPEC CACHE DIRECTORY: /Users/setoelka/.local/share/gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Users/setoelka/.rbenv/versions/2.7.1/etc
  - RUBYGEMS PLATFORMS:
     - ruby
     - x86_64-darwin-20
  - GEM PATHS:
     - /Users/setoelka/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0
     - /Users/setoelka/.local/share/gem/ruby/2.7.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /Users/setoelka/.rbenv/versions/2.7.1/bin
     - /usr/local/Cellar/rbenv/1.1.2/libexec
     - /Users/setoelka/opt/anaconda3/bin
     - /Users/setoelka/opt/anaconda3/condabin
     - /Users/setoelka/.cargo/bin
     - /Users/setoelka/.gem/ruby/3.0.0/bin
     - /Users/setoelka/.nvm/versions/node/v16.5.0/bin
     - /Users/setoelka/.rbenv/shims
     - /Users/setoelka/.rbenv/shims
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /Library/Apple/usr/bin

所以,很明显我在查看我的 .bash_profile 文件时遗漏了一些东西。这就是问题所在:

     - /Users/setoelka/.gem/ruby/3.0.0/bin

那条线不知何故被我的.bash_profile 中的过多设置所掩盖。

【讨论】:

    【解决方案4】:

    我遇到了同样的问题

    我需要跑步

    捆绑

    重新安装我所有的宝石。那么

    捆绑 exec rails c

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多