I have created a new application using Ruby on Rails v4.1.0. When attempting to start a server or console on Windows, I am encountering the following error:
$ rails server
Booting WEBrick
Rails 4.1.0 application starting in development on ....
Exiting
c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/tzinfo-1.1.0/lib/tzinfo/data_source.rb:199:
in `rescue in create_default_data_source':
No timezone data source could be found. To resolve this, either install
TZInfo::Data (e.g. by running `gem install tzinfo-data`) or specify a zoneinfo
directory using `TZInfo::DataSource.set(:zoneinfo, zoneinfo_path)`.
(TZInfo::DataSourceNotFound)
from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/tzinfo-1.1.0/lib/tzinfo/data_source.rb:196:
in `create_default_data_source'
How can I resolve this error?
Resolving the Error
To resolve this error, you'll need to make sure that the tzinfo-data gem is being included in your
Gemfile
.First of all, check your
Gemfile
to see if there is an existing reference totzinfo-data
. If there isn't already a reference, then add the following line:You may find that there is already a line like the following:
If you are using a 64-bit version of Ruby on Windows, then add
:x64_mingw
to the list of platforms as follows:Alternatively, you can remove the
platforms
option altogether.After doing this, run
bundle update
at the command line to install the tzinfo-data gem and you'll then be able to start your Rails server or console.Background
The
TZInfo::DataSourceNotFound
error is being raised by TZInfo, a dependency of the Active Support component of Rails. TZInfo is looking for a source of time zone data on your system, but failing to find one.On many Unix-based systems (e.g. Linux), TZInfo is able to use the system zoneinfo directory as a source of data. However, Windows doesn't include such a directory, so the tzinfo-data gem needs to be installed instead. The tzinfo-data gem contains the same zoneinfo data, packaged as a set of Ruby modules.
Rails generates a default
Gemfile
when the application is first created. If the application is created on Windows, then a dependency for tzinfo-data will be included. However (as of Rails version 4.1.0), this omits:x64_mingw
from the list of platforms, so doesn't work correctly on 64-bit Windows versions of Ruby. This should be fixed in future Rails releases.Add the following line to your Gem File
I had that error when trying to install Redmine in a Docker container:
gave me the error because package
tzdata
was not installed in my Ubuntu image.did the trick.
I had this problem too and fixed it by adding BOTH the
:x64_mingw
to the list of platforms fortzinfo-data
, AND the gem 'tzinfo' to the gemfile. Then bundle install.Just put this in your app terminal :
then change the gemfile line to :
then again in your terminal :
That will solve the problem directly.
so, the gems didn't quite seem to install properly, i had to do the following
gem 'tzinfo-data' gem 'tzinfo'
then
then, go to that directory. you will need to splice tzinfo-data into tzinfo. in the tzinfo-data file, go to.. local_pathname/tzinfo-data-1.2014.5/lib/tzinfo copy all the contents of this directory into... local_pathname/tzinfo-1.2.1/lib/tzinfo (for me this meant copying 'data' the file and 'data' the directory)
then go to local_pathname/tzinfo-1.2.1/lib and open the file, tzinfo, (not the directory) and add this line require 'tzinfo/data'
this was such a pain to figure out