ruby-on-rails - Bundler:如何删除已安装的 gem

标签 ruby-on-rails ruby rubygems bundler

我正在尝试安装 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.

我已经通过运行docker-compose run web gem install pg_search -v 2.1.4安装了gem,并重新创建了容器。我的 Gemfile:

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 版本: 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 .

通过运行bundle update ,这安装了满足您要求的最新可用版本,显然是 2.3.5 ,不是2.1.4 .

如果您还需要指定对 ruby​​ 版本的约束 2.3.1 ,您也可以将其放入 Gemfile :

ruby '2.3.1'

...然后运行 ​​bundle update在查找最新的兼容依赖项时也会考虑到这一点。


I would like to know how to remove pg_search 2.3.5 and install 2.1.4

您没有版本2.3.5针对此 ruby​​ 版本安装,因为它不兼容。

显然您已经安装了版本2.1.4 .

问题是你的Gemfile.lock仍在等待版本2.3.5 。有几种方法可以解决此问题,但无论如何您都需要更新 Gemfile.lock拥有一组与您的 ruby​​ 版本兼容的依赖项。

最简单的方法可能就是重新运行 bundle update pg_search ,但请确保这次您实际上使用了正确的 ruby​​ 版本。这应该会降低依赖关系,因为新的库版本与旧的 ruby​​ 版本不兼容。

如果您仍然遇到问题,您可以采纳我的建议,添加 ruby Gemfile 的约束,并恢复您最近所做的任何其他更改,这些更改创建了这种不兼容的依赖项组合。

关于ruby-on-rails - Bundler:如何删除已安装的 gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65393211/

相关文章:

ruby-on-rails - 获取 ruby​​ on rails 中的单选按钮值

ruby - 在 ruby​​ 中将 9999999999999999999999.001 转换为 "9999999999999999999999.001"

ruby - 如何从 gemspec 文件中获取版本?

ruby - Gemspec 依赖冲突

ruby-on-rails - 设计注册功能

ruby-on-rails - 是否有 Ruby 数据库迁移 gem,可帮助您将内容从旧结构移动到新结构?

javascript - 网站呈现问题 : Safari 4 displays flash of content, 然后白屏

ruby-on-rails - 如何在 Ubuntu 10.10 上安装 Ruby on Rails 3.0?

ruby-on-rails - Rails 4、Devise、Omniauth(有多个提供者)

css - 在 Rails View 中使用内联 CSS 的 Assets 助手