ОШИБКА: ошибка установки ffi: ОШИБКА: не удалось создать собственное расширение gem
Получил установленный DevKit и перезапустил установку ffi….в качестве этого вывода:
C:\Documents and Settings\******>gem install ffi
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing ffi:
ERROR: Failed to build gem native extension.
C:/Ruby192/bin/ruby.exe extconf.rb
checking for ffi.h... no
checking for ffi.h in /usr/local/include... no
checking for rb_thread_blocking_region()... yes
checking for ruby_thread_has_gvl_p()... yes
checking for ruby_native_thread_p()... yes
checking for rb_thread_call_with_gvl()... yes
creating extconf.h
creating Makefile
make
C:/Ruby192/bin/ruby -e "puts 'EXPORTS', 'Init_ffi_c'" > ffi_c-i386-mingw32.def
gcc -I. -IC:/Ruby192/include/ruby-1.9.1/i386-mingw32 -I/C/Ruby192/include/ruby-1
.9.1/ruby/backward -I/C/Ruby192/include/ruby-1.9.1 -I. -DRUBY_EXTCONF_H=\"extcon
f.h\" -O3 -g -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -
Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -Wno-declaration-a
fter-statement -o AbstractMemory.o -c AbstractMemory.c
In file included from AbstractMemory.c:28:0:
compat.h:65:20: warning: extra tokens at end of #ifndef directive
compat.h:69:24: warning: extra tokens at end of #ifndef directive
In file included from AbstractMemory.h:29:0,
from AbstractMemory.c:29:
Types.h:68:17: fatal error: ffi.h: No such file or directory
compilation terminated.
make: *** [AbstractMemory.o] Error 1
Gem files will remain installed in C:/Ruby192/lib/ruby/gems/1.9.1/gems/ffi-1.0.1
0 for inspection.
Results logged to C:/Ruby192/lib/ruby/gems/1.9.1/gems/ffi-1.0.10/ext/ffi_c/gem_m
ake.out
_________________________________________________________________________________
Не уверен, как бороться с этой проблемой. Пожалуйста, помогите.
17 ответов
Установка gem ffi завершается неудачно из-за того, что гем пытается создать связанную копию libffi, которая не работает из-за предположений о том, что / usr / bin / env существует, и слишком старой копии libffi.
Однако вы можете собрать гем ffi для системы libffi - установите пакеты:
apt install clang make ruby-dev libffi-dev
После этого ffi gem должен создать:
gem install ffi
Версия 1.0.10 имеет проблемы с компиляцией в Windows.
Вы можете использовать 1.0.9
gem install ffi --version='1.0.9'
Для меня исправление работало в таком порядке. Я не уверен, что все было актуально, но это сработало:
gem install ffi --version '1.0.9'
Выше не удалось, но тогда я мог успешно запустить:
gem install bundler
... и впоследствии:
gem install ffi
... который получил последнюю версию (1.6.0 на момент написания этой статьи) и успешно установил ее.
При выполнении вышеуказанных шагов может появиться следующее сообщение.
$ bundle install
Fetching source index for https://rubygems.org/
You have requested:
ffi = 1.0.9
The bundle currently has ffi locked at 1.0.11.
Try running `bundle update ffi`
В этом случае вы можете запустить команду "bundle update ffi", и ошибка будет решена.
Обратите внимание, что установки версии 1.0.9 будет недостаточно, если ваш упаковщик продолжает пытаться выйти и взять последнюю версию. В вашем gemfile вы также захотите поместить:
gem 'ffi', '1.0.9'
Это должно удовлетворить зависимость для любого драгоценного камня, запрашивающего его, и позволить вам начать работу.
Помог мне:
sudo apt install build-essential
Debian 9
Рубин 2.3.3
Для меня это обычно работает
gem install ffi -- --disable-system-libffi
Установка 'osx-gcc-installer' сработала для меня: (osx 10.8)
Это сработало для меня
gem install ffi -- --disable-system-libffi
в Ubuntu 20.04 (WSL)
Скопировано из другого поста:
Как указано в разделе "Проблемы с установкой ImageMagick и rmagick на Mountain Lion", ffi, похоже, настроен на поиск "gcc-4.2", поэтому, как только я обновил свои инструменты командной строки Apple (что мне может понадобиться, а может и нет), я создал символическую ссылку, чтобы сделать конфигурацию установки ffi счастливой:
sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2
На MacOS (Catalina) работает brew install libtool
сначала решил проблему для меня.
Я должен был установить automake
чтобы это заработало. Работал как на Mac OSX, так и на Ubuntu (машина CI).
Запустите это: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh )"
Затем: заварить, установить Cocopods
У меня та же проблема. В моем случае я не установил DevKit, который можно найти по адресу: http://rubyinstaller.org/downloads/. После установки DevKit просто следуйте инструкции https://github.com/oneclick/rubyinstaller/wiki/development-kit и, наконец, все готово.
Поместите DevKit перед вашей PATH и установите снова из командной строки Windows.