【问题标题】:How to bundle install gemfile with specific version of bundler如何使用特定版本的捆绑器捆绑安装 gemfile
【发布时间】:2020-05-29 14:08:09
【问题描述】:

我正在尝试捆绑安装一个运行 gem 'rails', '4.2.0' 的项目。 运行Bundle install,我得到:

Bundler could not find compatible versions for gem "bundler":
  In Gemfile:
    rails (= 4.2.0) was resolved to 4.2.0, which depends on
      bundler (>= 1.3.0, < 2.0)

  Current Bundler version:
    bundler (2.1.4)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?

Could not find gem 'bundler (>= 1.3.0, < 2.0)', which is required by gem 'rails (= 4.2.0)', in any of the sources.

然后我尝试安装 bundler v 1.3.0 以成功捆绑此 gemfile:gem install bundler -v 1.3.0

gem list bundler shows me that I successfully installed bundler at v 1.3.0

然后当尝试像这样bundle _1.3.0_ install 与 v 1.3.0 捆绑安装时,我得到Could not find command "_1.3.0_".

如何使用特定版本的捆绑器成功运行捆绑安装?

【问题讨论】:

  • 再次尝试运行bundle install
  • 不行,因为它与我最新版本的捆绑器一起运行
  • 你使用 rvm 吗?如果是这样,请确保您选择了安装了 1.3.0 版本的正确 gemset。
  • 不,我用的是 rbenv...
  • 您是否考虑过为该项目使用单独的环境,例如 Docker?

标签: ruby-on-rails ruby dependencies bundler


【解决方案1】:

基本上,你需要:

  1. Bundler (>= 1.3.0,
  2. 能够运行该 Bundler 版本。
  3. 运行该 Bundler 版本以安装您的应用所需的其他 gem(捆绑安装)。

首先,检查您是否在本地机器上成功安装了 Bundler (>= 1.3.0,

$ gem list bundler 

你应该看到:

*** LOCAL GEMS ***
bundler (2.1.4, 1.17.3, 1.3.0)

如果没有,请安装它:

$ gem install bundler -v "<2" -N
# Install lasted bundler below version 2
# -N: No document

其次,检查你是否可以运行那个 Bundler 版本:

$ bundle _1.17.3_ -v

你应该看到:

Bundler version 1.17.3

如果您安装了 Bundler 1.17.3 但无法运行“bundle 1.17.3 -v”,则您的 RubyGems gem 有问题。检查您是否安装了更新版本(最新是 3.1.3):

$ gem -v

尝试更新 RubyGems gem,因为它可以帮助您运行特定的 gem 版本:

$ gem update --system

你应该看到:

Updating rubygems-update
...
Installing RubyGems 3.1.3
Successfully built RubyGem
    Name: bundler
    Version: 2.1.4
    File: bundler-2.1.4.gem
Bundler 2.1.4 installed
RubyGems 3.1.3 installed
Regenerating binstubs
...
------------------------------------------------------------------------------
RubyGems installed the following executables:
    /home/lqt/.rbenv/versions/2.7.1/bin/gem
    /home/lqt/.rbenv/versions/2.7.1/bin/bundle
...
RubyGems system software updated

再次检查是否可以运行特定的 Bundler 版本:

$ bundle _1.17.3_ -v

如果你看到:

Bundler version 1.17.3

然后,第 3 步,只需运行 Bundler 1.17.3 即可安装其他 gem:

$ bundle _1.17.3_ install

【讨论】:

    【解决方案2】:

    您可以通过这种方式安装 bundler 1.3 版:

    gem install bundler -v 1.3
    

    然后使用该特定版本安装 gem:

    bundle _1.3.0_ [install]
    

    希望有帮助!

    【讨论】:

    • 正如我在帖子中解释的那样,不幸的是,这不起作用并吐出找不到命令“1.3.0
    【解决方案3】:

    您可以尝试将其添加到您的 Gemfile 中,

    gem 'bundler', '1.17.1'

    然后尝试以下命令:

    gem install bundler -v 1.3.0
    gem uninstall bundler -v 2.1.4
    bundle update --bundler
    bundle install
    

    【讨论】:

      【解决方案4】:

      如果您使用了错误版本的 ruby​​ gems,以前的 bundler 存在错误。试试

      gem update --system
      

      【讨论】:

        猜你喜欢
        • 2012-08-19
        • 2013-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-18
        • 1970-01-01
        • 1970-01-01
        • 2021-04-11
        相关资源
        最近更新 更多