Mysql2 yüklerken hata: Gem yerel uzantısı oluşturulamadı


485

mysql2Rails için gem yüklemeye çalışırken bazı sorunlar yaşıyorum . Çalıştırarak yüklemeye çalıştığımda bundle installveya gem install mysql2bana şu hatayı veriyor:

Mysql2 yüklenirken hata oluştu: HATA: Gem yerel uzantısı oluşturulamadı.

Bunu nasıl düzeltebilirim ve başarıyla yükleyebilirim mysql2?


Benim durumumda yakut 2.1 hiçbir hata gösterilmedi ama birkaç dakika donduruldu. Spacemonkey yanıtı düzeltildi.
Lucio

Yanıtlar:


915

Ubuntu / Debian ve yetenek kullanan diğer dağıtımlarda:

sudo apt-get install libmysql-ruby libmysqlclient-dev

Paket libmysql-rubyaşamalı olarak kaldırıldı ve değiştirildi ruby-mysql. Bu , çözümü bulduğum yer.

Yukarıdaki komut bulunamadığından çalışmazsa libmysql-ruby, aşağıdakiler yeterli olmalıdır:

sudo apt-get install libmysqlclient-dev

Red Hat / CentOS ve yum kullanan diğer dağıtımlarda:

sudo yum install mysql-devel

Homebrew ile Mac OS X'te :

brew install mysql

5
Windows 7'de aynı sorunu var. herhangi bir fikir? yukarıdaki komut benim için çalışmadı ..
femi

37
Merhaba, Ruby 1.9.3 ve Rails 3.2.8 ile Ubuntu 12.04 kullanıyorum ve benim durumumda, kurulum libmysqlclient-devyeterliydi.
SMMousavi

2
Mac OSX kullanıyorsanız: XCode'un en son sürümüne güncelleyin ve Geliştirme Araçlarını yükleyin. Ben aynı mysql yükleme sorunu (hatta --with-mysql-config = / usr / local / mysql / bin / mysql_config kullanırken)
Americo Savinon

2
Ruby'yi RVM üzerinden kurduğumdan beri libmysql-ruby'ye gerek yoktu
Michael Lang

1
Camlar için gelen Çok keyifli bir yanıt denemek stackoverflow.com/questions/19014117/...
nitigyan

60

Bir mac kullanıyorum ve açık kaynak programları yüklemek için homebrew kullanıyorum . Homebrew yüklemek için mac Dev araçlarını yüklemem gerekiyordu, ancak bundan sonra basitti:

brew install mysql

mysql yüklemek için. O zamandan beri bir mysql mücevher problemi olmadı.


3
Bunu yaptıktan sonra bile hata alıyorum. Gem i mysql2 yaparken bazı seçenekleri geçmeli?
hnprashanth

Bu çalıştırdıktan sonra Mac OSX Lion mysql2 yakut gem yükleme hiç problem yaşamadım.
KrisG

3
Bu işe yaramazsa, deneyin brew link mysql --force.
Chuck Batson

34

İşte windows kullanıcıları için bir çözüm , umarım yardımcı olur!

MySQL'i Rails 3 ile Windows'ta kullanma

  • Railsinstaller'ı yükleyin -> www.railsinstaller.org (c: \ Rails dizinine kurdum)

  • MySQL Kur (MySQL 5.5 kullandım) -> dev.mysql.com/downloads/installer/

--- mySQL kurulumu için --- Bu iki dosyayı

zaten yüklemediyseniz , MySQL'inizi vcredist_x86.exe -> http://www.microsoft.com/download/en/details.aspx adresine getirmeleri için onlara ihtiyacınız olabilir ? id = 5555 dotNetFx40_Full_x86_x64.exe -> http://www.microsoft.com/download/en/details.aspx?id=17718 Varsayılan Install Developer Machine kullanın



-MySQL Sunucu Yapılandırması
: 3306
windows hizmet adı: MySQL55
mysql root pass: root (bunu daha sonra değiştirebilirsiniz)
(kullanıcı adı: root)
-MySQL Server Config-

--- mySQL kurulumu için ---


--- mysql2 Gem'ini kurun ---

