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?
Probieren Sie dies aus und installieren Sie den Kompass erneut
apt-get install Ruby-dev
Um Kompass zu installieren, musste unter Mac OS X 10.10 (Yosemite) Folgendes ausgeführt werden:
1. Ruby-Umgebung einrichten
Ruby -v
Sudo gem update --system
des gems aktualisieren2. 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
Der beste Weg ist Sudo apt-get install Ruby-compass
, um Kompass zu installieren.
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.
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:
Sudo gem uninstall sass
Sudo gem uninstall compass
rvm install Ruby-1.9.3-p448
Sudo gem install sass --pre
Sudo gem install compass --pre
und das hat es getan. Ich hoffe es funktioniert auch für Sie!
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
.
Unter Mac OS müssen Sie diese Funktion installieren!
xcode-select --install
Hallo, es war eine Herausforderung, damit es auf dem Mac funktioniert
rvm requirements
und dann rvm install 2.1
aus.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.
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:
--insecure
-Flag für SSL-bezogene Probleme hinzu) $ \curl -sSL --insecure https://get.rvm.io | bash -s stable --Ruby
rvm requirements --with-gcc=clang
aus. Sie müssen Ruby nicht aktualisieren, da Sie die letzte stabile Version heruntergeladen habengem install compass --pre
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
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.
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
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.
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.
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
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
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.
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.
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.
Probieren Sie dies aus und installieren Sie den Kompass erneut
Sudo apt install Ruby-full