it-swarm.com.de

Fehler beim Erstellen der nativen Gem-Erweiterung (Installieren von Compass)

Wenn ich versuche, die neueste Kompassversion ( https://rubygems.org/gems/compass/versions/1.0.0.alpha.17 ) zu installieren, erhalte ich die folgende Fehlermeldung.

ERROR:  Error installing compass:
ERROR: Failed to build gem native extension.

 ERROR:  Error installing compass:
  ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/Ruby extconf.rb
checking for ffi.h... no
checking for ffi.h in /usr/local/include,/usr/include/ffi... yes
checking for ffi_call() in -lffi... yes
checking for ffi_prep_closure()... yes
checking for ffi_raw_call()... no
checking for rb_thread_blocking_region()... yes
checking for rb_thread_call_with_gvl()... yes
checking for rb_thread_call_without_gvl()... yes
checking for ffi_prep_cif_var()... no
creating extconf.h
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling AbstractMemory.c
compiling ArrayType.c
compiling Buffer.c
compiling Call.c
Call.c:303:5: warning: implicit declaration of function 'rb_thread_call_without_gvl' is invalid in C99 [-Wimplicit-function-declaration]
    rbffi_thread_blocking_region(call_blocking_function, data, (void *) -1, NULL);
    ^
./Thread.h:78:39: note: expanded from macro 'rbffi_thread_blocking_region'
# define rbffi_thread_blocking_region rb_thread_call_without_gvl
                                      ^
1 warning generated.
compiling ClosurePool.c
compiling DataConverter.c
DataConverter.c:43:1: warning: control may reach end of non-void function [-Wreturn-type]
}
^
1 warning generated.
compiling DynamicLibrary.c
compiling ffi.c
compiling Function.c
Function.c:479:33: warning: incompatible pointer types passing 'VALUE (void *)' to parameter of type 'void *(*)(void *)' [-Wincompatible-pointer-types]
        rb_thread_call_with_gvl(callback_with_gvl, &cb);
                                ^~~~~~~~~~~~~~~~~
Function.c:102:46: note: passing argument to parameter 'func' here
extern void *rb_thread_call_with_gvl(void *(*func)(void *), void *data1);
                                             ^
Function.c:563:9: warning: implicit declaration of function 'rb_thread_call_without_gvl' is invalid in C99 [-Wimplicit-function-declaration]
        rb_thread_call_without_gvl(async_cb_wait, &w, async_cb_stop, &w);
        ^
Function.c:738:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
3 warnings generated.
compiling FunctionInfo.c
compiling LastError.c
compiling LongDouble.c
compiling MappedType.c
compiling MemoryPointer.c
compiling MethodHandle.c
compiling Platform.c
compiling Pointer.c
compiling Struct.c
compiling StructByReference.c
compiling StructByValue.c
compiling StructLayout.c
compiling Thread.c
compiling Type.c
compiling Types.c
compiling Variadic.c
linking shared-object ffi_c.bundle
clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
make: *** [ffi_c.bundle] Error 1

make failed, exit code 2

Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/ffi-1.9.3 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-13/2.0.0/ffi-1.9.3/gem_make.out

Was ist denn hier los? Wie installiere ich den neuesten Kompass ohne Fehler?

252
cusejuice

Probieren Sie dies aus und installieren Sie den Kompass erneut

apt-get install Ruby-dev
541

Um Kompass zu installieren, musste unter Mac OS X 10.10 (Yosemite) Folgendes ausgeführt werden:

1. Ruby-Umgebung einrichten

  • Stellen Sie sicher, dass Ruby installiert und auf dem neuesten Stand ist: Ruby -v
  • Sudo gem update --system des gems aktualisieren

2. MAC-Umgebung einrichten

-Installieren Sie die Xcode Command Line Tools Dies ist der Schlüssel zum Installieren von Compass. xcode-select --install

-Installation der Xcode-Befehlszeilen-Tools sind der Schlüssel, damit Compass unter OS X funktioniert

3. Kompass installieren

Sudo gem install compass

115
neteru

Der beste Weg ist Sudo apt-get install Ruby-compass, um Kompass zu installieren. 

41
cooljl31

Sie können es in Debian mit versuchen

Sudo apt-get install gcc Ruby-dev rubygems compass

für Fedora, Centos

yum -y install gcc Ruby-devel rubygems compass

