Встановлення MySQL: ПОМИЛКА: Не вдалося створити власне розширення gem


77

Я намагаюся встановити MySQL до останньої версії через те, що якась інсталяція не вдалася десь уздовж лінії. Я запускаю команду gem install mysqlі отримую таке:

Створення власних розширень. Це може зайняти деякий час ... ПОМИЛКА: Помилка встановлення mysql: ПОМИЛКА: Не вдалося створити власне розширення gem.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb: 4: попередження: Небезпечний доступний для запису в світ каталог / usr / bin в PATH, режим 040777 extconf.rb: 4: попередження: Небезпечний для запису світ dir / usr / bin у PATH, режим 040777 extconf.rb: 7: попередження: Небезпечний для запису світ dir / usr / bin у PATH, режим 040777 mkmf.rb не може знайти файли заголовків для ruby ​​в / System /Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

Файли Gem залишаться встановленими в /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 для перевірки. Результати реєструються в /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

Я шукав і пробував безліч речей, починаючи від встановлення конкретних версій і закінчуючи спробою перевстановити ruby ​​без удачі.

Будь-які ідеї, де я можу піти не так?

Я намагаюся встановити MySQL до останньої версії через те, що якась інсталяція не вдалася десь уздовж лінії. Я запускаю команду gem install mysqlі отримую таке:

Створення власних розширень. Це може зайняти деякий час ... ПОМИЛКА: Помилка встановлення mysql: ПОМИЛКА: Не вдалося створити власне розширення gem.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb: 4: попередження: Небезпечний доступний для запису в світ каталог / usr / bin в PATH, режим 040777 extconf.rb: 4: попередження: Небезпечний для запису світ dir / usr / bin у PATH, режим 040777 extconf.rb: 7: попередження: Небезпечний для запису світ dir / usr / bin у PATH, режим 040777 mkmf.rb не може знайти файли заголовків для ruby ​​в / System /Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

Файли Gem залишаться встановленими в /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 для перевірки. Результати реєструються в /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

Я шукав і пробував безліч речей, починаючи від встановлення конкретних версій і закінчуючи спробою перевстановити ruby ​​без удачі.

Будь-які ідеї, де я можу піти не так?

EDIT : Я встановив XCode зі свого DVD-диска Snow Leopard, і помилка просто трохи змінилася до наступного:

Створення власних розширень. Це може зайняти деякий час ... ПОМИЛКА: Помилка встановлення mysql: ПОМИЛКА: Не вдалося створити власне розширення gem.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb: 4: попередження: Небезпечний доступний для запису в світ каталог / usr / bin в PATH, режим 040777 extconf.rb: 4: попередження: небезпечний для запису світ / каталог / usr / контейнер у PATH, режим 040777 extconf.rb: 7: попередження: небезпечний для запису світ / каталог / usr / контейнер у PATH, режим 040777 extconf.rb: 17: попередження: небезпечний світ для запису / каталог / bin в PATH, режим 040777 перевірка на наявність mysql_query () у -lmysqlclient ... немає перевірки на main () у -lm ... так перевірка на mysql_query () у -lmysqlclient ... немає перевірки на main () в - lz ... так перевірка на наявність mysql_query () у -lmysqlclient ... немає перевірки на main () у -lsocket ... немає перевірки на mysql_query () у -lmysqlclient ... немає перевірки на main () у -lnsl. .. немає перевірки на mysql_query () у -lmysqlclient ... немає перевірки на main () у -lmygcc ...немає перевірки на наявність mysql_query () у -lmysqlclient ... ні * extconf.rb не вдалося * Не вдалося створити файл Make з якоїсь причини, можливо, через відсутність необхідних бібліотек та / або заголовків. Перегляньте файл mkmf.log, щоб дізнатися більше. Можливо, вам знадобляться параметри конфігурації.

Надані параметри конфігурації: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include = $ {opt-dir} / include --with-opt-lib - без-opt-lib = $ {opt-dir} / lib --with-make-prog --without-make-prog --srcdir =. --curdir --ruby = / System / Library / Frameworks / Ruby.framework / Versions / 1.

