it-swarm.com.ru

установка gem: не удалось создать собственное расширение 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

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

346
Tim

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

738
Brian Lacy

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
87
Nowaker

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

$ Sudo apt-get install Ruby2.2-dev
50
Dror S.

кажется, что

yum install Ruby-devel

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

gem install datamapper

после этого.

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

yum install gcc gcc-c++

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

24
andrej

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

В 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
qkrijger

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

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

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

xcode-select --install
5
Ajit Singh

Если у вас установлен gem и Ruby, и вы не можете установить Rails. Затем установите Ruby dev lib.

Sudo apt-get install Ruby-dev

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

4
Hafiz Shehbaz Ali

Red Hat, Fedora:

Sudo dnf -y install gcc-c++ redhat-rpm-config Ruby-devel gcc mysql-devel rubygems
2
mkungla
Sudo apt-get install Ruby-dev

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

1
Viduni Wickramarachchi

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

1
Mike

Первоначально я решил устранить вышеуказанные ошибки, установив 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 . Вы также можете найти ответы на другие вопросы.

1
Andrew Lobban

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

0
user3645907

Это сработало для меня:

yum -y install gcc mysql-devel Ruby-devel rubygems
0
Shveta Sachdeva

в openSUSE:

zypper in Ruby-devel

Работает для меня :)

0
Raul Libório

Вам нужны следующие пакеты:

  • Рубин-DEV

  • нКУ

  • libffi-DEV

  • make

Вот команда для дистрибутива Debian:

 Sudo apt install gcc Ruby-dev rubygems libgmp-dev libgmp3-dev make 
0
rmpestano