J'ai des difficultés à faire l'installation de bundle dans un projet sur lequel je travaille dans Rails 4.2.10. Quand je fais le bundle, je reçois l'erreur suivante:
Une erreur s'est produite lors de l'installation de ffi (1.9.25), et Bundler ne peut pas continuer.
Assurez-vous que gem install ffi -v '1.9.25'
réussit avant le regroupement.
Building native extensions. This could take a while... ERROR: Error installing ffi: ERROR: Failed to build gem native extension. current directory: /xxx/xxx/.rvm/gems/ruby-2.5.3/gems/ffi-1.9.25/ext/ffi_c /xxx/xxx/.rvm/rubies/ruby-2.5.3/bin/ruby -r ./siteconf20190110-6923-1jimorr.rb 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_closure_alloc()... no checking for ffi_raw_call()... no checking for shlwapi.h... no checking for ruby/thread.h... yes checking for rb_thread_blocking_region()... no checking for rb_thread_call_with_gvl()... yes checking for rb_thread_call_without_gvl()... yes creating extconf.h creating Makefile current directory: /xxx/xxx/.rvm/gems/ruby-2.5.3/gems/ffi-1.9.25/ext/ffi_c make "DESTDIR=" clean current directory: /xxx/xxx/.rvm/gems/ruby-2.5.3/gems/ffi-1.9.25/ext/ffi_c make "DESTDIR=" Configuring libffi clang: error: unsupported option '-print-multi-os-directory' clang: error: no input files cd "/xxx/xxx/.rvm/gems/ruby-2.5.3/gems/ffi-1.9.25/ext/ffi_c/libffi-x86_64-darwin18" && /Volumes/Macintosh HD/Applications/Xcode.app/Contents/Developer/usr/bin/make /bin/sh: /Volumes/Macintosh: No such file or directory make: *** ["/xxx/xxx/.rvm/gems/ruby-2.5.3/gems/ffi-1.9.25/ext/ffi_c/libffi-x86_64-darwin18"/.libs/libffi_convenience.a] Error 127 make failed, exit code 2 Gem files will remain installed in /xxx/xxx/.rvm/gems/ruby-2.5.3/gems/ffi-1.9.25 for inspection. Results logged to /xxx/xxx/.rvm/gems/ruby-2.5.3/extensions/x86_64-darwin-18/2.5.0/ffi-1.9.25/gem_make.out
Quand j'exécute gem install ffi -v '1.9.25'
également une erreur se produit:
In Gemfile: s3_direct_upload was resolved to 0.1.6, which depends on sass-rails was resolved to 5.0.7, which depends on sass was resolved to 3.6.0, which depends on sass-listen was resolved to 4.0.0, which depends on rb-inotify was resolved to 0.9.10, which depends on ffi
J'ai essayé de nombreuses solutions en ligne mais je ne parviens pas à résoudre ce problème. Il semble que le problème vient de mon système, car je suis nouveau dans l'équipe et les autres développeurs n'ont pas pu m'aider car ils n'ont pas ce genre de problème.
3 Réponses :
Selon la libffi README, seul GCC est un compilateur testé sur macOS. Vous utilisez Clang, qui ne prend pas en charge l'option de ligne de commande -print-multi-os-directory
.
Vous devez soit patcher libffi pour fonctionner avec Clang, soit utiliser GCC.
Votre erreur est la suivante Configuration de libffi
clang: erreur: option non prise en charge '-print-multi-os-directory'
clang: erreur: aucun fichier d'entrée
car Clang (qui est le compilateur C que vous utilisez) ne prend pas en charge l'option '-print-multi-os-directory'
. p >
Pourriez-vous vérifier que les outils de ligne de commande X-Code sont parfaitement installés en exécutant la commande suivante? xcode-select --install
Souhaitez-vous également essayer brew install automake autoconf libtool libffi
pour installer les dépendances requises?
xcode-select: erreur: les outils de ligne de commande sont déjà installés, utilisez "Software Update" pour installer les mises à jour. Tout est déjà installé. Brew également installé.
Avez-vous installé automake autoconf libtool et libffi?
Oui tout est installé Attention: automake 1.16.1_1 est déjà installé et à jour Pour réinstaller 1.16.1_1, exécutez brew reinstall automake
Attention: autoconf 2.69 est déjà installé et à jour à réinstallez 2.69, exécutez brew reinstall autoconf
Attention: libtool 2.4.6_1 est déjà installé et à jour Pour réinstaller 2.4.6_1, exécutez brew reinstall libtool
Attention: libffi 3.2 .1 est déjà installé et à jour Pour réinstaller 3.2.1, exécutez brew reinstall libffi
Alors peut-être que vous devrez essayer GCC avec brew install gcc
. Plus d'instructions sur la façon de le configurer: stackoverflow.com/questions/28970935/...
Désolé, je n'ai pas pu vous aider, j'ai lu quelque part que l'utilisation d'un autre pourrait résoudre votre problème.
J'ai réussi à installer ffi avec la commande suivante:
LDFLAGS="-L/usr/local/opt/libffi/lib" PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig" gem install ffi -v '1.9.25'
Trouvé sur une carte japonaise
Cela a fonctionné pour moi sur OSX 10.15.2 avec Ruby 2.7.0 et ffi 1.11.3.
voir les réponses dans: stackoverflow.com/questions/7852566/... peut-être que certains vous aideront
Je suis sur un mac et j'ai essayé de mettre dans mon fichier gem le ffi mais on m'a demandé de le supprimer car le gemfile maître ne contient pas le ffi. Y a-t-il d'autres solutions?
Conseil général: vous manquez certaines dépendances natives (bibliothèques) et vous devez les installer. Vous n'avez pas besoin de modifier le fichier gem, pour tester si tout va bien, lancez simplement
gem install ffi -v '1.9.25'
(comme vous l'avez fait)Donc, comme je l'ai montré ci-dessus, cela donne toujours la même erreur. Veuillez vérifier la dernière partie de ma question
C'est l'erreur: `gem install ffi -v '1.9.25' Construire des extensions natives. Cela peut prendre un certain temps ... ERREUR: Erreur lors de l'installation de ffi: ERREUR: Échec de la construction de l'extension native gem. »
oui, je souligne juste que c'est un bon moyen de le tester (et modifier le gemfile ne l'est pas)
Ok mais sans résoudre cela, je ne peux pas faire le bundle et travailler sur les tâches que j'ai j'ai essayé beaucoup de choses :(
avez-vous installé les outils de développement Mac?
xcode-select --install
Oui je l'ai installé J'ai la version 10.0 (10A255)