Файли Gem залишаться встановленими в /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 для перевірки. Результати реєструються в /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

виконання "який mysql" у командному рядку нічого не повертає, це означає, що він не розпізнає його. Я також встановив параметр системних налаштувань MySQL, і я не можу зупинити роботу MySQL. Тепер я повністю застряг у тому, що робити!

EDIT EDIT

Я щойно повністю переінсталював MySQL, використовуючи цей посібник http://hivelogic.com/articles/installing-mysql-on-mac-os-x

На жаль, це теж не спрацювало, я все ще отримую ті самі помилки. Я навіть не можу зробити mysql -uroot у командному рядку, я отримую помилку:

ПОМИЛКА 2002 (HY000): Не вдається підключитися до локального сервера MySQL через сокет '/tmp/mysql.sock' (2)

Тож, думаю, я все пробував.

** ВИРІШЕНО *

Вибачте, хлопці, причина цього не працює через шляхи MySQL. Я писав про це в блозі тут: http://www.kieransenior.co.uk/2010/02/mysql-cant-connect-using-ruby-on-rails-mac-os-x-snow-leopard/

Відповіді:


64

Встановлення коштовного каменя mysql на OSX

в терміналі .. Спочатку виконайте 'locate mysql_config', а потім замініть шлях у наступній команді на те, де знаходиться цей файл .

$ sudo gem install mysql -- —–with-mysql-config=/usr/local/mysql/bin/mysql_config
Building native extensions. This could take a while…
Successfully installed mysql-2.7
1 gem installed

2
Я встановив XAMPP для OSX, так що моя команда була: gem install mysql -- --with-mysql-config=/Applications/XAMPP/bin/mysql_config. Судо не потрібно!
thesmart

1
Просто fyi. Мені все одно не вдалося встановити, але потім я зрозумів, що / usr / local / mysql / bin не міститься у моїй змінній PATH env. Як тільки я отримав це на моєму PATH, я зміг встановити його без проблем.
justspamjustin

3
Мені довелося sudo locate mysql_configотримати конфігураційні шляхи. В іншому випадку він повертає повідомлення:WARNING: The locate database (/var/db/locate.database) does not exist. ...
RNickMcCandless

Мені довелося встановити інструменти командного рядка xcode, перш ніж ця відповідь зрештою буде працювати для мене. Дивіться відповідну відповідь: stackoverflow.com/questions/761521/…, а потім спробуйте, sudo gem install mysql1 etcяк у цій відповіді :)
Джош Бурсон,

@JoshBurson Якщо ви хочете отримати повний посібник із встановлення mysql з нуля на OSX, я думаю, це зовсім інша історія.
Тревок

163

У системах Debian (або Ubuntu) просто встановіть пакет libmysqlclient-dev, використовуючи:

sudo apt-get install libmysqlclient-dev

і потім:

gem install mysql

Він буде встановлений без помилок.


1
Чудово! Працював в Ubuntu 14.10 64 біти
miquel

Працював і у мене, Ubuntu 14.4 LTS надійний
user3632930

17

Перш за все, вам потрібно розрізнити MySQL як сервер, MySQL як клієнт та прив'язки Ruby до MySQL.

Я не знайомий з Mac, але для ОС * nix вам потрібно встановити MySQL через менеджер пакетів. Щоб отримати прив'язки Ruby, встановлені за допомогою

gem install mysql

вам потрібні заголовки розробки ruby ​​(в Ubuntu це пакет ruby-dev) та заголовки розробки MySQL-Client (на даний момент libmysqlclient16-devв Ubuntu). Я не знаю, чи називаються вони по-різному на Mac, але після того, як ви їх встановили, прив'язки Ruby повинні встановлюватися без помилок.


Можна сказати, що існує багатофункціональна версія, яка робить і те, і інше. Я теж пройшов цей процес. Я думаю, ви маєте рацію, мені потрібно розрізняти ці два, оскільки це головним чином моя проблема. Ще один варіант, можливо, це встановити MAMP і використовувати його? Що мені тоді потрібно?
Kezzer

