`gerektirir ': yüklenecek böyle bir dosya yok - mkmf (LoadError)


563

Ruby1.9.1 kullanarak Ubuntu Natty Narwhal 11.04 üzerine raylar kurmaya çalışıyordum.

apt-get install ruby1.9.1-fullDev paketini içeren ruby'yi kullanarak kurdum . Hatayı googledim ve hepsi zaten sahip olduğum 1.9.1-dev'i yüklememi önerdi.

Building native extensions.  This could take a while...
ERROR:  Error installing rails:
    ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.8 extconf.rb
extconf.rb:36:in `require': no such file to load -- mkmf (LoadError)
    from extconf.rb:36


Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/bcrypt-ruby-3.0.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out

1
Watir-webdriver'ı yüklemeye çalışırken paralel bir hatayla karşılaştım. Ayrıca ruby1.0.1-dev
kaleidic

Yanıtlar:


979

Bir çözüm arayışından sonra -dev, sadece paketin değil , paketin gerekli olduğu ortaya çıkıyor ruby1.8. Yani eğer ruby1.9.1yapıyorsan

sudo apt-get install ruby1.9.1-dev

veya genel yakut sürümünü yüklemek için şunu kullanın (@lamplightdev yorumuna göre):

sudo apt-get install ruby-dev

düzeltmeli.

locate mkmfDosyanın gerçekten orada olup olmadığını görmeye çalışın .


220
şu anda yüklü olan ruby ​​sürümünüzle eşleşen dev paketini kuracaktır: sudo apt-get install ruby-dev
lamplightdev

evet benim için çalıştı. yalnızca geçerli ruby ​​sürümünü yüklemek istiyorsanız sürümü bulmak için ruby ​​-v komutunu çalıştırın.
Dan Bradbury

3
@lamplightdev Benim için çalışmadı, ruby ​​sürümü 1.9.3 ve yüklüydü 1.8 ruby-dev'i yüklemeye çalışırsam
Karthik T

1
Yükledim ruby-all-dev, muhtemelen tüm sürümler için çalışacaktır.
jcubic

Bu ayrıca aws-sdk için de gereklidir ve SOAP AWS için kullanımdan kaldırılmıştır. Paydaşlar herhangi bir şeye itiraz ederse bir endişe - bir üretim yapısında dev. (SDK'lar da onları heyecanlandırmaz).
mckenzm

185

Benim için işe yarayan cevap bu. Yukarıdaki yorumlarda vardı, ancak ubuntu 12.04 yakut 1.8.7 için cevap olarak haklı yerini hak ediyor

sudo apt-get install ruby-dev
# if above doesnt work make sure you have build essential
sudo apt-get install build-essential

Ubuntu yazılım merkezini kullanmak istiyorsanız, 'ruby-dev için bir eklenti olduğunu,' uzantı modüllerini derlemek için başlık dosyaları 'için seçebileceğinizi de belirtmek gerekir.
RightHandedMonkey

sudo apt-get install ruby1.9.1-devYorum veya bu cevabı görmeden önce yakut 1.9.3 ile kullandım ve bu da raylar uzantısını oluşturmama izin verdi. Bunun gibi uyumsuz sürümlerin bana daha sonra baş ağrısına neden olup olmayacağından emin değilim, ancak resmi olarak kabul edilen cevabın hafif bir şekilde değiştirilmesiyle rayların doğru takıldığına dikkat edilmelidir.
DWils

RVM'niz varsa ne olur? O zaman ihtiyacınız olan yakut versiyonunuz yok mu?
bölüm

37

Ayrıca gerekli kurulum gerekli:

sudo apt-get install build-essential

Buradaki bilet buydu .. Ruby-dev'i de kurmak zorunda olduğumu hayal ediyorum ama aynı zamanda inşaa-temelini yükleyene kadar da işe yaramadı. bir milyon teşekkürler
unc0nnected

30

Sorun hala Ubuntu 13/04 / 13.10 / 14.04'te devam ediyor

ve

sudo apt-get install ruby1.9.1-dev

benim için çalıştı tamam. Eğer Ubuntu 13.04 / 13.10 / 14.04 kullanıyorsanız, bunu kullanmak gerçekten kullanışlı olacaktır.

Bu, yakut sürümü 1.9.3 olsa bile çalışır. Bunun nedeni, Depo'da ruby1.9.3-dev bulunmamasıdır ...


1
Evet, bu benim için de yakut1.9.3 üzerinde çalıştı. Ubuntu deposunda ruby1.9.3-dev için bir paket yoktu.
DWils

Artık değil ... rvm.io'dan rvm.io'dan --ruby ile kurduktan sonra çalıştı - ve muhtemelen en iyisi önce yakut almak için
dagelf

18

Denedin mi:

sudo apt-get install ruby1.8-dev

3
1.9.1 kullanıyorum, neden ruby1.8-dev'i yükleyeyim?
Omar S.

Bu gerçekten çok garip 1.9.1 yükledim, ancak 1.8 okur, ruby ​​çalıştırdığımda -v alıyorum: ruby ​​1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux]
Omar S.

2
Eğer sistem üzerinde varsayılan yakut olarak yakut 1,8 kümesine sahip
Matteo Alessani

10

Paket yüklerken benzer bir hata aldım

sudo apt-get install ruby-dev

Benim için harika çalışıyor ve sorunu çözmek Mint 16 ruby1.9.3




0

Makinenizdeki tüm ruby ​​sürümlerini yönetmeye yardımcı olan RVM'yi (Ruby sürüm yöneticisi) kullanabilirsiniz;

veya Linux (ubuntu) için sudo apt-get install ruby1.8-dev

sonra sudo gem install railsdoğrulamak için rails -v raylarda sürüm gösterecektir

bundan sonra demetleri yükleyebilirsiniz (geliştirme için gerekli taşlar)


Linux üzerinde RVM kullanmaya devam edebilirsiniz. Bunu yapıyorum (ancak rayları yüklerken hala bu mkmf hatası sorunu var)
thesecretmaster
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.