Не удается установить рекомендуемый гем - hiredis.h не найден
Я пытаюсь установить рекомендовать драгоценный камень.
Этот гем попытается скомпилировать нативный бин, который называется рекомендует, чтобы он работал быстрее, чем анализатор ruby.
Сначала я попытался установить, как и другие распространенные жемчужины:
gem install recommendify
и это ошибка:
➜ ~ gem install recommendify
Building native extensions. This could take a while...
ERROR: Error installing recommendify:
ERROR: Failed to build gem native extension.
/Users/villa/.rbenv/versions/1.9.3-p448/bin/ruby extconf.rb
make mkdir -p ../bin
gcc -Wall recommendify.c -lhiredis -o ../bin/recommendify
recommendify.c:4:10: fatal error: 'hiredis/hiredis.h' file not found
#include <hiredis/hiredis.h>
^
1 error generated.
make: *** [build] Error 1
Во-вторых, я установил Hiredis с варкой:
brew install hiredis
и теперь, если я ищу hiredis, я вижу:
➜ ~ brew list hiredis
/usr/local/Cellar/hiredis/0.11.0/include/hiredis/ (5 files)
/usr/local/Cellar/hiredis/0.11.0/lib/libhiredis.0.10.dylib
/usr/local/Cellar/hiredis/0.11.0/lib/ (3 other files)
➜ ~ find /usr/local/include -name hiredis
/usr/local/include/hiredis
➜ ~ ls -al /usr/local/include/hiredis
lrwxr-xr-x 1 villa admin 40 15 dic 12:54 /usr/local/include/hiredis -> ../Cellar/hiredis/0.11.0/include/hiredis
В мой путь включен '/usr/local/include' -> каталог, когда установлен hiredis:
➜ ~ echo $PATH
/usr/local/include:/Users/villa/.rbenv/shims:/usr/local/Cellar/elixir/0.10.3/bin:/Users/villa/.rbenv/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
Любая идея? заранее спасибо
РЕДАКТИРОВАТЬ 1 *
Я попробовал с решением первого ответа:
gem install recommendify -- --with-hiredis-dir=/usr/local/Cellar/hiredis/0.11.0
а также:
gem install recommendify -- --with-hiredis-dir=/usr/local/Cellar/hiredis/0.11.0/include/hiredis
Имея в обоих одинаковую ошибку:
Building native extensions. This could take a while...
ERROR: Error installing recommendify:
ERROR: Failed to build gem native extension.
/Users/villa/.rbenv/versions/1.9.3-p448/bin/ruby extconf.rb --with-hiredis-dir=/usr/local/include/hiredis
make
mkdir -p ../bin
gcc -Wall recommendify.c -lhiredis -o ../bin/recommendify
recommendify.c:4:10: fatal error: 'hiredis/hiredis.h' file not found
#include <hiredis/hiredis.h>
^
1 error generated.
make: *** [build] Error 1
РЕДАКТИРОВАТЬ 2 *
Я переустановил xcode, line-command-tools и ruby с помощью rbenv, и проблема решена. Я не знаю, какой из этих трех элементов был проблемой, но теперь это работает:D
Спасибо всем
2 ответа
Некоторые гемы являются чистым ruby, в то время как другие (в основном, привязка к платформе для существующих библиотек c/ C++, например, привязок) написаны как на ruby, так и на c/ C++. Часть, написанная на c/ C++, называется native extensions
, Для их компиляции вам нужно:
- инструменты для сборки;
- среда разработки ruby;
- дополнительные библиотеки / заголовки, необходимые для этого конкретного драгоценного камня.
В вашем случае вы, кажется, выполнили первые два требования, в то время как ваша система не может найти файлы разработки для hiredis
, Подведение итогов:
gem install recommendify -- --with-hiredis-dir=/usr/local/Cellar/hiredis/0.11.0
должен решить проблему.
Надеюсь это поможет.
В Ubuntu я смог установить этот гем после установки libpq-dev
sudo apt-get install libpq-dev