gem install: Gem yerel uzantısı oluşturulamadı (başlık dosyaları bulunamıyor)


356

Fedora 14 kullanıyorum ve 5.1.42 yüklü ve çalışan MySQL ve MySQL sunucum var. Şimdi bunu kök kullanıcı olarak yapmaya çalıştım:

gem install mysql

Ama bu hatayı alıyorum:

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

Burada yanlış olan ne? Kurulu yakut 1.8.7. ve en son rubygems 1.3.7.


Sadece hızlı bir tahmin: MySQL için dev dosya başlıklarına sahip misiniz
DrColossos

Bu dev dosya başlıklarını nasıl edinebilirim?
Tim

1
Ubuntu'da aşağıdakileri yaptım: apt-get install ruby-dev rubygems gem install mysql - mysql-config = / usr / bin / mysql_config ile çalışır.
Ivan Carrasco Quiroz

Yanıtlar:


757

Kabul edilen cevapla karıştırılabilecek olanlar için, benim gibi, yakut başlıklarının da [ ruby-devel ] kurulu olması gerekir .

Saklamamı kurtaran makale burada .

Ve bu revize edilmiş çözüm (Fedora 13'te olduğumu unutmayın):

yum -y install gcc mysql-devel ruby-devel rubygems
gem install -y mysql -- --with-mysql-config=/usr/bin/mysql_config

Debian ve Debian tarzı ambalaj kullanan diğer dağıtımlar için yakut geliştirme başlıkları:

sudo apt-get install ruby-dev

Ubuntu için ruby ​​geliştirme başlıkları:

sudo apt-get install ruby-all-dev

Ruby'nin önceki bir sürümünü (2.2 gibi) kullanıyorsanız, çalıştırmanız gerekir:

sudo apt-get install ruby2.2-dev

(burada 2.2 istediğiniz Ruby sürümüdür)


@NoBugs Ek bilgi için teşekkürler :)
Brian Lacy

1
Bu raylar üzerinde yakut kullanarak bir uygulama oluşturmaya çalışırken bir sorun olduğunda çalıştı. json'u nasıl yükleyemediğinden şikayet etti ve bundler devam edemiyor. ruby-devel kurulumu çalıştı.
Jack

2
Yukarıdaki @NoBugs tarafından yayınlanan ruby-dev'e ek olarak, Ubuntu'da (12.04) libmysqlcient-dev'e de ihtiyacım vardı. (Veya aşağıdaki Damian Nowak'ın Debian / Ubuntu cevabına bakın.)
Jon Garvin

1
Jekyll yükleme konusunda sorun yaşadığımda benim için RHEL6 üzerinde çalıştı.
David Mason

Bu, fpm yüklememe yardımcı oldu, muhtemelen herhangi bir yakut tabanlı yazılım yüklemeye yardımcı oldu. Ben kullandım yum -y install gcc ruby-devel rubygems.
Zoltán

91

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

Bu mu? mysql-devel.i686: MySQL uygulamalarının geliştirilmesi için dosyalar
Tim

1
Elbette mysql-devel gereklidir. Soru, neye ihtiyaç duyulduğudur. Belki şunu deneyin: fedora-tunisia.org/?q=node/44 Çalışıp çalışmadığını bize bildirin.
Nowaker

Burada sadece bu sorunu yaşadım: stackoverflow.com/questions/6297751/… İyi çözüm!
Kevin Brown

Söyledikleriniz gerekli, ancak söz konusu hata mesajını düzeltmek için gereken yakut-devel.
Edward Anderson

RedHat sisteminde BTW var ruby-devel.
14:14

50

2015 yılında bunu okuyan herkes için: paketi ruby2.0yüklediyseniz ruby2.0-dev, uygun Ruby başlıklarını almak için eşleşmeyi yüklemeniz gerekir . Aynı için de geçerli ruby2.1ve ruby2.2vb Örneğin,:

$ sudo apt-get install ruby2.2-dev