Es hat für mich funktioniert.

34
vanduc1102

Ich habe mit dir dasselbe Thema ungefähr 3 Stunden lang gekämpft. Ab Compass 1.0.alpha19 gilt die Voraussetzung für die rvm-Version 1.9.3.

Es gibt mehrere nicht gesammelte Beiträge, aber für mich funktionierte Folgendes: 

  1. Sudo gem uninstall sass
  2. Sudo gem uninstall compass
  3. rvm install Ruby-1.9.3-p448
  4. Sudo gem install sass --pre
  5. Sudo gem install compass --pre

und das hat es getan. Ich hoffe es funktioniert auch für Sie!

28

Um dieses Problem zu lösen, musste ich sicherstellen, dass ich die aktuellste Version von Ruby und die Edelsteine ​​gem update --system hatte. Dann musste ich sicherstellen, dass Xcode und die Befehlszeilentools installiert waren: xcode-select --install

23
BlackHatSamurai

Unter Mac OS müssen Sie diese Funktion installieren! 

xcode-select --install
13
user3645907

Hallo, es war eine Herausforderung, damit es auf dem Mac funktioniert

  1. Installiere macports
  2. Installiere rvm
  3. Terminal neu starten
  4. Führen Sie rvm requirements und dann rvm install 2.1 aus.
  5. Und als letzten Schritt gem install compass --pre

Ich bin nicht sicher, aber die Ruby-Version von Mavericks unterstützt keine nativen Erweiterungen usw. Wenn Sie also auf eine andere Ruby-Version verweisen, wie ich es mit "2.1" gemacht habe, funktioniert das gut.

10
paul.g

Ich weiß nicht, warum keiner von ihnen als die richtige Antwort markiert ist, aber ich bin durch eine Google-Suche hier gelandet, also werde ich weitergeben, was ich weiß ...

@ paul_gs Methode war für mich ziemlich nahe, meine Schritte auf einem Mac osx10.9 Retina:

  • Installieren Sie Macports
  • Installiere rvm (stabil mit Ruby, füge --insecure-Flag für SSL-bezogene Probleme hinzu) $ \curl -sSL --insecure https://get.rvm.io | bash -s stable --Ruby
  • Terminal neu starten/Profil neu einrichten
  • Führen Sie rvm requirements --with-gcc=clang aus. Sie müssen Ruby nicht aktualisieren, da Sie die letzte stabile Version heruntergeladen haben
  • Und als letzten Schritt gem install compass --pre
6
tbremer

Um Compass unter Yosemite zu installieren, müssen Sie die Ruby=) - Umgebung einrichten und die Xcode-Befehlszeilentools installieren. Am wichtigsten ist jedoch, dass Sie nach der Aktualisierung von Xcode auf jeden Fall) Starten Sie die Xcode-Anwendung und akzeptieren Sie die Apple Lizenzbedingungen. Damit ist die Installation der Komponenten abgeschlossen. Danach können Sie Compass: Sudo gem install compass installieren

4
Gratz

Möglicherweise müssen Sie die Befehlszeilentools von Apple installieren, die möglicherweise nicht standardmäßig auf Ihrem System installiert sind. Ich habe die gleiche Fehlermeldung erhalten, aber bevor ich eine der Anweisungen hier befolgte, installierte ich Command Line Tools (aufgrund eines nicht zusammenhängenden Problems) und siehe da, und der Kompass wurde ohne Probleme installiert, als ich es erneut versuchte. YMMV.

4
John Ryan

du musst gcc haben, json_pure

ich sammle einige Informationen von mehreren Postern 

Sudo gem uninstall sass
Sudo gem uninstall compass
Sudo gem update --system
gem install json_pure   (if you have already have continued to next step)
Sudo yum install gcc gcc-c++   (if you have already have continued to next step)
Sudo gem install sass

Sudo gem install compass

3
gsm

Auf Yosemite müssen Sie lediglich die Befehlszeilentools installieren. dann klappt es.

Auch wenn andere Edelsteine ​​gut installiert sind. Sie müssen xcode-select --install ausführen, damit gem install compass funktioniert.

Viel Glück.

2
A.Sanchez.SD

brew install coreutils versuchen.

