ruby-on-rails - rails - ruby installer
Error TZInfo:: DataSourceNotFound al iniciar el servidor Rails v4.1.0 en Windows (8)
Creé una nueva aplicación usando Ruby on Rails v4.1.0. Cuando intento iniciar un servidor o una consola en Windows, encuentro el siguiente 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''
¿Cómo puedo resolver este error?
Agregue la siguiente línea a su archivo de gemas
gem ''tzinfo-data'', plataformas: [: x64_mingw,: mingw,: mswin]
Solo ponga esto en su terminal de aplicación:
gem install tzinfo-data
luego cambie la línea gemfile a:
gem ''tzinfo-data'', platforms: [:x64_mingw, :mingw, :mswin]
luego de nuevo en tu terminal:
bundle update
Eso resolverá el problema directamente.
Tal vez tzinfo no está instalado en su sistema, intente instalarlo:
gem install tzinfo
gem install tzinfo-data
También tuve este problema y lo solucioné al agregar :x64_mingw
el :x64_mingw
a la lista de plataformas para tzinfo-data
, Y el gem ''tzinfo'' al gemfile. Luego paquete de instalación.
Tuve ese error al intentar instalar Redmine en un contenedor Docker:
RAILS_ENV=production bundle exec rake db:migrate
me dio el error porque el paquete tzdata
no estaba instalado en mi imagen de Ubuntu.
apt-get update && apt-get install tzdata -y
Hizo el truco.
Tuve que agregar dos gemas para que el servidor comenzara ...
gema ''tzinfo-data''
gema ''tzinfo''
Luego paquete de instalación.
entonces, las gemas no parecían instalarse correctamente, tuve que hacer lo siguiente
gema ''tzinfo-data'' gema ''tzinfo''
entonces
paquete espectáculo para ver todas las gemas
paquete gema tzinfo le conseguirá el directorio de gemas
luego, vaya a ese directorio. Necesitarás empalmar tzinfo-data en tzinfo. en el archivo tzinfo-data, vaya a .. local_pathname / tzinfo-data-1.2014.5 / lib / tzinfo copie todos los contenidos de este directorio en ... local_pathname / tzinfo-1.2.1 / lib / tzinfo (para mí esto significaba copiar ''datos'' el archivo y ''datos'' el directorio)
luego vaya a local_pathname / tzinfo-1.2.1 / lib y abra el archivo, tzinfo, (no el directorio) y agregue esta línea requiera ''tzinfo / data''
esto fue tan doloroso para descubrir
Resolviendo el error
Para resolver este error, deberá asegurarse de que la gema tzinfo-data se esté incluyendo en su Gemfile
.
En primer lugar, verifique su Gemfile
para ver si hay una referencia existente a tzinfo-data
. Si todavía no hay una referencia, agregue la siguiente línea:
gem ''tzinfo-data''
Puede encontrar que ya hay una línea como la siguiente:
gem ''tzinfo-data'', platforms: [:mingw, :mswin]
Si está utilizando una versión de 64 bits de Ruby en Windows, agregue :x64_mingw
a la lista de plataformas de la siguiente manera:
gem ''tzinfo-data'', platforms: [:mingw, :mswin, :x64_mingw]
Alternativamente, puede eliminar la opción de platforms
completo.
Después de hacer esto, ejecute la bundle update
en la línea de comando para instalar la gema tzinfo-data y luego podrá iniciar su servidor o consola de Rails.
Fondo
TZInfo::DataSourceNotFound
error TZInfo::DataSourceNotFound
, una dependencia del componente de soporte activo de Rails. TZInfo está buscando una fuente de datos de zona horaria en su sistema, pero no puede encontrar uno.
En muchos sistemas basados en Unix (por ejemplo, Linux), TZInfo puede usar el directorio de información de zonas del sistema como fuente de datos. Sin embargo, Windows no incluye dicho directorio, por lo que la gema tzinfo-data debe instalarse en su lugar. La gema tzinfo-data contiene los mismos datos zoneinfo, empaquetados como un conjunto de módulos Ruby.
Rails genera un Gemfile
predeterminado cuando la aplicación se crea por primera vez. Si la aplicación se crea en Windows, se incluirá una dependencia para tzinfo-data. Sin embargo (a partir de la versión 4.1.0 de Rails), esto omite :x64_mingw
de la lista de plataformas, por lo que no funciona correctamente en las versiones de 64 bits de Windows de Ruby. Esto debería solucionarse en futuras versiones de Rails.