установка gem: не удалось создать собственное расширение gem (не удается найти файлы заголовков) - PullRequest
348 голосов
/ 29 ноября 2010

Я использую 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

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

Ответы [ 17 ]

751 голосов
/ 21 декабря 2010

Для тех, кто может быть смущен принятым ответом, как и я, вам также нужно установить заголовки 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)

91 голосов
/ 29 ноября 2010

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
50 голосов
/ 26 ноября 2014

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

$ sudo apt-get install ruby2.2-dev
24 голосов
/ 25 сентября 2011

кажется, что

yum install ruby-devel

мне было достаточно, чтобы потом выполнить

gem install datamapper

.

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

yum install gcc gcc-c++

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

8 голосов
/ 17 марта 2013

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

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

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

, прежде чем я смог успешно запустить

sudo gem install jekyll
8 голосов
/ 06 декабря 2010

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

# yum install mysql-devel gcc make
# gem install mysql -- --with-mysql-config=/usr/bin/mysql_config
5 голосов
/ 23 августа 2015

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

xcode-select --install
4 голосов
/ 30 ноября 2016

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

sudo apt-get install ruby-dev

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

2 голосов
/ 19 февраля 2016

Red Hat, Fedora:

sudo dnf -y install gcc-c++ redhat-rpm-config ruby-devel gcc mysql-devel rubygems
1 голос
/ 03 сентября 2017

Для тех, кто все еще испытывает проблемы, как у меня (я использую 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...