Lorsque j’essaie d’installer la dernière version de compas ( 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?
Essayez ceci, puis essayez à nouveau d’installer la boussole
apt-get install ruby-dev
Pour installer la boussole Sur Mac OS X 10.10 (Yosemite), vous devez 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. xcode-select --install
-Installer les outils de ligne de commande Xcode est la clé pour que Compass fonctionne sur OS X
3. Installez Compass
sudo gem install compass
La meilleure façon est d’ sudo apt-get install ruby-compass
pour installer la boussole.
J’ai lutté avec vous même problème pendant environ 3 heures. A partir de Compass 1.0.alpha19
, l’exigence est pour 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 ça l’a fait. J’espère que cela fonctionne pour vous aussi!
Vous pouvez essayer avec 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.
Pour que je puisse résoudre ce problème, je devais m’assurer de disposer de la version la plus récente de Ruby et de gems gem update --system
; alors, je devais m’assurer que Xcode et les outils de ligne de commande étaient installés: xcode-select --install
.
Salut ce fut un défi pour le faire fonctionner sur Mac, donc en tout cas voici une solution
rvm requirements
puis lancez rvm install 2.1
gem install compass --pre
Je ne suis pas sûr, mais la version Ruby sur Mavericks ne supporte pas les extensions natives, etc.
Sur Mac OS, vous devez installer cette fonctionnalité!
xcode-select --install
Je ne sais pas pourquoi aucune de ces réponses ne correspond à la bonne réponse, mais j’ai atterri ici grâce à une recherche Google, alors je vais vous transmettre ce que je sais …
La méthode de @paul_g était proche pour moi, mes pas sur Mac OSX10.9 Retina:
--insecure
indicateur pour les problèmes liés à SSL) $ \curl -sSL --insecure https://get.rvm.io | bash -s stable --ruby
\curl -sSL --insecure https://get.rvm.io | bash -s stable --ruby
rvm requirements --with-gcc=clang
Vous n’aurez pas à mettre à jour Ruby car vous avez téléchargé la dernière version stable gem install compass --pre
Vous devrez peut-être installer les outils de ligne de commande d’Apple, qui ne sont probablement pas installés par défaut sur votre système. Je recevais la même erreur, mais avant de suivre l’une des instructions ici, j’ai installé les outils de ligne de commande (à cause d’un problème sans rapport) et j’ai installé le compas sans problème lorsque j’ai réessayé. YMMV.
Pour installer Compass sur Yosemite, vous devez configurer l’environnement Ruby et installer les outils de ligne de commande Xcode. Mais le plus important, après la mise à jour de Xcode, assurez-vous de lancer l’application Xcode et d’accepter les termes de la licence Apple . Il complétera l’installation des composants. Après cela, vous pouvez installer Compass: sudo gem install compass
vous devez avoir gcc, json_pure
je recueille des informations de plusieurs postes
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 gems installés correctement. Vous devez exécuter xcode-select –install pour que gem install compass fonctionne.
Bonne chance.
Sur 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 pas disponible actuellement sur le serveur de mise à jour de logiciels.
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.
Dans Ubuntu 14.04, alors que vous exécutez apt-get install rubygems , il y a une erreur
E: le paquetage ‘rubygems’ n’a pas de candidat à l’installation
suivre la commande résoudre les problèmes.
sudo apt-get install gcc ruby-devel rubygems-intégration ruby-compass
Essayez brew install coreutils
.
J’ai rencontré ce problème lors de la reconstruction d’un projet Sass / Compass vieillissant récemment mis à jour par Ruby 2.2.5 par un collègue. Le projet utilise rvm et bundler. C’étaient mes commandes
$ rvm install ruby-2.2.5 $ rvm use ruby-2.2.5 $ gem install bundler $ bundle install
Cela m’a amené à bash les erreurs d’installation célèbres de ffi
, rapscopes autour de 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 les outils de ligne de commande Xcode. Cependant, ceci était déjà installé dans mon environnement:
$ xcode-select -p /Library/Developer/CommandLineTools
D’autres suggestions pour installer gcc … alors j’ai essayé:
$ brew install gcc46
Mais cela a également échoué en raison d’une erreur de segmentation … ¯\_(ツ)_/¯
.
Donc, j’ai ensuite essayé d’installer la boussole à la main, juste pour voir si cela donnerait la même erreur de 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 numéro et trouvé cet ancien article de blog qui disait d’installer coreutils:
$ brew install coreutils
Après avoir installé coreutils
avec Homebrew, bundler a pu terminer et installer la boussole et les dépendances avec succès.
La fin.
quand
gem installer install
est exécuté aussi cette erreur a été placée dans le terminal.
Failed to build gem native extension
s’il vous plaît faire la même chose
xcode-select --install
et il va régler ce problème aussi
Pour Mac OS:
Mon erreur était que j’avais oublié de sélectionner l’option dans XCode – Preferences – Locations – 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.
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 gems sur une nouvelle installation d’ubuntu, et cette solution a fonctionné pour moi.
J’avais besoin d’installer les outils de ligne de commande les plus récents (dans les 30 derniers jours) à partir de l’App Store d’Apple.
J’ai eu le même problème sur Linux Mint mais j’ai été capable de le réparer en désinstallant ruby et de l’installer à nouveau.
Désinstallez ruby:
sudo apt-get remove ruby
Il a rapporté des paquets de rbuy 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ésinstallez les paquets restants *
apt-get autoremove
Installer à nouveau rbuy
sudo apt-get install ruby2.2
Installer Compass
sudo gem install compass
La dernière commande a été exécutée avec succès.