Не удается установить рекомендуемый гем - 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
Другие вопросы по тегам