2016-06-07 12 views
0

Ich helfe derzeit dieses Rails-Projekt. (Ich begann gerade Ruby, sogar Programmierung, also bitte gehen Sie einfach auf mich ...) als ich versuchte, bundle install mit Projekt geteilten Gemfile/Gemfile.lock, verursacht es einige Aufregung mit json 1.8.1 und libv8 3.16.14.3 installieren.Bundle-Installation gelingt nicht

Ich traf ein Suchergebnis und die Hälfte der Antworten beteiligt bundle update, die, nach viel mehr Erfahrung Teammitglied, ein Tabu bei der Arbeit in einem Team ist, weil es ein Chaos bringt, Projekt Gemfile.lock zu projizieren.

Ich versuchte die andere Hälfte mit verschiedenen Dingen wie El-Captain Recovery-Modus Bit oder gem update -system oder libv8 verwandte Dinge. Es scheint, dass keiner von denen nicht funktioniert hat.

Dann wieder ist es sehr möglich, dass ich keine präzise Anfrage verwendet habe, um nach den Antworten zu suchen, da ich ein Anfänger bin und nicht viel Wissen oder Vermutungen darüber habe, was das Problem verursacht oder "das ist Basisbibliothek, also ich sollte das richtig machen. ' oder solche Sachen.

Wenn jemand mir helfen könnte, wäre das eine große Freundlichkeit. Ich werde das Protokoll hier lassen:

Installing json 1.8.1 with native extensions 
Gem::Ext::BuildError: ERROR: Failed to build gem native extension. 

current directory: /usr/local/lib/ruby/gems/2.3.0/gems/json- 

1.8.1/ext/json/ext/generator 
/usr/local/opt/ruby/bin/ruby -r ./siteconf20160607-22004-lr43ei.rb extconf.rb 
creating Makefile 

current directory: /usr/local/lib/ruby/gems/2.3.0/gems/json-1.8.1/ext/json/ext/generator 
make "DESTDIR=" clean 

current directory: /usr/local/lib/ruby/gems/2.3.0/gems/json-1.8.1/ext/json/ext/generator 
make "DESTDIR=" 
compiling generator.c 
In file included from generator.c:1: 
./../fbuffer/fbuffer.h:175:47: error: too few arguments provided to function-like macro invocation 
    VALUE result = rb_str_new(FBUFFER_PAIR(fb)); 
              ^
/usr/local/Cellar/ruby/2.3.1/include/ruby-2.3.0/ruby/intern.h:797:9: note: macro 'rb_str_new' defined here 

#define rb_str_new(str, len) __extension__ ( \ 
     ^
In file included from generator.c:1: 
./../fbuffer/fbuffer.h:175:11: warning: incompatible pointer to integer conversion initializing 'VALUE' (aka 'unsigned long') with an expression of type 'VALUE (const char *, long)' (aka 'unsigned long (const char *, long)') [-Wint-conversion] 
    VALUE result = rb_str_new(FBUFFER_PAIR(fb)); 
     ^  ~~~~~~~~~~ 
1 warning and 1 error generated. 
make: *** [generator.o] Error 1 

make failed, exit code 2 

Gem files will remain installed in /usr/local/lib/ruby/gems/2.3.0/gems/json-1.8.1 for inspection. 
Results logged to /usr/local/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-15/2.3.0/json-1.8.1/gem_make.out 
Installing libv8 3.16.14.3 with native extensions 

Gem::Ext::BuildError: ERROR: Failed to build gem native extension. 

    current directory: /usr/local/lib/ruby/gems/2.3.0/gems/libv8-3.16.14.3/ext/libv8 
/usr/local/opt/ruby/bin/ruby -r ./siteconf20160607-22004-1gr1tzk.rb extconf.rb 
creating Makefile 
Compiling v8 for x64 
Using python 2.7.10 
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 
Using compiler: /usr/bin/g++ 
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 
../src/cached-powers.cc:136:18: error: unused variable 'kCachedPowersLength' [-Werror,-Wunused-const-variable] 
static const int kCachedPowersLength = ARRAY_SIZE(kCachedPowers); 
       ^
