【问题标题】:Why is an old version of Bundler pretending to be a new one?为什么旧版本的 Bundler 会伪装成新版本?
【发布时间】:2021-09-29 07:36:29
【问题描述】:
$ gem list bundler                                                                                                      

*** LOCAL GEMS ***

bundler (default: 1.17.3)
capistrano-bundler (2.0.1)
$ ruby --version                                                                                                        
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]
$ bundle _1.17.3_ -v                                                                                                    
Bundler version 2.1.4

为什么我没有安装 Bundler 却声称是 2.1.4?

这是通过让我的 Gemfile 认为我使用了较新版本,然后让我安装它以继续升级的一种方式吗?

还是有一些我忽略的配置?

更新

gem list bundle -d 返回

*** LOCAL GEMS ***

bundler (1.17.3)
    Authors: André Arko, Samuel Giddins, Colby Swandale, Hiroshi
    Shibata, David Rodríguez, Grey Baker, Stephanie Morillo, Chris
    Morris, James Wen, Tim Moore, André Medeiros, Jessica Lynn Suttles,
    Terence Lee, Carl Lerche, Yehuda Katz
    Homepage: http://bundler.io
    License: MIT
    Installed at (default): /Users/brandon/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0

    The best way to manage your application's dependencies

capistrano-bundler (2.0.1)
    Authors: Tom Clements, Lee Hambley, Kir Shatrov
    Homepage: https://github.com/capistrano/bundler
    License: MIT
    Installed at: /Users/brandon/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0

    Bundler support for Capistrano 3.x

which bundle 返回

/Users/brandon/.rbenv/shims/bundle

运行eval "$(rbenv init -)" 不会改变任何东西。

更新以上 2.1.4 也不能解决问题。无论我安装什么,我都被告知我使用的是 2.1.4:

$ gem install --default bundler:2.2.24
Successfully installed bundler-2.2.24 as a default gem
WARNING:  Unable to pull data from 'https://gems.github.com/': bad response Not Found 404 (https://gems.github.com/specs.4.8.gz)
1 gem installed
$ bundler --version
Bundler version 2.1.4

【问题讨论】:

  • 也许运行which bundle 看看它指向哪里?如果您使用 rbenv,如果您最近更新了 rbenv,则可能需要重新散列您的 shims (eval "$(rbenv init -)")。
  • 您的$PATH 可能不一致,因此您的bundle 可执行文件与rubygem 可执行文件来自不同的Ruby 安装(使用不同的gem)。将系统安装的 Ruby 与半安装的版本管理器(例如 rbenv 或 rvm)混合使用时,可能会出现这种情况。

标签: ruby-on-rails ruby rubygems bundler


【解决方案1】:

您可能安装了几个版本, 试试

gem list bundle -d

查看它们的安装位置

which bundle

查看 2.1.4 所在的位置

【讨论】:

  • 感谢您的尝试,但我尝试了,但没有任何改变,也没有透露任何新​​信息。
  • 也许用 sudo 尝试这些会发现一些 root/普通用户路径差异
【解决方案2】:

如果您在共享环境中工作, 可能是 root 用户拥有将 bundle -v 显示为 2.1.4 的捆绑程序

要找到它,您可以尝试在您的环境中挖掘它 通过 env 命令,它将提供您的环境变量列表:

$ env
$ echo $PATH

您在 gem list bundler 上看到的捆绑器列表将来自您的本地用户空间

您也可以参考这些,这可能会解决问题

How to `bundle install` when your Gemfile requires an older version of bundler?

How to bundle install gemfile with specific version of bundler

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    相关资源
    最近更新 更多