Ошибка установки mysql2: не удалось собрать собственное расширение gem - PullRequest
463 голосов
/ 31 августа 2010

У меня возникают проблемы при установке mysql2 gem для Rails. Когда я пытаюсь установить его, запустив bundle install или gem install mysql2, выдается следующая ошибка:

Ошибка установки mysql2: ОШИБКА: не удалось создать собственное расширение gem.

Как я могу это исправить и успешно установить mysql2?

Ответы [ 26 ]

3 голосов
/ 28 декабря 2015

Вы должны установить некоторые зависимости

sudo apt-get install libmysql-ruby libmysqlclient-dev
3 голосов
/ 30 мая 2018

В Debian Stretch пакет, который работал для меня, был default-libmysqlclient-dev

sudo apt-get update && apt-get install -y default-libmysqlclient-dev

3 голосов
/ 16 октября 2010

Я тоже получил эту ошибку.Решается установкой пакетов разработки.Я использую arch, и это было:

sudo pacman -S base-devel

, которое установило:

m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc,
libtool, make, patch, pkg-config

, но я думаю, что на самом деле нужны были make и gcc.Вывод ошибки сказал (на моем компьютере, среди прочего):

«Сначала нужно установить инструменты разработки».

Так что это было очевидное решение, и оно помогло.

2 голосов
/ 14 сентября 2010

Я столкнулся с этой ошибкой на своем Mac и обнаружил, что мне нужно перейти с mysql 32bit на mysql 64 bit, чтобы эта ошибка исчезла.Я запускал OSX 10.6 на Intel MacBook Pro с ruby ​​1.9.2 и rails3.0.0

Мне также нужно было установить xcode, чтобы получить такие утилиты Unix, как «make», необходимые для компиляции gem.1003 *

Как только это было сделано, я смог запустить gem install mysql и gem install mysql2 без ошибок.

1 голос
/ 23 мая 2019

В моем случае это помогло:

$ export LDFLAGS="-L/usr/local/opt/openssl/lib"
$ export CPPFLAGS="-I/usr/local/opt/openssl/include"

Тогда:

gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/' -- --with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib

Результат:

Building native extensions with: '--with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib'
This could take a while...
Successfully installed mysql2-0.5.2
Parsing documentation for mysql2-0.5.2
Installing ri documentation for mysql2-0.5.2
Done installing documentation for mysql2 after 0 seconds
1 gem installed

Посмотреть этот пост .

1 голос
/ 02 декабря 2016

Решение работает только на Mac OS X

Если вы установили MySQL с помощью homebrew, мне помогло удалить MySQL и установить MySQL Community Edition через веб-сайт MySQL (https://www.mysql.com/).

После установки просто повторно введите команду для gem install mysql2 или, если необходимо, sudo gem install mysql2, если вы получаете проблемы с отказом в разрешении.

1 голос
/ 13 августа 2015

Для пользователей Windows: Вы устанавливаете lib и включаете путь вашего mysql, например, если вы используете xampp, вы можете получить так:

gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'
0 голосов
/ 03 октября 2012

скачайте правильную версию mysqllib.dll, затем скопируйте ее в ruby ​​bin.Перейдите по этой ссылке: mysql2 gem скомпилирован для неправильной клиентской библиотеки mysql

0 голосов
/ 13 января 2011

Я получил драгоценный камень, построенный на Mac OS X 10.6.6 1) Обеспечение установки пакета инструментов разработчика 2) Загрузка текущего пакета MySQL (5.5.8 в моем случае) из Source 3) Установка инструмента cmake с cmake.org 4) Следуя инструкциям в разделе 2.11 INSTALL-SOURCE из дистрибутивных файлов mysql 5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include Драгоценный камень собран успешно, но в документации есть две ошибки, на которые жалуются rdoc и ri. Но теперь, когда я пытаюсь потребовать «mysql2», я получаю

LoadError: no such file to load -- mysql2/mysql2

Я надеялся, что ошибка, которую я получу, заключалась в том, что libmysqlclient.16.dylib не удалось найти, потому что мы выяснили это в другом посте (поиск по имени install_name_tool).

Мой $ PATH содержит / usr / local / mysql (там находятся мои исходные и встроенные файлы), поэтому я немного озадачен. Если у кого-то возникнут мысли, я вернусь после нескольких часов сна.

0 голосов
/ 12 марта 2018

libmysql-ruby снят с производства и заменен.Новая команда:

 sudo apt-get install ruby-mysql libmysqlclient-dev
...