Fedora 22'de:sudo dnf install ruby-devel
Geoffrey De Smet

Teşekkür ederim! Ruby bazen çok garip.
nelsonenzo

Aynı şey yakut için de geçerlidir 2.3.
Charles Roper

24

öyle görünüyor ki

yum install ruby-devel

benim için yeterliydi

gem install datamapper

sonradan.

Başka bir paket kurmanız gerekebilir:

yum install gcc gcc-c++

yerel uzantılar oluşturabilmek


1
Açık bir mesaj olmadan çok garip bir hata alıyordum ve bunun nedeni gcc paketleri kurulmamıştı. :( Bu yazı bana bu temel adımı hatırlattı.; P
BrunoJCM

9

Xcode araçları düzgün yüklenmediğinde MAC kullanıcıları bu sorunla karşılaşabilir. Aşağıda sorundan kurtulma komutu verilmiştir.

xcode-select --install

evet, sorun buydu. Çok teşekkürler!
Eduard Ghinea

Ve sonra bu sudo gem install -n /usr/local/bin cocoapods thumbsup
hyd00

8

Çözümü burada buldum .

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

8

Bu yazı bana yardımcı oldu. Çok teşekkürler.

Linux'ta (Ubuntu 12.10) çalıştırmam gerekiyordu

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

başarılı bir şekilde koşmadan önce

sudo gem install jekyll

4

Mücevher yüklü ve yakut varsa ve rayları yükleyemiyorsanız, ruby ​​dev lib'i yükleyin.

sudo apt-get install ruby-dev

Benim için çalışıyor. Farklı çözümü denedim.


Ubuntu 16.04LTS sürümüne sahibim. Bence, aynı önceki sürüm için de geçerli olacak.
Hafiz Shehbaz Ali

2

Red Hat, Fedora:

sudo dnf -y install gcc-c++ redhat-rpm-config ruby-devel gcc mysql-devel rubygems

2

Hala sorun yaşayanlar için, (Ubuntu 16.04 kullanıyorum) gibi, bcrypt, pg ve diğerleri gibi bazı mücevherleri almak için aşağıdaki komutları koymak zorunda kaldım. Biri hariç hepsi yukarıdakilere benzer.

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

Bu, PG, bcrypt ve recaptcha gibi taşlar yüklememe izin verdi.


1

Benim ilk çözüm yükleyerek yukarıdaki hataları gidermek oldu ruby-devel, patchverubygems .

Bcrypt 3.1.11 hala Fedora 23 üzerinde derleme ve yükleme sorunları vardı çünkü benim sorunum biraz farklıydı . Ek paketlere ihtiyacım vardı. Bu yüzden yukarıda yüklendiğimden emin olduktan sonra hala sorun yaşıyordum:

gcc: error: conftest.c: No such file or directory

gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory

Buradan aşağıdakileri yapmak zorunda kaldım:

  • Herhangi bir C derleyici aracından yoksun olmamamı sağladım sudo dnf group install "C Development Tools and Libraries"

  • Sonra sudo dnf install redhat-rpm-configyukarıda listelenen gcc sorununu çözmek için koştum .

Burada Fedore Projesi ile ilgili bir yazı bulabilirsiniz . Ayrıca diğer ihtiyaçlara da cevap bulabilirsiniz.



1

Aşağıdaki paketlerin kurulu olması gerekir:

  • yakut-dev

  • gcc

  • libffi-dev

  • Yapmak

İşte debian distro için komut:

 sudo apt install gcc ruby-dev rubygems libgmp-dev libgmp3-dev make 


0

İçin redhat-rpm-config kurulumu gereklidir. Sanırım sorununuzu çözdü!



0

RVM ile uğraşmış olabilirsiniz.

Yapmaya çalışın:

\curl -sSL https://get.rvm.io | bash -s stable --rails

-1

Sadece PATH'ımda ruby.h dosyasına yol eklemek
için örneğin:

dışa aktarma PATH = $ PATH: / usr / src / ruby-xxxxxx

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.