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