복붙노트

[RUBY-ON-RAILS] TZInfo :: DataSourceNotFound 오류 Windows에서 레일 v4.1.0 서버 시작

RUBY-ON-RAILS

TZInfo :: DataSourceNotFound 오류 Windows에서 레일 v4.1.0 서버 시작

나는 레일 v4.1.0에 루비를 사용하여 새 응용 프로그램을 만들었습니다. Windows에서 서버 또는 콘솔을 시작하려고 할 때, 나는 다음과 같은 오류가 발생하고있다 :

$ 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'

어떻게하면이 오류를 해결할 수 있습니까?

해결법

  1. ==============================

    1.오류 해결

    오류 해결

    이 오류를 해결하려면, 당신은 tzinfo 데이터 보석이 당신의 Gemfile에 포함되고 있는지 확인해야합니다.

    우선, tzinfo 데이터에 대한 기존의 참조가 있는지 알아보세요 Gemfile을 확인합니다. 이미 언급이없는 경우, 다음 줄을 추가합니다 :

    gem 'tzinfo-data'
    

    당신은 다음과 같은 라인이 이미있는 것을 알 수 있습니다 :

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

    Windows에서 루비의 64 비트 버전을 사용하는 경우, 추가 x64_mingw를 플랫폼의 목록은 다음과 같습니다 :

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

    양자 택일로, 당신은 모두 플랫폼 옵션을 제거 할 수 있습니다.

    이 작업을 수행 한 후, tzinfo 데이터 보석을 설치하려면 명령 줄에서 번들 업데이트를 실행하면 다음 레일 서버 또는 콘솔을 시작 할 수 있습니다.

    배경

    TZInfo :: DataSourceNotFound 오류가 TZInfo, 레일의 활동 지원 구성 요소의 종속성에 의해 제기되고있다. TZInfo는 시스템의 표준 시간대 데이터의 소스를 찾고 있지만, 하나를 찾기 위해 실패합니다.

    많은 유닉스 기반 시스템 (예를 들어, 리눅스)에서 TZInfo의 데이터 소스로 디렉토리은 zoneinfo 시스템을 사용할 수 있습니다. tzinfo 데이터의 보석 요구 대신 설치할 수 있도록 그러나 Windows는 같은 디렉토리를 포함하지 않습니다. tzinfo 데이터 보석 루비 모듈 세트로 포장은 zoneinfo 동일한 데이터를 포함한다.

    레일은 응용 프로그램이 처음 만들어 기본 Gemfile을 생성합니다. 응용 프로그램이 윈도우에서 생성되는 경우, 다음 tzinfo 데이터에 대한 종속성이 포함됩니다. 그러나이 생략합니다 (레일 버전 4.1.0로) : 플랫폼의 목록에서 x64_mingw, 그래서 루비의 64 비트 Windows 버전에서 제대로 작동하지 않습니다. 이것은 미래의 레일 릴리스에서 해결되어야한다.

  2. ==============================

    2.나는 서버가 시작 얻기 위해 두 보석을 추가했다 ..

    나는 서버가 시작 얻기 위해 두 보석을 추가했다 ..

    보석 'tzinfo 데이터' 보석 'tzinfo'

    그리고 번들 설치합니다.

  3. ==============================

    3.그냥 앱 터미널에 넣고 :

    그냥 앱 터미널에 넣고 :

    gem install tzinfo-data
    

    다음 gemfile 라인을 변경 :

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

    다시 터미널에서 :

    bundle update
    

    즉 직접 문제를 해결합니다.

  4. ==============================

    4.당신의 보석 파일에 다음 줄을 추가

    당신의 보석 파일에 다음 줄을 추가

  5. ==============================

    5.나는 도커 컨테이너에 레드 마인을 설치하려고하는 오류가 발생했습니다 :

    나는 도커 컨테이너에 레드 마인을 설치하려고하는 오류가 발생했습니다 :

    RAILS_ENV=production bundle exec rake db:migrate
    

    패키지 tzdata가 내 우분투 이미지에 설치되지 않았기 때문에 나에게 오류를했다.

    apt-get update && apt-get install tzdata -y
    

    트릭을했다.

  6. ==============================

    6.어쩌면 tzinfo가 시스템에 설치되어 있지, 그것을 설치하려고 :

    어쩌면 tzinfo가 시스템에 설치되어 있지, 그것을 설치하려고 :

     gem install tzinfo
     gem install tzinfo-data
    
  7. ==============================

    7.나도이 문제를 가지고 있었고, BOTH 추가하여 고정 : tzinfo - 데이터 플랫폼의 목록에 x64_mingw을, 그리고 gemfile에 'tzinfo'보석. 그리고 번들 설치합니다.

    나도이 문제를 가지고 있었고, BOTH 추가하여 고정 : tzinfo - 데이터 플랫폼의 목록에 x64_mingw을, 그리고 gemfile에 'tzinfo'보석. 그리고 번들 설치합니다.

  8. ==============================

    8.나는 맥 OS 모하비 10.14.5에서이 문제에 달려 나는 그것이 맥 OS 내 심볼릭 링크가 올바른 제공 영역 정보 파일을 읽을 수 없습니다 상황을 어떤 것을 발견했다.

    나는 맥 OS 모하비 10.14.5에서이 문제에 달려 나는 그것이 맥 OS 내 심볼릭 링크가 올바른 제공 영역 정보 파일을 읽을 수 없습니다 상황을 어떤 것을 발견했다.

    나는 파일이 명령을 사용한다 곳이 아래를 추적 할 수 있었다 TZInfo :: ZoneinfoDataSource.search_path 그것은 [ "은 / usr / 공유 /은 zoneinfo ''은 / usr / share / lib / zoneinfo 표준", "은 / etc /은 zoneinfo"]의 출력을 제공 하였다.

    나는 /는 / usr / share으로 찾기 시작은 zoneinfo하고 읽을 수있는 파일이 있었다. 그러나 그들을 실행 그들을 읽고, 그들을 발견되지 않았습니다 여전히 레일 ..? 내가 다음에 / /usr/share/zoneinfo.default/의 다른 파일에서 심볼릭 링크를 생성 그래서 등 /은 zoneinfo (마지막 경로가 TZInfo가 보인다)

    그래서 결국이 문제를 해결하기 위해 나를 위해 일한 명령 LN -s /usr/share/zoneinfo.default을 / etc /은 zoneinfo이었다

    희망이 정보는 미래에 누군가에게 도움이됩니다.

  9. ==============================

    9.그래서, 보석은 아주 적절하게 설치하는 것 같지 않았다, 나는 다음을 수행했다

    그래서, 보석은 아주 적절하게 설치하는 것 같지 않았다, 나는 다음을 수행했다

    보석 'tzinfo 데이터' 보석 'tzinfo'

    그때

    다음 디렉토리로 이동합니다. 당신은 tzinfo에 스플 라이스 tzinfo 데이터를해야합니다. tzinfo 데이터 파일에 가서 .. local_pathname / tzinfo 데이터-1.2014.5 / lib 디렉토리 / tzinfo 에이 디렉토리의 모든 내용을 복사 ... local_pathname / tzinfo-1.2.1 / lib 디렉토리 / tzinfo (나를 위해이 '데이터'파일과 '데이터'디렉토리를 복사하는 의미)

    그때 이동 local_pathname / tzinfo-1.2.1 / lib에 파일을 열, tzinfo, (안 디렉토리) 이 줄을 추가 필요 'tzinfo / 데이터'

    이 있었다 이러한 통증은 파악하기

  10. from https://stackoverflow.com/questions/23022258/tzinfodatasourcenotfound-error-starting-rails-v4-1-0-server-on-windows by cc-by-sa and MIT license