我使用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
。
您可能需要为该路径授予写入权限.```
答案 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