1 error generated. 
make[1]: *** [/usr/local/lib/ruby/gems/2.3.0/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/cached-powers.o] Error 1 
make: *** [x64.release] Error 2 
/usr/local/lib/ruby/gems/2.3.0/gems/libv8-3.16.14.3/ext/libv8/location.rb:36:in `block in verify_installation!': libv8 did not install properly, expected binary v8 archive '/usr/local/lib/ruby/gems/2.3.0/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a'to exist, but it was not found (Libv8::Location::Vendor::ArchiveNotFound) 
    from /usr/local/lib/ruby/gems/2.3.0/gems/libv8-3.16.14.3/ext/libv8/location.rb:35:in `each' 
    from /usr/local/lib/ruby/gems/2.3.0/gems/libv8-3.16.14.3/ext/libv8/location.rb:35:in `verify_installation!' 
    from /usr/local/lib/ruby/gems/2.3.0/gems/libv8-3.16.14.3/ext/libv8/location.rb:26:in `install!' 
    from extconf.rb:7:in `<main>' 
GYP_GENERATORS=make \ 
    build/gyp/gyp --generator-output="out" build/all.gyp \ 
        -Ibuild/standalone.gypi --depth=. \ 
        -Dv8_target_arch=x64 \ 
        -S.x64 -Dv8_enable_backtrace=1 -Dv8_can_use_vfp2_instructions=true -Darm_fpu=vfpv2 -Dv8_can_use_vfp3_instructions=true -Darm_fpu=vfpv3 
    CXX(target) /usr/local/lib/ruby/gems/2.3.0/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/allocation.o 
    CXX(target) /usr/local/lib/ruby/gems/2.3.0/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/atomicops_internals_x86_gcc.o 
    CXX(target) /usr/local/lib/ruby/gems/2.3.0/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/bignum.o 
    CXX(target) /usr/local/lib/ruby/gems/2.3.0/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/bignum-dtoa.o 
    CXX(target) /usr/local/lib/ruby/gems/2.3.0/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/cached-powers.o 

extconf failed, exit code 1 

Gem files will remain installed in /usr/local/lib/ruby/gems/2.3.0/gems/libv8-3.16.14.3 for inspection. 
Results logged to /usr/local/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-15/2.3.0/libv8-3.16.14.3/gem_make.out 

Es tut mir leid Jungs, ich bin mit Mac!

Antwort

1

fand ich den Grund für dieses Scheitern, die die Kompatibilität der Versionen dieser Edelsteine ​​und Ruby-Version war.

Ich wusste sehr, dass das ein Problem sein könnte, aber ich dachte, ich stellte sicher, dass ich die richtige Ruby-Version für die Gems-Versionen im Gemfile/Gemfile.lock angegeben habe. Was ich vermisst habe, war die Spur der Fehlkonfiguration von rbenv, die im Protokoll als '2.3.0' angezeigt wird. Was ich dachte, dass es hätte sein sollen, war "2.0.0".

Da ich kein gutes rbenv-Setup gemacht habe, bezog Bundler den Ruby nicht im Projektverzeichnis. Daher offensichtliche Versionsinkompatibilitäten.

0

ERROR: Failed to build gem native extension.

Dies könnte sein, weil Sie nicht node.js installiert haben:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - sudo apt-get install -y NodeJS

+0

Vielen Dank für Ihren Rat! Tatsächlich benutze ich die ganze Zeit npm. Nun, um sicher zu sein, Ausgabe von 'node -v' ist' v6.2.0' – Hiro

+0

Verwenden Sie den Modus Legacy-Version – vipin

0

Versuchen Sie dieses:

sudo apt-get install nodejs 
+0

Ich schätze Ihren Vorschlag! Obwohl ich selbst nodejs nicht verwende, benutze ich nodejs wie npm und seine Pakete. – Hiro

+0

immer wenn ich ror auf dem neuen System installiert habe ... dieser Fehler tritt immer auf ... nach dem Ausführen über dem Befehl ... Fehler behoben – Mukesh

0

ich bei Ihnen ein ähnliches Problem haben, außer mir nur ich einen Fehler kam zu dem json bezogen Edelstein (gleiche Versionsnummer und alles). Ich fand this solution und es funktionierte für mich (ich musste zuerst den Gemfile.lock löschen). Hoffe es hilft dir ein bisschen!

+0

Vielen Dank für Ihre Antwort. das ist es.Wenn ich eine Option zum Löschen von Gemfile.lock habe, ist es sehr einfach. Aber es wird 'f * ck project configure' bedeuten, also kann ich das in diesem Fall nicht machen. – Hiro

1

zuerst Ihre Gemfile.lock Datei löschen, dann

bundle install 
+0

Meinst du "Gemfile"? – Hiro

+0

nein es gibt einen anderen Dateinamen als Gemfile.lock – vipin

+0

Wie ich in der Frage erwähnt habe, "Gemfile/Gemfile.lock = project configure", so dass Sie fast nie so Zeug zu ihnen, es sei denn, Sie sind natürlich verantwortlich für die Projektentscheidungen. – Hiro

Verwandte Themen