Bundler:如何删除未安装的宝石
Bundler: how to remove uninstalled gems
我正在尝试安装 pg_search gem。在第一次尝试时,我没有注意 ruby 的必要版本(我们使用 2.3.1
并且需要 2.4
),在出现的错误消息中我被要求 运行 bundle update
,但它已将 pg_search 更新为 2.3.5
,这需要 ruby >= 2.5
。即使我指定了旧版本的 gem,它仍然显示相同的消息:
Gem::InstallError: pg_search requires Ruby version >= 2.5.
An error occurred while installing pg_search (2.3.5), and Bundler cannot continue.
Make sure that `gem install pg_search -v '2.3.5'` succeeds before bundling.
我已经通过 运行ning docker-compose run web gem install pg_search -v 2.1.4
安装了 gem,并重新创建了容器。我的宝石文件:
source 'https://rubygems.org'
gem 'rails', '~> 5.2.0'
# Use sqlite3 as the database for Active Record
# Use Puma as the app server
#gem 'mina-puma', :require => false
gem 'puma', '~> 3.7.1'
gem 'pg', '~> 0.18'
gem 'pg_search', '~> 2.1', '>= 2.1.4'
...
捆绑器版本:bundler (>= 1.3.0)
我想知道如何删除 pg_search 2.3.5
并安装 2.1.4
.
Even though I specified an older version of the gem
不,你没有。
您指定了 '~> 2.1', '>= 2.1.4'
,这意味着 2.1.4 <= version < 3.0.0
。
通过 运行ning bundle update
,这安装了满足您要求的最新可用版本,显然是 2.3.5
,而不是 2.1.4
。
如果您还需要为 ruby 版本 2.3.1
指定一个约束,您也可以将其放在 Gemfile
:
ruby '2.3.1'
...然后 运行ning bundle update
在查找最新的兼容依赖项时也会考虑到这一点。
I would like to know how to remove pg_search 2.3.5 and install 2.1.4
您没有针对此 ruby 版本安装版本 2.3.5
,因为它不兼容。
显然你已经安装了版本 2.1.4
。
问题是您的 Gemfile.lock
仍需要版本 2.3.5
。有几种方法可以解决此问题,但无论哪种方式,您都需要更新 Gemfile.lock
以获得与您的 ruby 版本兼容的一组依赖项。
最简单的方法可能就是重新 运行 bundle update pg_search
,但请确保这次您使用的是正确的 ruby 版本。这应该会降低依赖性,因为较新的库版本与旧的 ruby 版本不兼容。
如果您仍然遇到问题,您可以听取我的建议,将 ruby
约束添加到 Gemfile
,并恢复您最近所做的任何其他更改,这些更改导致了这种不兼容的依赖项组合.
我正在尝试安装 pg_search gem。在第一次尝试时,我没有注意 ruby 的必要版本(我们使用 2.3.1
并且需要 2.4
),在出现的错误消息中我被要求 运行 bundle update
,但它已将 pg_search 更新为 2.3.5
,这需要 ruby >= 2.5
。即使我指定了旧版本的 gem,它仍然显示相同的消息:
Gem::InstallError: pg_search requires Ruby version >= 2.5.
An error occurred while installing pg_search (2.3.5), and Bundler cannot continue.
Make sure that `gem install pg_search -v '2.3.5'` succeeds before bundling.
我已经通过 运行ning docker-compose run web gem install pg_search -v 2.1.4
安装了 gem,并重新创建了容器。我的宝石文件:
source 'https://rubygems.org'
gem 'rails', '~> 5.2.0'
# Use sqlite3 as the database for Active Record
# Use Puma as the app server
#gem 'mina-puma', :require => false
gem 'puma', '~> 3.7.1'
gem 'pg', '~> 0.18'
gem 'pg_search', '~> 2.1', '>= 2.1.4'
...
捆绑器版本:bundler (>= 1.3.0)
我想知道如何删除 pg_search 2.3.5
并安装 2.1.4
.
Even though I specified an older version of the gem
不,你没有。
您指定了 '~> 2.1', '>= 2.1.4'
,这意味着 2.1.4 <= version < 3.0.0
。
通过 运行ning bundle update
,这安装了满足您要求的最新可用版本,显然是 2.3.5
,而不是 2.1.4
。
如果您还需要为 ruby 版本 2.3.1
指定一个约束,您也可以将其放在 Gemfile
:
ruby '2.3.1'
...然后 运行ning bundle update
在查找最新的兼容依赖项时也会考虑到这一点。
I would like to know how to remove pg_search 2.3.5 and install 2.1.4
您没有针对此 ruby 版本安装版本 2.3.5
,因为它不兼容。
显然你已经安装了版本 2.1.4
。
问题是您的 Gemfile.lock
仍需要版本 2.3.5
。有几种方法可以解决此问题,但无论哪种方式,您都需要更新 Gemfile.lock
以获得与您的 ruby 版本兼容的一组依赖项。
最简单的方法可能就是重新 运行 bundle update pg_search
,但请确保这次您使用的是正确的 ruby 版本。这应该会降低依赖性,因为较新的库版本与旧的 ruby 版本不兼容。
如果您仍然遇到问题,您可以听取我的建议,将 ruby
约束添加到 Gemfile
,并恢复您最近所做的任何其他更改,这些更改导致了这种不兼容的依赖项组合.