我在 rails 中收到一条消息“依赖 tzinfo-data”

我在 rails 中收到一条消息“依赖 tzinfo-data”

几天前我刚刚安装了 ruby​​ on rails,每次在控制台中创建新项目时我都会收到此消息:

The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform mingw, mswin, x64_mingw, jruby`.

但是当我尝试安装时:

bundle lock --add-platform mingw

我收到此消息:

Could not locate Gemfile

你们知道我要如何处理这条消息吗?

答案1

这颗宝石不必要适用于将在 Ubuntu(或任何基于 Unix 的系统)上运行的应用程序,并且可以安全地从 gemfile 中删除,除非您的 rails 应用程序在 Windows 机器上运行。

根据gem 的作者

如果您想要删除该消息,您可以执行以下操作之一:

  1. 从 Gemfile 中的 gem 'tzinfo-data' 行中删除平台选项(并运行 bundle update)。这将导致 tzinfo 在所有平台上使用 tzinfo-data 作为其数据源,而不是使用系统时区数据。
  2. 从 Gemfile 中删除 gem 'tzinfo-data' 行。这将导致 tzinfo 始终尝试使用系统时区数据。如果您尝试在 Windows 上运行您的应用,则会引发 TZInfo::DataSourceNotFound 异常。
  3. 运行 bundle lock --add-platform mingw, mswin, x64_mingw, jruby 将 mingw、mswin、x64_mingw 和 jruby 添加到 Bundler 将包含在捆绑包中的平台列表中。

答案2

在 mac osx El capitan 上遇到了同样的问题,我是这样解决的。首先,这是我运行此命令后收到的错误消息

$ rails new my-app -d mysql

Bundler 正在为其安装的任何平台都不会使用依赖项 tzinfo-data(> = 0)。Bundler 正在为 ruby​​ 安装,但依赖项仅适用于 x86-mingw32、x86-mswin32、x64-mingw32 和 java。要将这些平台添加到捆绑包中,请运行bundle lock --add-platform mingw, mswin, x64_mingw, jruby。-注意:我尝试在安装应用程序的应用程序文件夹中运行该命令,直到我必须 cd my-app 目录(我的应用程序的根目录)-首先 cd 进入您正在创建的应用程序的根目录 - bundle lock --add-platform mingw、mswin、x64_mingw、jruby -安装缺少的依赖项。-就我而言,我只执行了这个 bundle lock --add-platform jruby -并且它像魔法一样起作用了,试试看,应该可以解决问题。

答案3

出现该Could not locate Gemfile消息是因为您不在项目目录中。在运行任何命令cd之前,请进入项目目录。bundle

  • cd [path/to/your/rails/project]
  • bundle lock --add-platform mingw

相关内容