Rails捆绑新项目的错误

时间:2017-10-14 01:59:37

标签: ruby-on-rails ruby ruby-on-rails-5

我使用rbenv安装了ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin16]版本,并使用以下版本Rails 5.1.4安装了

通过rails new my-app

创建新应用后

当我尝试运行bundle

时,我收到了关注错误

依赖关系tzinfo-data(> = 0)将被Bundler正在安装的任何平台使用。 Bundler正在为ruby安装,但依赖性仅适用于x86-mingw32,x86-mswin32,x64-mingw32,java。要将这些平台添加到捆绑包,请运行bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java。 尝试写入时出错 /Users/my-user/.bundle/cache/compact_index/rubygems.org.443.29b0360b937aa4d161703e6160654e47/versions。 您可能需要为该路径授予写入权限.```

3 个答案:

答案 0 :(得分:9)

只需从Gemfile

中删除此行即可
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

因为您显然不会在任何这些平台上运行您的应用程序。

然后再次运行bundle install

答案 1 :(得分:5)

或者,您可以保留tzinfo-data宝石,然后删除平台部分,它应该变成这样:

gem 'tzinfo-data', '>= 1.2016.7' # Don't rely on OSX/Linux timezone data

最近,RoR创建者DHH为Hey!发布了Basecamp的最新应用程序Gemfile。它包含上面的行。

希望对我和其他人都有用。

答案 2 :(得分:1)

我在Ubuntu 20.04上遇到了类似的挑战;红宝石(2.7.1);导轨(6.0.3.3):

Bundler要为其安装平台的任何平台都将不使用依赖项tzinfo-data(> = 0)。 Bundler正在为ruby安装,但依赖项仅适用于x86-mingw32,x86-mswin32,x64-mingw32,java。要将这些平台添加到捆绑软件中,请运行bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java

运行一些搜索后,我在git网站页面上找到了解决方法:

bundle config disable_platform_warnings true

我意识到这不是错误,而是时区相关性警告,适用于在Windows环境中运行Rails应用程序。为Bundler添加disable_platform_warnings选项有助于在当前计算机上全局使平台警告静音。

您可以在以下位置阅读更多内容 https://github.com/tzinfo/tzinfo-data/issues/12