web-dev-qa-db-fra.com

Échec de la création de l'extrême bijou natif (installation de Compass)

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?

252
cusejuice

Essayez ceci, puis essayez à nouveau d'installer la boussole

apt-get install Ruby-dev
541
Rutger van Baren

Pour installer Compass sur Mac OS X 10.10 (Yosemite) devait effectuer les tâches suivantes:

1. Configurer l'environnement Ruby

  • Assurez-vous que Ruby est installé et à jour: Ruby -v
  • Mettre à jour le Sudo gem update --system de gem

2. 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

115
neteru

Le meilleur moyen est Sudo apt-get install Ruby-compass d’installer la boussole. 

41
cooljl31

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.

34
vanduc1102

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: 

  1. Sudo gem uninstall sass
  2. Sudo gem uninstall compass
  3. rvm install Ruby-1.9.3-p448
  4. Sudo gem install sass --pre
  5. Sudo gem install compass --pre

et cela l'a fait. J'espère que cela fonctionne pour vous aussi!

28

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

23
BlackHatSamurai

Sous Mac OS, vous devez installer cette fonctionnalité! 

xcode-select --install
13
user3645907

Salut, c’était un défi de le faire fonctionner sur Mac, alors voici une solution

  1. Installer macports
  2. Installer rvm
  3. Redémarrer le terminal
  4. Exécutez rvm requirements puis exécutez rvm install 2.1
  5. Et dernière étape pour exécuter 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.

10
paul.g

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:

  • Installer macports
  • Installez rvm (stable avec Ruby, ajoutez --insecure indicateur pour les problèmes liés à SSL) $ \curl -sSL --insecure https://get.rvm.io | bash -s stable --Ruby
  • Redémarrez Terminal/Ressource votre profil
  • Exécuter rvm requirements --with-gcc=clang Vous ne devrez pas mettre à jour Ruby car vous avez téléchargé la dernière version stable.
  • Et dernière étape pour exécuter gem install compass --pre
6
tbremer

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.

4
Gratz

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.

4
John Ryan

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

3
gsm

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.

2
A.Sanchez.SD

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.

2
JamesWilson

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

2
miukki

Pour Mac OS: 

Mon erreur était que j'avais oublié de sélectionner une 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'ai supprimé une). Cela aidera peut-être quelqu'un.

 enter image description here

2
Eridana
  • Sudo gem update --system
  • Sudo gem installer compas 
2
Federico Bohn

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

2
onebraveman

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. 

2
lepix

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.

1
Adi

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.

0

Essayez ceci, puis essayez à nouveau d'installer la boussole

Sudo apt install Ruby-full
0
Pokkhi