Önemli: Git Bash Komut Satırı ile yapın (bu railsinstaller ile kuruldu) -> start / Git Bash

gem install mysql2 - '--with-mysql-lib = "c: \ Program Dosyaları \ MySQL \ MySQL Server 5.5 \ lib "--with-mysql-include =" c: \ Program Files \ MySQL \ MySQL Server 5.5 \ include "'

Şimdi gem doğru bir şekilde kurulmuş olmalıdır

Son olarak libmysql.dll dosyasını kopyalayın
C: \ Program Dosyaları \ MySQL \ MySQL Server 5.5 \ lib
to
C: \ Rails \ Ruby1.9.2 \ bin

--- mysql2 Gem ---


MySQL okuma ile nasıl bir Rails 3 uygulaması oluşturacağınızdan emin değilseniz, artık Rails uygulamanızı MySQL ile kullanabileceksiniz ...


--- MySQL ile devam eden bir Rails 3 uygulaması edinin ---

Komut istemini aç (Git Bash değil) -> start / cmd
Klasörünüze gidin (c: \ Sites)
Yeni raylar uygulaması oluşturun

rails new world

C: \ Sites \ world \ public \ index.html dosyasını silin
c: \ Sites \ world \ config \ route.rb dosyasını düzenleyin
bu satırı ekleyin -> root: to => 'şehirler # dizin'

Komut istemini aç (görünümler ve denetleyiciler oluşturma)

rails generate scaffold city ID:integer Name:string CountryCode:string District:string Population:integer



C: \ Sites \ world \ app \ models \ city.rb dosyasını şu şekilde görünecek şekilde düzenleyin

class City < ActiveRecord::Base
 set_table_name "city"
end

C: \ Sites \ world \ config \ database.yml dosyasını aşağıdaki gibi görünecek şekilde düzenleyin

development:
adapter: mysql2
encoding: utf8
database: world
pool: 5
username: root
password: root
socket: /tmp/mysql.sock

gemfile'a ekle

gem 'mysql2'

Git Bash'i değil, komut istemi pencerelerini açın cmd (uygulamanızı çalıştırın!)
Uygulama klasörünüze gidin (c: \ Sites \ world)

rails s

Tarayıcınızı burada açın -> http: // localhost: 3000

--- MySQL ile giden bir Rails 3 uygulaması edinin ---


Teşekkürler, sorun ben normal komut istemi değil widnows PowerShell kullanılan oldu. şimdi çalışıyor :)
Danpe

ana bilgisayar 127.0.0.1 olmalıdır ve şifre numarası ise, '123456' olarak alıntı yapılması gerekir, aksi takdirde normal olarak ex admin123 yazabiliriz
duykhoa

3
XAMPP Kullanma:gem install mysql2 -- --with-mysql-dir=C:\xampp\mysql
Mifeng

--With-mysql-include yoluna bakın: gem install mysql2 - --platform = ruby ​​--with-mysql-lib = "d: \ mariadb \ lib" --with-mysql-include = "d: \ mariadb \ include \ mysql "
Ivan

@Mifeng benim için harika çalıştı ama GitBash kullanıyorum ve -- --with-mysql-dir="C:\xampp\mysql"tırnak işaretleri olmadan gerekli `` soyulmuştu. Teşekkür ederim
Mutmatt

20

Birkaç bilgisayarım var, 32 ve 64 bit işlemci, Ubuntu Linux, Maverick (10.10) sürümünde çalışıyorlar.

Aynı sorunu vardı ve benim sudo apt-get install libmysql-ruby libmysqlclient-dev için iş yaptı !!!


19

For MacOS Mojave :

gem install mysql2 -v '0.5.2' -- --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include


MacOS Catalina için de
Vlad

17

MacOS kullanıcıları için başka bir yol

Mysql kurmak için "demlemek" kullandıysanız:

gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config

xxx = yüklemek istediğiniz mysql2 geminin
sürümü yyy = ls /usr/local/Cellar/mysqlbulmak için yüklediğiniz mysql sürümü .


Burada sorulan her türlü sorudan ~ 10 cevap denedim ... Çözdünüz. Teşekkürler :)
Stan

7

Kullanmayı denedin mi

 gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib 

