Lorsque j'essaie d'installer la dernière version de compass ( https://rubygems.org/gems/compass/versions/1.0.0.alpha.17 ), l'erreur suivante apparaît.
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?
Essayez ceci, puis essayez à nouveau d'installer la boussole
apt-get install Ruby-dev
Pour installer Compass sur Mac OS X 10.10 (Yosemite) devait effectuer les tâches suivantes:
1. Configurer l'environnement Ruby
Ruby -v
Sudo gem update --system
de gem2. Configurer l'environnement MAC
-Installez le Outils de ligne de commande Xcode c'est la clé pour installer Compass. xcode-select --install
-Installer les outils de ligne de commande Xcode est essentiel pour que Compass fonctionne sous OS X
3. Installer Compass
Sudo gem install compass
Le meilleur moyen est Sudo apt-get install Ruby-compass
d’installer la boussole.
Vous pouvez essayer dans Debian avec
Sudo apt-get install gcc Ruby-dev rubygems compass
pour Fedora, Centos
yum -y install gcc Ruby-devel rubygems compass
Cela a fonctionné pour moi.
Je me suis battu avec vous même problème pendant environ 3 heures. À partir de Compass 1.0.alpha19
, la configuration requise correspond à la version 1.9.3 de rvm.
Il y a plusieurs messages non collectés, mais ce qui a fonctionné pour moi a été 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 cela l'a fait. J'espère que cela fonctionne pour vous aussi!
Pour que je puisse résoudre ce problème, je devais m'assurer d'avoir la version la plus récente de Ruby et les gemmes gem update --system
; ensuite, je devais m'assurer que Xcode et les outils de ligne de commande étaient installés: xcode-select --install
.
Sous Mac OS, vous devez installer cette fonctionnalité!
xcode-select --install
Salut, c’était un défi de le faire fonctionner sur Mac, alors voici une solution
rvm requirements
puis exécutez rvm install 2.1
gem install compass --pre
Je ne suis pas sûr, mais la version de Ruby sur Mavericks ne prend pas en charge les extensions natives, etc. ... donc, si vous pointez sur une autre version de Ruby comme je l'ai fait "2.1", cela fonctionne bien.
Je ne sais pas pourquoi aucune de ces réponses n’est indiquée, mais j’ai atterri ici grâce à une recherche google, je transmettrai donc 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 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 devrez pas mettre à jour Ruby car vous avez téléchargé la dernière version stable.gem install compass --pre
Pour installer Compass sur Yosemite, vous devez configurer l’environnement Ruby et les outils de ligne de commande Xcode . Cependant, le plus important, après la mise à jour de Xcode, assurez-vous de lancer l’application Xcode et d’accepter le termes de la licence . Il complètera l’installation des composants . Après cela, vous pourrez installer Compass: Sudo gem install compass.
Vous devrez peut-être installer les outils de ligne de commande d'Apple, qui ne sont probablement pas installés sur votre système par défaut. J'avais la même erreur, mais avant de suivre l'une quelconque des instructions ici, j'ai installé Outils de ligne de commande (en raison d'un problème non lié) et voici que compas est installé sans problème lorsque j'ai réessayé. YMMV.
vous devez avoir gcc, json_pure
je recueille quelques informations de plusieurs publications
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
Sur yosemite, il vous suffit d'installer les outils de ligne de commande. alors ça marche.
Même si d'autres pierres précieuses sont installées correctement. Vous devez exécuter xcode-select --install pour que gem install compass fonctionne.
Bonne chance.
Essayez brew install coreutils
.
J'ai rencontré ce problème lors de la reconstruction d'un projet vieillissant de sass/compass, récemment mis à jour vers Ruby 2.2.5 par un collègue. Le projet utilise rvm et bundler. C'étaient mes ordres
$ rvm install Ruby-2.2.5
$ rvm use Ruby-2.2.5
$ gem install bundler
$ bundle install
Cela m'a amené à lire les fameuses erreurs d'installation ffi
, signalées dans l'environnement StackOverflow:
An error occurred while installing ffi (1.9.14), and Bundler cannot continue.
La plupart des suggestions pour résoudre ce problème consistent à installer des outils de ligne de commande Xcode. Cependant, cela était déjà installé dans mon environnement:
$ xcode-select -p
/Library/Developer/CommandLineTools
Autres suggestions pour installer gcc ... alors j'ai essayé:
$ brew install gcc46
Mais cela a également échoué en raison d'une erreur de segmentation ... ¯\_(ツ)_/¯
.
Alors, j’ai alors essayé d’installer la boussole à la main, juste pour voir si cela donnerait la même erreur ffi
:
$ gem install compass
Mais à ma grande surprise, j'ai eu une erreur totalement différente:
make: /usr/local/bin/gmkdir: No such file or directory
J'ai donc cherché ce problème et trouvé cet ancien billet de blog qui disait d'installer coreutils:
$ brew install coreutils
Après avoir installé coreutils
avec Homebrew, l’outil de groupement a pu terminer et installer boussole et dépendances avec succès.
La fin.
quand
gem installer surcommit
est exécuté aussi cette erreur ont été placés dans le terminal.
Failed to build gem native extension
s'il vous plaît faites la même chose
xcode-select --install
et cela résoudra aussi ce problème
Dans Ubuntu 14.04, lors de l’exécution de apt-get install rubygems , une erreur se produit.
E: Le paquet 'rubygems' n'a pas de candidat d'installation
suivez la commande pour résoudre les problèmes.
Sudo apt-get installer gcc Ruby-Devel Ruby-Integration Ruby-Compass
Sous Mac OS X 10.9, si vous essayez xcode-select --install
, vous obtiendrez l’erreur suivante:
Impossible d'installer le logiciel car il n'est actuellement pas disponible à partir de le serveur de mise à jour de logiciels.
La solution consiste à télécharger les outils de ligne de commande (OS X 10.9) directement sur le site Web Apple: https://developer.Apple.com/downloads/index.action?name=for%20Xcode%20-
Vous pourrez ensuite installer la dernière version des outils de ligne de commande.
Si vous utilisez Ubuntu, vous devriez essayer d'installer build-essential
apt install 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.
J'ai eu le même problème sous Linux Mint mais j'ai pu le résoudre en désinstallant Ruby et en l'installant à nouveau.
Désinstaller Ruby:
Sudo apt-get remove Ruby
Il a rapporté des paquets Ruby comme:
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.
Désinstaller les paquets restants *
apt-get autoremove
Installer à nouveau Ruby
Sudo apt-get install Ruby2.2
Installer Compass
Sudo gem install compass
La dernière commande a été exécutée avec succès.
Essayez ceci, puis essayez à nouveau d'installer la boussole
Sudo apt install Ruby-full