【发布时间】:2012-08-26 06:55:11
【问题描述】:
我正在尝试运行从 Github 上删除的应用。
我已运行 bundle install 以从 Gemfile 安装所需的 gem。但是在运行应用程序时,一条错误消息告诉我安装的 gem 版本错误。
在检查 Gemfile.lock 时,我注意到这些版本比安装的 gem 旧。 (即,我安装了较新版本的 gem,而应用程序需要较旧的 gem。)
有没有一种按照 Gemfile.lock 文件中描述的版本快速安装所有 gem 的方法?或者有没有一种方法可以忽略该文件?
宝石文件:
source 'http://rubygems.org'
gem 'rails', "3.0.9"
gem "sass"
..
Gemfile.lock:
sass (3.1.1)
..
在上面的示例中,即使安装了 sass,应用程序也特别需要 3.1.1 版本。
【问题讨论】:
-
Bundler 应该始终安装
Gemfile.lock文件中的版本,这就是它的目的。您的系统上是否从未安装过这些 gem 的版本? -
我安装的 gem 比应用程序指定的要新。当我运行捆绑安装时,会安装最新的可用 gem 版本。
-
只需删除锁定文件并再次捆绑。
-
正如@Emrah 所说,如果项目的gemfile 写得很好,它应该声明所需的gems 版本。因此,您应该简单地删除 gemfile.lock 并运行捆绑程序,它应该可以工作。顺便说一句,这是什么项目?
-
删除
Gemfile.lock实际上不是最好的主意,因为它可能会导致 gem 版本的意外更新和不受支持的更新,尤其是对于 gem 版本定义松散且无法在主要版本中生存的旧应用程序版本更新。
标签: ruby-on-rails ruby-on-rails-3 github