16
votes

I installed ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin16] versions using rbenv, and rails with the following version Rails 5.1.4

after creating a new app via rails new my-app

I am getting the followig error when I try to run bundle

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 x86-mingw32 x86-mswin32 x64-mingw32 java. There was an error while trying to write to /Users/my-user/.bundle/cache/compact_index/rubygems.org.443.29b0360b937aa4d161703e6160654e47/versions. It is likely that you need to grant write permissions for that path.```

3

3 Answers

38
votes

Just remove this line from your Gemfile

gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

because you obviously do not run your application on any of these platforms.

Then run bundle install again.

7
votes

Alternatively you can keep the tzinfo-data gem and just remove the platform part and it should become something like this:

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

Recently the RoR creator DHH has published Basecamp's most recent application's Gemfile for Hey! and it contains the line above.

Hope that can become useful for others as it was for me.

1
votes

I had a similar challenge on my Ubuntu 20.04; ruby (2.7.1); rails (6.0.3.3):

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 x86-mingw32 x86-mswin32 x64-mingw32 java.

After running some searches, I found a fix on a git site page:

bundle config disable_platform_warnings true

I realized it wasn't an error but a time-zone dependency warning applicable to running rails application on Windows environment. Adding the disable_platform_warnings option for Bundler helps to silence platform warnings globally for the current machine.

You can read more at https://github.com/tzinfo/tzinfo-data/issues/12