2017-09-06 6 views
1

J'utilise la gemme 'fluent-logger' pour la connexion à notre projet, qui nécessite 'msgpack'. Si je cours bundle install il tire msgpack-1.1.0-x86-mingw32, qui jette une exception lorsqu'il l'exige sur Windows.Get bundler pour installer gem pour une plate-forme spécifique

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

Mais il existe une solution pour le problème, simplement réinstaller le bijou avec --platform=ruby comme ceci:

gem uninstall msgpack 
gem install msgpack --platform=ruby 

J'ai essayé de mettre cette exigence dans le Gemfile comme indiqué ailleurs (ne peut pas trouver le lien atm), mais il ne fait rien (installé msgpack-1.1.0-x86-mingw32 comme avant):

gem 'msgpack', :platforms=>:ruby 

J'utilise Ruby 1.9.3p551 (et Bundler v 1.1 4.6) sur Windows 7, au cas où cela serait important.

Modifier

Pour permettre à tous ceux qui veulent, ESSAYER eux-mêmes que je donne une source d'exemple.

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' 

L'enregistreur ne crée pas une connexion valide, mais si elle passe par c'est grand
(La seule chose importante ici est que le Gemfile ne tire pas dans la bonne version de msgpack (dans mon cas 1.1.0-x86-mingw32 au lieu de 1.1.0))

Répondre

0

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

Copier collé de ce qui précède:

Vous pouvez limiter davantage par la plate-forme et la version pour toutes les plateformes sauf pour RBX, JRuby et mswin.

Pour spécifier une version en plus d'une plate-forme, ajoutez le numéro de version sans le délimiteur à la plate-forme. Par exemple, pour indiquer qu'un bijou doit être utilisé uniquement sur les plateformes avec Ruby 2.3, utilisez:

ruby_23

La liste complète des plates-formes et versions pris en charge comprend:

rubis 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.5 Comme groupes, vous pouvez spécifier une ou plusieurs plates-formes:

bijou "mauviette",: plateformes =>: JRuby

bijou

"déboguées rubis",: plateformes =>: mri_18

petit bijou "nokogiri",: plateformes => [: mri_18,: JRuby]

donc, dans votre cas, essayez

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

Merci pour la page de manuel (i manqué e à un), mais malheureusement, il tire dans la même gemme que précédemment 'paquet λ spectacle msgpack D:/Ruby193/lib/ruby ​​/ gems/1.9.1/gems/msgpack-1.1.0-x86-mingw32' et cela conduit à la même erreur qu'avant 'D: /Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb: 36: 'require': impossible de charger un tel fichier - msgpack/msgpack (LoadError) ' – dCSeven