Wenn ich versuche, die neueste Version des Kompasses ( https://rubygems.org/gems/compass/versions/1.0.0.alpha.17 ) zu installieren , wird die folgende Fehlermeldung angezeigt.
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?
ruby
macos
terminal
compass-sass
Cusejuice
quelle
quelle
Antworten:
Versuchen Sie dies und versuchen Sie dann erneut, den Kompass zu installieren
quelle
choco install ruby2.devkit
Um Kompass unter Mac OS X 10.10 (Yosemite) zu installieren, musste Folgendes ausgeführt werden:
1. Richten Sie die Ruby-Umgebung ein
ruby -v
sudo gem update --system
2. Richten Sie die MAC-Umgebung ein
Installieren Sie die Xcode-Befehlszeilentools. Dies ist der Schlüssel zum Installieren von Compass.
Die Installation der Xcode-Befehlszeilentools ist der Schlüssel, damit Compass unter OS X funktioniert
3. Installieren Sie Compass
quelle
Am besten
sudo apt-get install ruby-compass
installieren Sie den Kompass.quelle
Sie können in Debian mit versuchen
für Fedora, Centos
Es hat bei mir funktioniert.
quelle
make
.ruby-dev
hat den Trick stackoverflow.com/questions/20559255/…Ich hatte ungefähr 3 Stunden lang mit Ihnen zu kämpfen. Ab
Compass 1.0.alpha19
ist die Voraussetzung für die rvm Version 1.9.3.Es gibt mehrere nicht gesammelte Beiträge, aber was für mich funktioniert hat, war 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 geschafft. Hoffe es funktioniert auch bei dir!
quelle
rvm install ruby-2.1.2
da 1.9.3 nicht mehr aktualisiert wirdUm dieses Problem zu lösen, musste ich sicherstellen, dass ich die aktuellste Version von Ruby und den Edelsteinen hatte
gem update --system
. Dann musste ich sicherstellen, dass Xcode und die Befehlszeilentools installiert waren :xcode-select --install
.quelle
xcode-select --install
wurde getan, aber das löst es nicht für michUnter Mac OS müssen Sie diese Funktion installieren!
quelle
Hallo, es war eine Herausforderung, es auf dem Mac zum Laufen zu bringen. Hier ist also eine Lösung
rvm requirements
dann laufenrvm install 2.1
gem install compass --pre
Ich bin mir nicht sicher, aber die Ruby-Version auf Mavericks unterstützt keine nativen Erweiterungen usw. Wenn Sie also auf eine andere Ruby-Version wie "2.1" verweisen, funktioniert dies einwandfrei.
quelle
Ich bin mir nicht sicher, warum keines davon als die richtige Antwort markiert ist, aber ich bin hier über eine Google-Suche gelandet, also werde ich weitergeben, was ich weiß ...
@ paul_gs Methode war ziemlich nah für mich, meine Schritte auf einem Mac osx10.9 Retina:
--insecure
Flag für SSL-bezogene Probleme) $\curl -sSL --insecure https://get.rvm.io | bash -s stable --ruby
rvm requirements --with-gcc=clang
Sie müssen Ruby nicht aktualisieren, da Sie die letzte stabile Version heruntergeladen habengem install compass --pre
quelle
Möglicherweise müssen Sie die Befehlszeilentools von Apple installieren, die wahrscheinlich nicht standardmäßig auf Ihrem System installiert sind. Ich habe den gleichen Fehler erhalten, aber bevor ich eine der Anweisungen hier befolgt habe, habe ich die Befehlszeilentools (aufgrund eines nicht damit zusammenhängenden Problems) installiert und siehe da, der Kompass wurde ohne Probleme installiert, als ich es erneut versuchte. YMMV.
quelle
Um Compass auf Yosemite zu installieren, müssen Sie die Ruby-Umgebung einrichten und die Xcode-Befehlszeilentools installieren. Am wichtigsten ist jedoch, dass Sie nach dem Aktualisieren von Xcode die Xcode-Anwendung starten und die Apple-Lizenzbedingungen akzeptieren . Damit ist die Installation der Komponenten abgeschlossen. Danach können Sie Compass: sudo gem install kompass installieren
quelle
Wenn Sie Ubuntu verwenden, sollten Sie versuchen, build-essential zu installieren
Ich hatte Probleme mit der Installation von Edelsteinen bei der Neuinstallation von Ubuntu, und diese Lösung funktionierte für mich.
quelle
Stellen Sie unter macOS 10.14 Mojave sicher, dass Sie bereits Befehlszeilentools über installiert haben,
xcode-select --install
und führen Sie den folgenden Befehl aus, um Standard-Header zu installieren.Versuchen Sie nun Ihren Befehl erneut.
quelle
Sie müssen gcc, json_pure haben
Ich sammle einige Informationen aus mehreren Post
Hallo, wenn ** sudo gem update --system ** nicht funktioniert hast du einen fehler im update bekommen dann benutze
sudo gem update --system 2.7.8
quelle
sudo yum install -y redhat-rpm-config
wegen dieses Fehlers auch für Fedora 24 laufen, bevor ich den Kompass installierte:gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory
sudo gem update --system
gab mir FehlerERROR: While executing gem ... (Errno::EPERM) Operation not permitted @ rb_sysopen - System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem
:: :(Auf yosemite müssen Sie lediglich die Befehlszeilentools installieren. dann funktioniert es.
Auch wenn andere Edelsteine gut installiert sind. Sie müssen xcode-select --install ausführen, damit der Gem-Installationskompass funktioniert.
Viel Glück.
quelle
Wenn Sie es unter Mac OS X 10.9 versuchen
xcode-select --install
, wird die folgende Fehlermeldung angezeigt:Die Lösung besteht darin, die Befehlszeilentools (OS X 10.9) direkt von der Apple-Website herunterzuladen: https://developer.apple.com/downloads/index.action?name=for%20Xcode%20-
Anschließend können Sie die letzte Version der Befehlszeilentools installieren.
quelle
In Ubuntu 14.04 tritt beim Ausführen von apt-get install rubygems ein Fehler auf
Befehl folgen, um die Probleme zu lösen.
quelle
Versuchen Sie es
brew install coreutils
.Ich habe dieses Problem beim Wiederaufbau eines alternden 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
Dies führte dazu, dass ich auf die bekannten
ffi
Installationsfehler stieß, die in der StackOverflow-Umgebung gemeldet werden:Die meisten Vorschläge zur Lösung dieses Problems sind die Installation von Xcode-Befehlszeilentools. Dies wurde jedoch bereits in meiner Umgebung installiert:
Andere Vorschläge sagten, gcc zu installieren ... also habe ich versucht:
Aber auch dies aufgrund eines Segmentierungsfehler gescheitert ...
¯\_(ツ)_/¯
.Also habe ich versucht, den Kompass von Hand zu installieren, um zu sehen, ob er den gleichen
ffi
Fehler liefert:Aber zu meiner Überraschung habe ich einen ganz anderen Fehler bekommen:
Also suchte ich nach diesem Problem und fand diesen alten Blog-Beitrag , in dem Coreutils installiert wurden:
Nach der Installation
coreutils
mit Homebrew konnte Bundler Kompass und Abhängigkeiten erfolgreich beenden und installieren.Das Ende.
quelle
quelle
wann
wird ausgeführt, auch dieser Fehler wurde im Terminal platziert.
Bitte mach das gleiche
und es wird auch dieses Problem beheben
quelle
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
. Dies behebt es nicht.Für Mac OS:
Mein Fehler war, dass ich vergessen habe, die Option in XCode - Einstellungen - Speicherorte - Befehlszeilentools nach der neuen XCode-Installation auszuwählen (ich hatte 2 Versionen und später habe ich eine gelöscht). Vielleicht hilft es jemandem.
quelle
Versuchen Sie dies und versuchen Sie dann erneut, den Kompass zu installieren
quelle
Ich hatte das gleiche Problem unter Linux Mint, konnte es jedoch beheben, indem ich Ruby deinstallierte und erneut installierte.
Ruby deinstallieren:
Es wurden einige Rubinpakete gemeldet wie:
Deinstallieren Sie die verbleibenden Pakete *
Installieren Sie Ruby erneut
Installieren Sie Compass
Der letzte Befehl wurde mit Erfolg ausgeführt.
quelle