2016-12-28 7 views
2

Installation von Redmine. Ich habe versucht,Gem :: Ext :: BuildError: FEHLER: Fehler beim Erstellen der nativen GEM-Erweiterung. auf CenOS 6.5

bundle install --without development test postgresql sqlite 

, aber Fehler.

Gem :: Ext :: BuildError: FEHLER: Fehler beim Erstellen der gem nativen Erweiterung.

current directory: 
/usr/local/lib/ruby/gems/2.4.0/gems/json-1.8.3/ext/json/ext/generator 
/usr/local/bin/ruby -r ./siteconf20161228-21055-1dxe9y9.rb extconf.rb 
creating Makefile 

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

current directory: 
/usr/local/lib/ruby/gems/2.4.0/gems/json-1.8.3/ext/json/ext/generator 
make "DESTDIR=" 
compiling generator.c 
generator.c: In function ‘generate_json’: 
generator.c:861: error: ‘rb_cFixnum’ undeclared (first use in this 
function) 
generator.c:861: error: (Each undeclared identifier is reported only 
once 
generator.c:861: error: for each function it appears in.) 
generator.c:863: error: ‘rb_cBignum’ undeclared (first use in this 
function) 
At top level: 
cc1: warning: unrecognized command line option "-Wno-self-assign" 
cc1: warning: unrecognized command line option 
"-Wno-constant-logical-operand" 
cc1: warning: unrecognized command line option 
"-Wno-parentheses-equality" 
cc1: warning: unrecognized command line option 
"-Wno-tautological-compare" 
make: *** [generator.o] error 1 

make failed, exit code 2 

Gem files will remain installed in 
/usr/local/lib/ruby/gems/2.4.0/gems/json-1.8.3 for inspection. 
Results logged to 
/usr/local/lib/ruby/gems/2.4.0/extensions/x86_64-linux/2.4.0-static/json-1.8.3/gem_make.out 

An error occurred while installing json (1.8.3), and Bundler 
cannot continue. 
Make sure that `gem install json -v '1.8.3'` succeeds before 
bundling. 

Also, ich habe gem install json -v '1.8.3 versucht, aber ich konnte es nicht lösen.

Hätten Sie etwas dagegen, dieses Problem zu lesen?

Antwort

1

Rubin 2.4 ist sehr neu. In der Tat wurde es erst vor 3 Tagen veröffentlicht.

Da es in Ruby 2.4 mehrere interne Änderungen gibt, ist es sehr wahrscheinlich, dass viele Edelsteine ​​(und Redmine selbst) mit dieser Version von Ruby noch nicht kompatibel sind.

Aus Ihrer Fehlermeldung scheint es tatsächlich, dass das JSON-Juwel angepasst werden muss, um einige Änderungen in Ruby 2.4 in Bezug auf ganze Zahlen zu behandeln.

Sie sollten eine ältere Version von Ruby für jetzt, z. Rubin 2.3.3. Wie Sie auf http://www.redmine.org/projects/redmine/wiki/RedmineInstall#Ruby-interpreter sehen können, benötigt Redmine spezifische Ruby-Versionen, abhängig von der Version von Redmine.

+1

Ich verstehe ... Das bedeutet Ruby-2.4 unterstützen keine JSON 1.8.3. Dann gibt es keine Informationen, die stabil (?) Edelsteine ​​Liste folgende Ruby-Version? Ich möchte wissen, Schlüsselwort, um mich selbst. – Johnson

+0

Nun, jedes Juwel implementiert ihre eigenen Kompatibilitätsmechanismen.Um sicher zu sein, müssen Sie die Dokumentation lesen, versuchen Sie es oder Fragen Sie die Betreuer.Sie können auch nach "[Gemname] Ruby 2.4" oder "[Gemname] [Fehlermeldung]" suchen. Wie für das JSON-Juwel, unterstützen sie Ruby 2.4 [seit Json 2.0] (https://github.com/flori/json/blob/master/CHANGES.md#2015-09-11-200). Die erforderlichen Änderungen [wurden in die 1.8-Zweigstelle zurückportiert] (https://github.com/flori/json/issues/308), sind aber noch nicht veröffentlicht. –

0

erster Lauf

gem install bundler 

Es installiert die neueren Bündler und löst die native Erweiterung Abhängigkeiten

dann

bundle install 

laufen sollte das Ihr Problem lösen

0

Ich hatte das gleiche Problem gerade jetzt. Um es zu lösen, installieren Sie die neueste Version von bundler und rmagick manuell mit gem install aktualisieren Sie alle anderen Pakete mit gem update und bundle update. Dies löste dieses Abhängigkeitsproblem von json 1.8.3 und ruby 2.4.

Aber ich laufe in einigen Problemen nach. Es scheint wie ruby 2.4 einige Änderungen in der Interpretation der Zahl, was bedeutet, dass es nicht kompatibel mit rail 4.x mehr (see this post) ist. rails und ihre Abhängigkeiten aktualisiert scheint noch nicht possibles zu sein, wie redmine protected_attributes benötigt, die activemodel (< 5.0, >= 4.0.1) auf abhängt und rails 5.x hängt von activemodel 5.x.

Es ist immer schlecht, wenn eine Aktualisierung der Abwärtskompatibilität bricht vor allem für Programmiersprache :(

Verwandte Themen