2013-12-15 3 views
1

Я пытаюсь установить рекомендацию gem.не удалось установить рекомендацию gem - hiredis.h не найден

Этот драгоценный камень попытается скомпилировать родной бит, называемый рекомендацией быть быстрее, чем парсер рубина.

Сначала я попытался установить, как другой общий драгоценный камень:

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/местные/включить' -> каталог, когда установлен 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 

Любая идея? Заранее спасибо

EDIT 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 

EDIT 2 *

Я переустановил Xcode, строка-Command-инструменты и рубин с rbenv и проблема решена. Я не знаю, какой из этих трех элементов была проблема, но теперь он работает: D

Спасибо всем

+0

ли макинтош имеют Devel версии пакетов? Например, в linux мы должны сделать «apt-get install redis», а затем «apt-get install redis-devel» для установки заголовков –

+0

Я так не думаю, я искал в варево: brew search redis hiredis \t redis –

ответ

2

Некоторые из камней чисто рубин, в то время как другие (в основном от платформы сшивание против существующих/C++ библиотек гр , например привязки) записываются как в ruby, так и в c/C++. Часть, написанная на c/C++, называется native extensions. Для их компиляции вам необходимо:

  • инструменты для сборки;
  • рубина среда разработки;
  • дополнительные библиотеки/заголовки, требуемые этим конкретным камнем.

В вашем случае у вас, похоже, выполнены первые два требования, в то время как ваша система не может найти файлы разработки для hiredis.Подводя итог:

gem install recommendify -- --with-hiredis-dir=/usr/local/Cellar/hiredis/0.11.0 

должен решить проблему.

Надеюсь, это поможет.

+1

Нет формулы под названием «hiredis-dev». Я попробовал это с помощью 'brew install hiredis', и это сработало, однако я использую RVM, а не rbenv. –

+0

RVM - это управление рубиновым пакетом, тем не менее он требует заголовков разработки для создания собственных расширений для существующей библиотеки. К сожалению, у меня нет OSX, чтобы проверить мои предложения. Не могли бы вы запустить 'gem install Recommendify --verbose' и добавить вывод к своему исходному сообщению? – mudasobwa

+0

Я думаю, что RVM обрабатывает гораздо больше и пытается правильно настроить ваш PATH и другие вещи. Он также поставляется с собственной установкой Rubygems. Хотя у меня нет/usr/local/include в моей $ PATH, RVM, похоже, справляется с этим правильно. –

0

На убунту я был в состоянии получить этот драгоценный камень установить после установки libpq-DEV

sudo apt-get install libpq-dev 
Смежные вопросы