Lorsque j'essaie d'installer la dernière version de boussole ( https://rubygems.org/gems/compass/versions/1.0.0.alpha.17 ), j'obtiens l'erreur suivante.
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
Que se passe t-il ici? Comment installer la dernière boussole sans erreur?
ruby
macos
terminal
compass-sass
cusejuice
la source
la source
Réponses:
Essayez ceci, puis essayez de réinstaller la boussole
la source
choco install ruby2.devkit
mais cela ne fonctionne toujours pasAfin d'installer la boussole sur Mac OS X 10.10 (Yosemite) devait effectuer les opérations suivantes:
1. Configurer l'environnement Ruby
ruby -v
sudo gem update --system
2. Configurer l'environnement MAC
Installez les outils de ligne de commande Xcode, c'est la clé pour installer Compass.
L'installation des outils de ligne de commande Xcode est la clé pour faire fonctionner Compass sous OS X
3. Installez Compass
la source
La meilleure façon est
sudo apt-get install ruby-compass
d'installer une boussole.la source
Vous pouvez essayer dans Debian avec
pour Fedora, Centos
Ça a marché pour moi.
la source
make
.ruby-dev
a fait le tour stackoverflow.com/questions/20559255/…J'ai eu du mal avec vous le même problème pendant environ 3 heures. Depuis
Compass 1.0.alpha19
, la configuration requise pour la version 1.9.3 de rvm.Il existe plusieurs publications non collectées, mais ce qui a fonctionné pour moi était le suivant:
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
et ça l'a fait. J'espère que cela fonctionne aussi pour vous!
la source
rvm install ruby-2.1.2
que 1.9.3 ne soit plus mis à jourPour résoudre ce problème, je devais m'assurer d'avoir la version la plus récente de Ruby et des gemmes
gem update --system
; puis, je devais assurer que Xcode et les outils de ligne de commande ont été installés:xcode-select --install
.la source
xcode-select --install
a été fait mais cela ne le résout pas pour moiSur Mac OS, vous devez installer cette fonctionnalité!
la source
Salut, c'était un défi de le faire fonctionner sur Mac, de toute façon voici une solution
rvm requirements
puis courezrvm install 2.1
gem install compass --pre
Je ne suis pas sûr mais la version ruby sur Mavericks ne prend pas en charge les extensions natives, etc ... donc si vous pointez sur une autre version ruby comme je l'ai fait "2.1", cela fonctionne très bien.
la source
Je ne sais pas pourquoi aucun de ceux-ci n'est marqué comme la bonne réponse, mais j'ai atterri ici grâce à une recherche Google, donc je vais transmettre ce que je sais ...
La méthode de @ paul_g était assez proche pour moi, mes pas sur un Mac osx10.9 Retina:
--insecure
indicateur ruby add pour les problèmes liés à SSL) $\curl -sSL --insecure https://get.rvm.io | bash -s stable --ruby
rvm requirements --with-gcc=clang
Vous ne devez mettre à jour Ruby parce que vous avez téléchargé la dernière version stablegem install compass --pre
la source
Si vous utilisez Ubuntu, vous devriez essayer d'installer build-essential
J'ai eu des problèmes avec l'installation de gemmes sur une nouvelle installation d'ubuntu, et cette solution a fonctionné pour moi.
la source
Vous pourriez avoir besoin d'installer les outils de ligne de commande d'Apple, qui ne sont probablement pas installés par défaut sur votre système. J'obtenais la même erreur, mais avant de suivre l'une des instructions ici, j'ai installé les outils de ligne de commande (en raison d'un problème sans rapport) et voici la boussole installée sans problème lorsque j'ai réessayé. YMMV.
la source
Pour installer Compass sur Yosemite, vous devez configurer l'environnement Ruby et installer les outils de ligne de commande Xcode. Mais, chose la plus importante, après la mise à jour de Xcode, assurez-vous de lancer l'application Xcode et d'accepter les termes du contrat de licence Apple . Il achèvera l'installation des composants. Après cela, vous pouvez installer Compass: sudo gem install compass
la source
Pour macOS 10.14 Mojave, assurez-vous que vous avez déjà installé les outils de ligne de commande via
xcode-select --install
et exécutez la commande suivante pour installer les en-têtes std.Essayez à nouveau votre commande.
la source
vous devez avoir gcc, json_pure
je collecte des informations sur plusieurs articles
Salut si ** sudo gem update --system ** ne fonctionne pas, vous avez une erreur dans la mise à jour, puis utilisez
mise à jour sudo gem - système 2.7.8
la source
sudo yum install -y redhat-rpm-config
pour Fedora 24 avant d'installer la boussole à cause de cette erreur:gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory
sudo gem update --system
m'a donné des erreurs:ERROR: While executing gem ... (Errno::EPERM) Operation not permitted @ rb_sysopen - System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem
:(Sur yosemite, il vous suffit d'installer les outils de ligne de commande. alors ça marche.
Même si d'autres gemmes se sont bien installées. Vous devez exécuter xcode-select --install pour que la boussole d'installation de gemmes fonctionne.
Bonne chance.
la source
Sur Mac OS X 10.9, si vous essayez
xcode-select --install
, vous obtiendrez l'erreur suivante:La solution consiste à télécharger les outils de ligne de commande (OS X 10.9) directement à partir du site Web d'Apple: https://developer.apple.com/downloads/index.action?name=for%20Xcode%20-
Vous pourrez alors installer la dernière version des outils de ligne de commande.
la source
Dans Ubuntu 14.04, lors de l'exécution d' apt-get install rubygems , il y a une erreur
suivez la commande pour résoudre les problèmes.
la source
Essayez
brew install coreutils
.J'ai rencontré ce problème lors de la reconstruction d'un projet sass / compass vieillissant récemment mis à jour vers ruby 2.2.5 par un collègue. Le projet utilise rvm et bundler. Ce sont mes commandes
Cela m'a fait frapper le fameux
ffi
erreurs d'installation, qui sont signalées dans l'environnement StackOverflow:La plupart des suggestions pour résoudre ce problème consistent à installer les outils de ligne de commande Xcode. Cependant, cela était déjà installé dans mon environnement:
D'autres suggestions ont dit d'installer gcc ... alors j'ai essayé:
Mais cela a également échoué en raison d'un défaut de segmentation ...
¯\_(ツ)_/¯
.J'ai donc essayé d'installer la boussole à la main, juste pour voir si cela donnerait la même
ffi
erreur:Mais à ma grande surprise, j'ai eu une erreur totalement différente:
J'ai donc recherché ce problème et trouvé cet ancien article de blog qui disait d'installer coreutils:
Après l'installation
coreutils
avec Homebrew, bundler a pu terminer et installer la boussole et les dépendances avec succès.La fin.
la source
la source
quand
est exécuté également cette erreur a été placée dans le terminal.
s'il vous plaît faites de même
et cela résoudra aussi ce problème
la source
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
. Cela ne le résout pas.Pour Mac OS:
Mon erreur était que j'avais oublié de sélectionner l'option dans XCode - Préférences - Emplacements - Outils de ligne de commande après la nouvelle installation de XCode (j'avais 2 versions et plus tard j'en ai supprimé une). Peut-être que cela aidera quelqu'un.
la source
Essayez ceci, puis essayez de réinstaller la boussole
la source
J'ai eu le même problème sur Linux Mint mais j'ai pu le résoudre en désinstallant ruby et en le réinstallant.
Désinstaller ruby:
Il a rapporté quelques paquets rubis comme:
Désinstaller les packages restants *
Réinstaller Ruby
Installer la boussole
La dernière commande a été exécutée avec succès.
la source