2014-04-02 8 views
5

Ich kann Spring nicht ausführen. Hier ist das Fehlerprotokoll.Der Frühling funktioniert nicht. [nicht initialisierte Konstante Spring :: SID :: DL]

myid-no-MacBook-Pro:myid$ spring 
/Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/sid.rb:17:in `fiddle_func': uninitialized constant Spring::SID::DL (NameError) 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/sid.rb:30:in `sid' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/sid.rb:39:in `pgid' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/server.rb:76:in `set_pgid' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/server.rb:33:in `boot' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/server.rb:19:in `boot' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/run.rb:33:in `block in boot_server' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/run.rb:31:in `fork' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/run.rb:31:in `boot_server' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/run.rb:16:in `call' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/command.rb:7:in `call' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client.rb:23:in `run' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/bin/spring:6:in `<top (required)>' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/bin/spring:19:in `load' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/bin/spring:19:in `<main>' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/bin/ruby_executable_hooks:15:in `eval' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/bin/ruby_executable_hooks:15:in `<main>' 
^C/Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/run.rb:35:in `sleep': Interrupt 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/run.rb:35:in `boot_server' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/run.rb:16:in `call' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/command.rb:7:in `call' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client.rb:23:in `run' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/bin/spring:6:in `<top (required)>' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/bin/spring:19:in `load' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/bin/spring:19:in `<main>' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/bin/ruby_executable_hooks:15:in `eval' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/bin/ruby_executable_hooks:15:in `<main>' 

Ich benutze:

  • Rubin 1.9.3-P484
  • Rails3.2.17
  • Frühling 0.0.10
  • OSX 10.9
  • rbenv

Ich habe einige andere Tests versucht. Ich denke, dieses Problem ist 1.9.3 spezifisch.

myid-no-MacBook-Pro:~ myid$ ruby -v 
ruby 1.9.2p326 (2013-12-23 revision 44353) [x86_64-darwin13.1.0] 
myid-no-MacBook-Pro:~ myid$ irb 
irb(main):001:0> require 'fiddle' 
=> true 
irb(main):002:0> DL 
=> DL 
irb(main):003:0> require 'dl' 
=> false 
irb(main):004:0> DL 
=> DL 
irb(main):005:0> DL.fiddle? 
=> true 
irb(main):006:0> exit 




myid-no-MacBook-Pro:~ myid$ rbenv global 1.9.3-p484 
myid-no-MacBook-Pro:~ myid$ irb 
irb(main):001:0> require 'fiddle' 
LoadError: cannot load such file -- dl 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/1.9.1/fiddle.rb:4:in `<top (required)>' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
    from (irb):1 
    from /Users/myid/.rbenv/versions/1.9.3-p484/bin/irb:12:in `<main>' 
irb(main):002:0> DL 
NameError: uninitialized constant DL 
    from (irb):2 
    from /Users/myid/.rbenv/versions/1.9.3-p484/bin/irb:12:in `<main>' 
irb(main):003:0> require 'dl' 
LoadError: cannot load such file -- dl 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
    from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
    from (irb):3 
    from /Users/myid/.rbenv/versions/1.9.3-p484/bin/irb:12:in `<main>' 
irb(main):004:0> exit 




myid-no-MacBook-Pro:~ myid$ rbenv global 2.1.0 
myid-no-MacBook-Pro:~ myid$ irb 
irb(main):001:0> require 'fiddle' 
=> true 
irb(main):002:0> DL 
NameError: uninitialized constant DL 
    from (irb):2 
    from /Users/myid/.rbenv/versions/2.1.0/bin/irb:11:in `<main>' 
irb(main):003:0> require 'dl' 
DL is deprecated, please use Fiddle 
=> true 
irb(main):004:0> DL 
=> DL 
irb(main):005:0> DL.fiddle? 
=> true 
irb(main):006:0> 
+0

Es ist für viele andere Benutzer bekommen https://github.com/rails/spring/issues/274 können Sie bitte versuchen, mit Ruby 1.9.2 –

+0

Ich werde Ihren Vorschlag versuchen, aber ich brauche Ruby 1.9.3-p484 zu arbeiten, die in meiner Produktionsumgebung verwendet wird. – tkymtk

Antwort

5

Ich fand eine Lösung.

In meinem Fall funktionierte nach dem Ändern der C-Compiler von Clang zu Apple-GCC42 perfekt. Hier sind die Befehle, die ich verwendet habe.

$ rbenv uninstall 1.9.3-p484 
$ which gcc-4.2 
/usr/local/bin/gcc-4.2 
$ CC=/usr/local/bin/gcc-4.2 
$ rbenv install 1.9.3-p484 
$ rbenv rehash 

Related Link: https://github.com/rails/spring/issues/274

2

Dieses Problem scheint zu einer Reihe von Ruby zu beschränken 1.9.3 Patch-Level, auf einem Mac erstellt, mit der Apple-Compiler geliefert.

  • Ruby-1.9.3-p125, zusammengestellt mit Apples LLVM, Frühling 1.1.3,
  • Ruby-1.9.3-P547 (letzte stabilen zum Zeitpunkt des Schreibens) arbeitet, LLVM, Frühling 1.1.3 - scheitert .

Ich habe ein paar spätere Patches von Ruby (2.0, 2.1.2) spätestens stabil, LLVM. Sie arbeiten.

So, irgendwann in der 1.9.3-Serie, nach p125, Feder funktioniert nicht mehr bei Verwendung von LLVM. Irgendwann beginnen mindestens 2.0.0-p481, später Ruby-Versionen und kleinere Versionen und kleine Versionen, wieder mit LLVM zu arbeiten. IOW, sieht wie ein Ruby 1.9.3 Regressionsproblem aus, möglicherweise ein Ruby 2.0.0 Regressionsproblem. Ich habe dokumentiert, was ich auf Github als Frühlingsausgabe gefunden habe.

Gerade jetzt, wenn Sie 1.9.3 brauchen und Sie brauchen Frühling auf einem Mac ... betrachten Sie Zeus. ;)

Verwandte Themen