2017-09-06 9 views
1

'msgpack'이 필요한 프로젝트에 로그인 할 때 '유창한 로거'젬을 사용합니다. bundle install을 실행하면 msgpack-1.1.0-x86-mingw32가 발생하며, Windows에서 필요로 할 때 예외가 발생합니다.특정 플랫폼 용 gem을 설치하기 위해 번들러 가져 오기

kernel_require.rb:55:in `require': cannot load such file -- msgpack/msgpack (LoadError) 

그러나 단지 이런 --platform=ruby으로 보석을 다시 설치하여이 문제에 대한 해결 방법이 존재한다 :

gem uninstall msgpack 
gem install msgpack --platform=ruby 

내가 다른 곳에서 표시된대로 Gemfile에이 요구 사항을 넣어 시도 (찾을 수 없습니다

gem 'msgpack', :platforms=>:ruby 

내가 루비 1.9.3p551 (그리고 들러의 V 1.1을 사용하고 있습니다 : 링크 기압),하지만 아무것도 (이전 msgpack-1.1.0-x86-mingw32 설치)하지 않았다 4.6) Windows 7에서, 중요한 경우에 대비하여.

편집

원하는 모든 사람을 허용하려면, 내가 예제 소스를 제공 그것을 자신을 시도합니다.

Gemfile :

source 'http://rubygems.org' 

ruby '1.9.3' 

gem 'fluent-logger' 
gem 'msgpack', :platforms=>:ruby_19 
#for windows local dev msgpack needs to be installed with --platform=ruby 

foo.rb

require 'fluent-logger' 

logger= Fluent::Logger::FluentLogger.new 
#logger.post('idx',{message:'it works'}) 
puts 'worked' 

로거가 유효한 연결을 생성하지만, 그 통해 실행하는 경우
이 (여기에 유일한 중요한 것은이 때문이다 중대하지 않을 것이다 Gemfile은 msgpack (내 경우에 1.1.0 대신에 1.1.0-x86-mingw32 대신에)의 올바른 버전을 가져 오지 않는다)

답변

0

http://bundler.io/man/gemfile.5.html

복사하여 위에서 붙여 넣기 :

당신은 RBX, JRuby를, 그리고 mswin를 제외한 모든 플랫폼에 플랫폼 및 버전에 따라 더 제한 할 수 있습니다.

플랫폼 외에 버전을 지정하려면 분리 문자없이 버전 번호를 플랫폼에 추가하십시오. 예를 들어, 보석은 루비 2.3 플랫폼에서 사용하도록 지정하는 데 사용 :

ruby_23

플랫폼의 전체 목록과 지원되는 버전이 포함되어

루비 1.8, 1.9, 2.0 2.1, 2.2, 2.3, 2.4, 2.5

MRI 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5

와 Mingw 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4 , 2.5

x64_mingw 2.0, 2.1, 2.2, 2.3, 2.4, 2.

보석 "나약한": 플랫폼 => : JRuby를

보석 "루비 - 디버그": 플랫폼 => : mri_18

5 그룹과 마찬가지로, 하나 개 이상의 플랫폼을 지정할 수 있습니다 보석 "노코 기리": 플랫폼 => [: mri_18 : JRuby를]

귀하의 경우 그래서

, 맨 페이지에 대한

gem 'msgpack', :platforms=>:ruby_19 
+0

감사를 시도 (내가 일을 놓친 불행히도 이전과 같은 보석을 사용한다. 'bundle bundle msgpack D :/Ruby193/lib/ruby ​​/ gems/1.9.1/gems/msgpack-1.1.0-x86-mingw32' 그리고 이전과 같은 오류가 발생합니다 'D : /Ruby193/lib/site/ruby/1.9.1/rubygems/custom_require.rb : 36 :'require '에 : 해당 파일을로드 할 수 없습니다 - msgpack/msgpack LoadError)' – dCSeven