
Я использую Ruby 1.9.3 на CentOS 5.3. Я установил его, скомпилировав Ruby 1.9.3 из исходников вместе с libyaml. Я также использую rbenv для управления версиями, поэтому я поместил скомпилированную установку в ~/.rbenv/versions/1.9.3-p286, где rbenv хранит версии Ruby.
Все работает отлично, и теперь я устанавливаю Gems. Однако один gem пока не устанавливается, что заставляет меня думать, что мне не хватает зависимости. Это внутренний gem, поэтому он не указан на RubyGems, но вот вывод установки gem:
Building native extensions. This could take a while...
ERROR: Error installing vmc-helper:
ERROR: Failed to build gem native extension.
/home/fs/.rbenv/versions/1.9.3-p286/bin/ruby extconf.rb
checking for expat.h... no
checking for xmlparse.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Я работаю с Debian, поэтому не особо разбираюсь в пакетах Redhat/RPM и т. п., поэтому не уверен, каких зависимостей не хватает в моей системе для установки этого Gem.
Может ли кто-нибудь помочь мне узнать, какие пакеты мне нужно установить для этих отсутствующих заголовочных файлов, указанных выше?
решение1
Найдите отсутствующие файлы:
checking for expat.h... no
checking for xmlparse.h... no
Теперь используйте yum
для поиска пакета, который предоставляет эти файлы:
yum provides */expat.h
Здесь вы увидите несколько пакетов. Тот, который вы ищете, содержит , /usr/include/expat.h
так как это стандартный каталог include. Так что установите указанный пакет:
yum install expat-devel
Повторите процесс для другого файла:
yum provides */xmlparse.h
Здесь вы потерпите неудачу и получите ошибку No matches found
. В этом случае вам нужно будет либо прочитать исходный код gem, либо связаться с его разработчиком, чтобы узнать, какой пакет он/она имел в виду для вас. Он должен быть указан в документации gem как системное требование (если разработчик потрудился написать документацию).