temel dizin konumunu ve gem yüklemesini tamamlamak için gerekli MySQL kütüphanelerinin yolunu belirtmek için?

Kaynaklar: MySQL Gem Install HATASI: Gem yerel uzantısı oluşturulamadı MySQL Forums :: Ruby :: Ruby için MySQL bağlayıcısını kurarken yardım gerekiyor


Harika çalıştı. Ben arayarak which mysqlve oradan libdizini bularak buldum farklı bir yol kullanmak zorunda kaldı .
Joshua Pinter

7

Yum kullanıyorsanız deneyin:

sudo yum install mysql-devel

Benim için CentOS tabanlı bir Amazon EC2 Mikro Bulut Sunucusu'nda çalıştı.
Lennon

5

Bu, Windows'da bir kez sorunumu çözdü:

subst X: "C:\Program files\MySQL\MySQL Server 5.5" 
gem install mysql2 -v 0.x.x --platform=ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib\opt 
subst X: /D

Kaynağı göndermek üzereydim ama görüyorum ki kullanıcı Ritesh Kumar zaten bunu yaptı. Yani onun değeri, benim değil.
Carlos Pardilla

gem install mysql2 --platform=ruby -- --with-mysql-dir=X: --without-opt-dir
Lib'inizde

5

Hala sorun yaşıyorsanız….

Yüklemeyi deneyin

   sudo apt-get install ruby1.9.1-dev

4

Windows 7'de bu sorunu yaşadım. Bu görünüşte bir uyumsuzluk sorunu ve çözüm aşağıdaki gibidir:

İndir libmySQL.dlleski InstantRails yükleyici dosyayı. Bu edinilebilir InstantRails GitHub repo .

Ardından, bu dosyayı Ruby / bin klasörünüze kopyalayın.

Şimdi, gitmek iyidir;)


1
Hrm. :( Bunu denedim ama koşmaya çalışırken hala hata alıyorum bundle install.
aakoch

3

Ben de bu hatayı aldım. Geliştirme paketleri yükleyerek çözüldü. Ben kemer kullanıyorum ve o oldu:

sudo pacman -S base-devel

yüklü:

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

ama bence gerçekten marka ve gcc'ye ihtiyacı vardı. Hata çıktısı dedi (makinemde, diğerleri arasında):

"Önce geliştirme araçlarını kurmalısınız."

Bu bariz bir karardı ve yardımcı oldu.


3

Bazı bağımlılıklar yüklemelisiniz

sudo apt-get install libmysql-ruby libmysqlclient-dev

3

Debian Stretch'te benim için çalışan paket varsayılan-libmysqlclient-dev

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


3

Benim durumumda bu yardımcı oldu:

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

Sonra:

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

Sonuç:

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

Bu gönderiye bakın (UYARI: Japonca dili içinde).


3

Ubuntu üzerinde (18.04)

i çalıştırarak bu sorunu çözmek mümkün:

sudo apt-get install build-essential libmysqlclient-dev
gem install mysql2

referans


2

Mac'imde bu hatayı çalıştırıyordum ve bu hatayı gidermek için mysql 32bit'ten mysql 64 bit'e yükseltmem gerektiğini buldum. Ruby 1.9.2 ve rails3.0.0 ile bir Intel macbook pro'da OSX 10.6 çalıştırıyordum

Ben de gem derlemek için gerekli "yapmak" gibi unix yardımcı programları almak için xcode yüklemeniz gerekiyordu.

bir kez bu yapıldı gem gem mysql ve gem install mysql2 hatasız çalıştırmak mümkün.


1

Windows kullanıcısı için: mysql'inizin lib ve yolunu eklersiniz, örneğin, xampp kullanıyorsanız şu şekilde olabilirsiniz:

gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'

1

Çözüm yalnızca Mac OS X'te çalışır

MySQL'i homebrew ile kurduysanız, benim için işe yarayan şey MySQL'i kaldırmak ve MySQL web sitesini MySQL web sitesi ( https://www.mysql.com/ ) aracılığıyla kurmaktı .

Yüklendikten sonra, izin verilmeyen sorunlar gem install mysql2alıyorsanız , komutu yeniden girin veya gerekiyorsa yeniden girin sudo gem install mysql2.


0

Mac OS X 10.6.6'da 1'e göre mücevherleri aldım 1) Geliştirici araçları paketinin kurulu olduğundan emin olun 2) Kaynak 3'ten mevcut MySQL paketini (benim durumumda 5.5.8) indirme cmake.org'dan cmake aracını yükleme 4 ) Mysql dağıtım dosyalarından INSTALL-SOURCE bölüm 2.11'deki talimatları uygulayarak 5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include Gem başarıyla inşa edildi, ancak belgelerde rdoc ve ri'nin şikayet ettiği iki hata var. Ama şimdi 'mysql2' istemeye çalıştığımda

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