MAMP розшифровується як Mac, Apache, MySQL, Php. Отже, вам все одно знадобиться MySQL-сервер і, крім того, Apache 2, а також бібліотеки php для apache. Я не впевнений, чи можете ви просто вибрати MAMP у своєму менеджері пакетів, і він встановить всі необхідні файли. Можливо, користувач Mac може вам допомогти.
Aurril

Дійсно, це не відповідало б потребі в MAMP, але це був просто простий спосіб обслуговувати екземпляр MySQL.
Kezzer

4
Це було саме те, що мені потрібно в Ubuntu: sudo apt-get install ruby-devі sudo gem install mysql. Дякую!
Dan Breslau

1
так, це спрацювало: 'sudo apt-get install ruby-dev libmysqlclient16-dev', потім 'sudo gem install mysql'
Тревіс Рідер

9

Кілька людей знайшли цю публікацію корисною.

Крім того, мені потрібно було зробити спочатку це:

yum install mysql-devel

і потім:

gem install mysql 

Для деяких людей вам може знадобитися набрати:

gem install mysql -- --with-mysql-config=/usr/local/mysql/mysql_config

Чувак, якби я міг дати тобі 2, я б! Хоча добре зауважити, що ця команда yum може бути корисною лише з деякими видами LINUX. У моєму випадку CentOS 6.0
Onema 15.03.12

5

на OSX mountain Lion: Якщо ви brewвстановили програму, brew install mysqlвиконайте та instructionsстворюйте тестову базу даних за допомогою mysql на вашому комп'ютері. Вам не потрібно проходити весь шлях, мені не потрібно було Після того, як я зробив це, я зміг зв’язати інсталяцію та згрібати.


Це було єдине рішення, яке працювало для мене! Будьмо, друже!
Синтія Санчес,

3

Для того, щоб вирішити

Gem :: Ext :: BuildError: ПОМИЛКА: Не вдалося побудувати помилку власного розширення gem для mysql2,

Я думаю, що libmysql-ruby змінено на ruby-mysql

Просто спробуйте виконати наступні команди,

sudo apt-get install ruby-mysql

& тоді

sudo apt-get install libmysqlclient-dev


2

Я мав подібний досвід, тож ось що я спробував

По-перше, я спробував встановити необхідні пакети mysql, запустивши команду нижче у своєму терміналі

sudo apt-get install build-essential libmysqlclient-dev

По-друге, я спробував оновити rubygems у своїй системі, запустивши команду нижче у своєму терміналі

sudo gem update --system

Але я все ще відчував ту саму проблему. Після довгих досліджень я зрозумів, що використовую майже застарілу версію коштовності mysql. Мені просто потрібно було використовувати калькулятор mysql2 ( калькулятор mysql2 ), а не калькулятор mysql , тому я виправив це, запустивши команду нижче у своєму терміналі

gem install mysql2

Це добре працювало для мене. Перед запуском останньої команди переконайтеся, що ви виконали першу та другу команди, щоб переконатися, що у вашій системі все в порядку.

Це все.

Сподіваюся, це допоможе


0

Ви можете спробувати перевстановити останню версію xcode / dev. інструменти для сніжного барса - це повинно виправити ваші помилки


Це було одне з перших, що я зробив. Версія XCode від Snow Leopard встановлена ​​на моїй машині.
Kezzer


0

Увага: Вам потрібно вказати - ключ, а потім --with-mysql-config = / usr / local / mysql / bin / mysql_config


1
Знову ж таки, ця відповідь плаває багато в чому. У моєму випадку це не працює. Плюс, mysql для мене не існував у / usr / local / я вважаю.
Kezzer

0

Якщо ви використовуєте сервер Percona Mysql

$ yum встановити Percona-Server-devel-55

$ gem встановити mysql



0

Ваша ОС Ubuntu повинна встановити бібліотеку для клієнта mysql sudo apt-get install libmysqlclient-dev

Після цього просто встановіть bundleабоbundle install

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.