Ich habe dieses Problem beim Wiederaufbau eines älteren Sass/Kompass-Projekts festgestellt, das kürzlich von einem Kollegen auf Ruby 2.2.5 aktualisiert wurde. Das Projekt verwendet Rvm und Bundler. Das waren meine Befehle 

$ rvm install Ruby-2.2.5
$ rvm use Ruby-2.2.5
$ gem install bundler
$ bundle install

Dies führte dazu, dass ich die bekannten ffi-Installationsfehler traf, die in der StackOverflow-Umgebung gemeldet werden: 

An error occurred while installing ffi (1.9.14), and Bundler cannot continue.

Die meisten Vorschläge zur Lösung dieses Problems sind die Installation von Xcode-Befehlszeilen-Tools. Dies war jedoch bereits in meiner Umgebung installiert:

$ xcode-select -p
/Library/Developer/CommandLineTools

Andere Vorschläge sagten, gcc zu installieren ... also versuchte ich:

$ brew install gcc46

Dies scheiterte aber auch an einem Segmentierungsfehler ... ¯\_(ツ)_/¯.

Ich habe dann versucht, den Kompass von Hand zu installieren, nur um zu sehen, ob er den gleichen ffi-Fehler hat:

$ gem install compass

Zu meiner Überraschung bekam ich jedoch einen völlig anderen Fehler:

make: /usr/local/bin/gmkdir: No such file or directory

Also suchte ich nach dieser Ausgabe und fand diesen alten Blog-Beitrag der sagte, dass coreutils installiert werden sollte:

$ brew install coreutils

Nach der Installation von coreutils mit Homebrew konnte Bundler Kompass und Abhängigkeiten erfolgreich abschließen und installieren.

Das Ende.

2
JamesWilson

wann 

gem install overcommit

läuft auch dieser Fehler wurde im Terminal platziert. 

Failed to build gem native extension

bitte mach das gleiche 

xcode-select --install

und es wird auch dieses Problem beheben

2
miukki

Für Mac OS: 

Mein Fehler war, dass ich vergessen habe, die Option in XCode - Preferences - Locations - Command Line Tools nach der neuen XCode-Installation auszuwählen (ich hatte 2 Versionen und später habe ich eine gelöscht). Vielleicht hilft es jemandem.

 enter image description here

2
Eridana
  • Sudo Gem Update - System
  • Sudo-Edelstein installieren Kompass 
2
Federico Bohn

In Ubuntu 14.04 gibt es einen Fehler, während apt-get install rubygems ausgeführt wird

E: Paket 'rubygems' hat keinen Installationskandidaten

folgen Sie dem Befehl, um die Probleme zu lösen.

Sudo apt-get install gcc Ruby-Entwicklung Ruby-Gems-Integration Ruby-Kompass

2
onebraveman

Wenn Sie unter Mac OS X 10.9 xcode-select --install versuchen, erhalten Sie folgende Fehlermeldung:

Die Software kann nicht installiert werden, da sie derzeit nicht von .__ verfügbar ist. den Software-Update-Server.

Sie können Command Line Tools (OS X 10.9) direkt von der Apple-Website herunterladen: https://developer.Apple.com/downloads/index.action?name=for%20Xcode%20-

Sie können dann die letzte Version der Befehlszeilentools installieren. 

2
lepix

Wenn Sie Ubuntu verwenden, sollten Sie build-essential installieren

apt install build-essential

Ich hatte Probleme mit der Installation von Edelsteinen bei der Neuinstallation von Ubuntu, und diese Lösung funktionierte für mich.

1
Adi

Ich hatte das gleiche Problem unter Linux Mint, konnte es jedoch beheben, indem ich Ruby deinstallierte und erneut installierte.

Ruby deinstallieren:

Sudo apt-get remove Ruby

Es wurden einige Ruby-Pakete gemeldet:

Package 'Ruby' is not installed, so not removed
The following packages were automatically installed and are no longer required:
libruby2.2 Ruby-chunky-png Ruby-sass rubygems-integration
Use 'apt-get autoremove' to remove them.

Restliche Pakete deinstallieren *

apt-get autoremove

Ruby erneut installieren

Sudo apt-get install Ruby2.2

Kompass installieren

Sudo gem install compass

Der letzte Befehl wurde erfolgreich ausgeführt.

0

Probieren Sie dies aus und installieren Sie den Kompass erneut

Sudo apt install Ruby-full
0
Pokkhi