Ben alacağım hata umuyordum ki libmysqlclient.16.dylib bulunamadı çünkü biz başka bir yazı (install_name_tool arama) anladım.

Benim $ PATH içinde / usr / local / mysql var (kaynak ve yerleşik dosyaları burada bulunur), bu yüzden biraz güdük. Herhangi birinin düşüncesi varsa, birkaç saat uykudan sonra tekrar kontrol edeceğim.



0

Mysql-dev sorunları düzeltildikten sonra, bozuk mysql2 yüklemesini kaldırmanız gerekebilir. $ Bundle kurulumundan sonra mesajlara dikkatlice bakın. Gerekebilir

rm -rf vendor/cache/
rm -rf ./Zentest

Bu, kötü bir mysql2 kurulumunu temizleyecek, böylece son bir $ bundle kurulumu iyi bir tane oluşturabilir.



0

"Önce geliştirme araçlarını yüklemelisiniz." OS X Mountain Lion'a yükselttikten sonra mysql2 gemini yüklemeye çalışırken hata . Görünüşe göre bu yükseltmeyi yapmak komut satırı derleyicilerini kaldırır.

Düzeltmek:

  • Xcode'un çok eski sürümünü kaldırdım (/ Developer / Library'deki kaldırma komut dosyasını çalıştırdım). Sonra / Developer dizinini sildi.
  • AppStore'a gitti ve Xcode'u indirdi.
  • Xcode'u başlattı ve Tercihler -> İndirilenler'e gitti ve komut satırı araçlarını yükledi.

0

Bu sorunu, MySql'yi yüklemediğiniz için alıyorsunuz. Mysql2 gem yüklemeden önce. MySQL'i yükleyin. Bundan sonra mysql2 gem yüklenecektir.


0

Bu yanıtı özellikle Mac Kullanıcıları için eklemek istedim .

Xcode'umu güncelleyene kadar sunucum mükemmel bir şekilde çalışıyordu. Rails sunucumu başlatırken hata şu şekilde gösterildi

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /Users/user/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb --with-mysql-
    checking for rb_thread_blocking_region()... /Users/user/.rvm/rubies/ruby-1.9.3-  
    p448/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an    
    executable file. (RuntimeError)

Ve hata iletisinin sonunda mysql2 gem yüklemek için öneri vardı. Bu yüzden yüklemeyi denediğimde bu soruda yukarıda belirtilen hatayı aldım. Aldığım hata aşağıdaki gibidir

ERROR:  Error installing mysql2:
ERROR: Failed to build gem native extension.

Yani bu yazıda önerildiği gibi 'demlemek install mysql' denedim ve bu mysql sürümü böylece ve böylece zaten yüklü diyerek bıraktı. Ama söylemeden önce uyarı vardı

Warning: You have not agreed to the Xcode license.
Builds will fail! Agree to the license by opening Xcode.app or running:
xcodebuild -license

Sonra bunu denedim sudo xcodebuild -licenseve sonunda 'kabul et' yazdım . Lisansı kabul etmek için kök olmalısınız.

Bundan sonra, tekrar paket yüklemeyi denedim ve sonra her şey normal şekilde çalışıyor. [Bu xcode güncellemesi nedeniyle bile kulemle de sorun yaşadım.]


0

libmysql-ruby aşamalı olarak kaldırıldı ve değiştirildi. Yeni komut:

 sudo apt-get install ruby-mysql libmysqlclient-dev
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.