Я использую Ruby 1.9.3 на CentOS 5.3. Я установил его, скомпилировав Ruby 1.9.3 из исходников вместе с libyaml. Я также использую rbenv для управления версиями, поэтому я поместил скомпилированную установку в ~ / .rbenv / versions / 1.9.3-p286, где rbenv хранит версии Ruby.
Все работает отлично, и сейчас я устанавливаю Gems. Однако один драгоценный камень, в частности, еще не устанавливается, что заставляет меня думать, что я могу упустить зависимость. Это внутренний гем, поэтому его нет в RubyGems, но вот результат установки гем:
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.
Может ли кто-нибудь помочь мне узнать, какие пакеты мне нужно установить для этих недостающих файлов заголовков, отсутствующих выше?
Найдите недостающие файлы:
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
. В этом случае вам нужно будет либо прочитать исходный код гема, либо связаться с его разработчиком, чтобы узнать, какой пакет он / она имел в виду для вас. Он должен быть указан в документации гема как системное требование (если разработчик позаботился о написании документации).