Gem install: Не удалось создать собственное расширение gem (не удается найти файлы заголовков)

Я использую Fedora 14, и у меня установлен и запущен MySQL и MySQL сервер 5.1.42. Теперь я попытался сделать это как пользователь root:

gem install mysql

Но я получаю эту ошибку:

Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h


Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

Что здесь не так? В установленном рубине 1.8.7. и последние рубигемы 1.3.7.

Ответ 1

Для тех, кто может быть смущен принятым ответом, как и я, вам также необходимо установить заголовки ruby ​​[ ruby-devel].

В статье, которая сохранила мою скрытность, здесь.

И это пересмотренное решение (обратите внимание, что я на Fedora 13):

yum -y install gcc mysql-devel ruby-devel rubygems
gem install -y mysql -- --with-mysql-config=/usr/bin/mysql_config

Для Debian и других дистрибутивов, использующих упаковку в стиле Debian, заголовки разработки ruby ​​устанавливаются:

sudo apt-get install ruby-dev

Для Ubuntu заголовки разработки ruby ​​устанавливаются:

sudo apt-get install ruby-all-dev

Если вы используете более раннюю версию ruby ​​(например, 2.2), вам нужно будет запустить:

sudo apt-get install ruby2.2-dev

(где 2.2 - ваша желаемая версия Ruby)

Ответ 2

Red Hat, Fedora:

yum -y install gcc mysql-devel ruby-devel rubygems
gem install -y mysql -- --with-mysql-config=/usr/bin/mysql_config

Debian, Ubuntu:

apt-get install libmysqlclient-dev ruby-dev
gem install mysql

Arch Linux:

pacman -S libmariadbclient
gem install mysql

Ответ 3

Для тех, кто читает это в 2015 году: если вам пришлось установить пакет ruby2.0, вам нужно установить соответствующий ruby2.0-dev, чтобы получить соответствующие заголовки Ruby. То же самое относится к ruby2.1 и ruby2.2 и т.д. Например:

$ sudo apt-get install ruby2.2-dev

Ответ 4

кажется, что

yum install ruby-devel

было достаточно для выполнения

gem install datamapper

потом.

Возможно, вам понадобится установить другие пакеты:

yum install gcc gcc-c++

чтобы иметь возможность создавать собственные расширения

Ответ 5

Я нашел решение здесь.

# yum install mysql-devel gcc make
# gem install mysql -- --with-mysql-config=/usr/bin/mysql_config

Ответ 6

Этот пост помог мне. Большое спасибо.

В Linux (Ubuntu 12.10) мне нужно было запустить

sudo apt-get install ruby
sudo apt-get install rubygems
sudo apt-get install ruby-dev

прежде чем я смог успешно выполнить

sudo gem install jekyll

Ответ 7

Если у вас установлен жемчуг и рубин, и вы не можете установить рельсы. Затем установите ruby ​​dev lib.

sudo apt-get install ruby-dev

Это работает для меня. Я попробовал другое решение.

Ответ 8

Red Hat, Fedora:

sudo dnf -y install gcc-c++ redhat-rpm-config ruby-devel gcc mysql-devel rubygems

Ответ 9

Пользователи MAC могут столкнуться с этой проблемой, если инструменты xcode не установлены должным образом. Ниже приведена команда, чтобы избавиться от проблемы.

xcode-select --install

Ответ 10

sudo apt-get install ruby-dev

Эта команда решила проблему для меня!

Ответ 11

Для тех, кто все еще испытывает проблемы, например, я (я использую Ubuntu 16.04), мне пришлось добавить следующие команды, чтобы получить некоторые драгоценные камни, такие как bcrypt, pg и другие. Все они похожи на те, что указаны выше, кроме одного.

sudo apt-get install ruby-dev -y
sudo apt-get install libpq-dev -y
sudo apt-get install libmysqlclient-dev
sudo apt-get install build-essential patch -y

Это позволило мне установить такие драгоценные камни, как PG, bcrypt и recaptcha.

Ответ 12

Мое первоначальное решение состояло в том, чтобы разрешить вышеупомянутые ошибки, установив ruby-devel, patch и rubygems.

Моя проблема была немного иной, поскольку bcrypt 3.1.11 все еще возникали проблемы с компиляцией и установкой на Fedora 23. Мне нужны были дополнительные пакеты. Поэтому после того, как я установил вышеописанное, у меня все еще были проблемы:

gcc: error: conftest.c: No such file or directory

gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory

Отсюда я должен был сделать следующее:

  • Я убедился, что у меня не хватает инструментов компилятора C sudo dnf group install "C Development Tools and Libraries"

  • Затем я запустил sudo dnf install redhat-rpm-config, чтобы решить проблему gcc, указанную выше.

Вы можете найти здесь запись на Fedore Project. Вы также можете найти ответы на другие вопросы.

Ответ 13

в openSUSE:

zypper in ruby-devel

Работает со мной:)

Ответ 14

Необходимо установить redhat-rpm-config для. Я думаю, это решит вашу проблему!

Ответ 15

Просто добавьте путь к файлу ruby.h в моем PATH
например:

export PATH = $PATH:/usr/src/ruby-xxxxxx