我有一个 Rails 4 应用程序。前段时间,在运行 bundle install
和 bundle update
之后,我的应用程序开始出现问题。我发现 Faraday gem 导致了一些问题,并且由于其他一些 gem 依赖于它,所以我无法卸载它。然后我找到了我执行 bundle install
/bundle update
命令之前的项目备份。当时我的应用程序运行良好。
当比较我的旧 Gemfile.lock 和当前的 Gemfile.lock 时,我看到一些 gem 现在有更新的版本。我相信这是应用程序问题的原因。
这些只是我当前 Gemfile.lock 中相关的 gem:
oauth2 (1.3.1)
faraday (>= 0.8, < 0.12)
jwt (~> 1.0)
multi_json (~> 1.3)
multi_xml (~> 0.5)
rack (>= 1.2, < 3)
omniauth (1.4.2)
hashie (>= 1.2, < 4)
rack (>= 1.0, < 3)
omniauth-oauth2 (1.4.0)
oauth2 (~> 1.0)
omniauth (~> 1.2)
omniauth-yandex (0.0.2)
omniauth (~> 1.0)
omniauth-oauth2 (~> 1.0)
我的旧 Gemfile.lock 来自于应用程序运行良好时:
oauth2 (1.3.0)
faraday (>= 0.8, < 0.11)
jwt (~> 1.0)
multi_json (~> 1.3)
multi_xml (~> 0.5)
rack (>= 1.2, < 3)
omniauth (1.3.2)
hashie (>= 1.2, < 4)
rack (>= 1.0, < 3)
omniauth-oauth2 (1.4.0)
oauth2 (~> 1.0)
omniauth (~> 1.2)
omniauth-yandex (0.0.2)
omniauth (~> 1.0)
omniauth-oauth2 (~> 1.0
我现在的和以前的 Gemfile 是一样的:
gem 'tinymce-rails'
gem 'mysql2', '~> 0.3.18'
gem 'humanizer'
gem 'globalize', '~> 4.0.3'
gem "paperclip", "~> 4.2"
gem 'remotipart', '~> 1.2'
gem 'mailcatcher', '~> 0.6.1' , group: :development
gem 'rufus-scheduler', '~> 3.1.2'
gem "omniauth-yandex"
gem 'friendly_id', '~> 5.1.0'
gem 'devise'
gem 'rest-client', '~> 1.8'
gem "cocoon"
是否有可能以某种方式将某些 gem 及其依赖项降级为旧 Gemfile.lock 中的版本?
我的应用程序需要只有 omniauth-yandex
gem。
最佳答案
您应该尝试在您的文件中添加特定版本的 gem。这样您将拥有特定 gem 所需的依赖版本。
关于ruby-on-rails - 如何像在旧的 Gemfile.lock 中一样恢复已安装的 gem 和所有依赖版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43457264/