Gem yüklenemedi - Gem yerel uzantısı oluşturulamadı - bu dosya yüklenemiyor - mkmf (LoadError)


172

Yakut 1.9.3

Gemfile bölümü

#...............
gem "pony"
gem "bcrypt-ruby", :require => "bcrypt"
gem "nokogiri" 
#..................

Mücevher yüklemeye çalıştığımda bir hata alıyorum

alex@ubuntu:~/$ bundle
Fetching gem metadata from http://rubygems.org/.........
Fetching gem metadata from http://rubygems.org/..
Enter your password to install the bundled RubyGems to your system: 
#####............................................................
Installing bcrypt-ruby (3.0.1) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
        from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from extconf.rb:36:in `<main>'


Gem files will remain installed in /home/alex/.bundler/tmp/5526/gems/bcrypt-ruby-3.0.1 for inspection.
Results logged to /home/alex/.bundler/tmp/5526/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out
An error occurred while installing bcrypt-ruby (3.0.1), and Bundler cannot continue.
Make sure that `gem install bcrypt-ruby -v '3.0.1'` succeeds before bundling.

Sonra bunu yapıyorum

sudo gem install bcrypt-ruby -v '3.0.1'
Building native extensions.  This could take a while...
ERROR:  Error installing bcrypt-ruby:
        ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
        from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from extconf.rb:36:in `<main>'


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

ve bir hata alıyorum.

Ne kaçırdım?


1
olası `` zorunlu ''
konuk

Yanıtlar:


428

Benzer sorular var:

Genellikle, çözüm:

sudo uygun-almak install ruby-dev

Veya, eğer işe yaramazsa, yakut sürümünüze bağlı olarak , şöyle bir şey çalıştırın:

sudo uygun-get install ruby1.9.1-dev

Sorununuzu çözmelisiniz.


Hala çalışmıyor? Ruby-dev'i kurduktan sonra aşağıdakileri deneyin:

sudo uygun-get install make


Ama sadece 1.9.3 yakutum var.
Alexandre

5
ruby 1.9.3, ruby

6
Yükledikten sonra ruby1.9.1-devda yapmam gerekiyordu sudo apt-get install make. Teşekkür ederim!
wasatchwizard

6
sudo apt-get install rubysudo apt-get install ruby-dev
Ruby'nizi

7
Ubuntu sudo apt-get install gcc make
16.04'te

13

WSL (Linux için Windows Alt Sistemi) için build-essentialpaket yüklemeniz gerekir :

sudo apt install build-essential

1
Diğer önerilerin hiçbiri bunu görünüyordu sonra benim için çözüldü. Kurulumum: Ubuntu 18.04 + Ruby 2.5 ile Win10 Pro + WSL. Teşekkürler!
cjs1978

1
Aynı şey Ubuntu Sunucu Hyper-V VM için de geçerli.
Jorge Yanes Diez

1
Docker içinde Ubuntu üzerinde çalıştım
Miguel Mota

Bu benim için Typhoeus'u yüklemeye çalışırken Ubuntu 18.04 LTS'nin düzenli yüklemesinde çalıştı. Oraya ulaşmak için yaş aldı, teşekkürler!
RemakingEden

8

Aynı sorunu jquery rayları kurmaya çalışırken de yaşadım. Düzeltme

sudo apt-get install zlibc zlib1g zlib1g-dev

1
Sadece yüklemek zlib1g-devburada ihtiyacınız olanı size verecektir, ya da en azından benim için yaptı.
lindes

4

Ruby'nin başka bir sürümünü kurmam gerektiğini buldum. Yani komutu çalıştırmak

$ sudo apt-get install ruby1.9.1-dev

ve sonra uzantıyı yüklemeyi deneyin

Size g ++ 'a sahip olmadığınızı söyleyen sorunlarla karşılaşırsanız, yüklemek için aşağıdaki komutu çalıştırabilirsiniz

$ sudo apt-get install g++

4

Bunu çözmeye çalışırken 2 saatlik vahşi kaz kovalamacını yeni bitirdim. Gönderilen cevapların hiçbiri benim için işe yaramadı. Mac'te Im (Mojave Sürüm 10.14.6, Xcode Sürüm 11.3).

Çalıştırmak zorunda kaldım yakut dosya başlıkları eksik çıkıyor open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

Kurmuş olduğum CommandLineTools sürümü "Paketler" klasörü yoktu çünkü bu benim için ilk işe yaramadı. Bu yüzden kaldırdım ve bu şekilde yeniden yükledim:

rm -rf /Library/Developer/CommandLineTools

xcode-select --install

Sonra bir önceki komutu tekrar çalıştırdım:

open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

Yüklemeden sonra hata düzeltildi!


Bu benim için çalıştı. MacOS 10.14.6 (18G1012) kullanıyorum. Xcode 11.3.
palmi

Teşekkürler. Çarpıntı gelişimi için "sudo gem install cocoapods" kurarken çözümünüz benim için çalıştı.
Venkataraman K

3

Gelecekte herkesin bu sorunu yaşaması durumunda, Mac kullanıyorum ve sadece 'xcode-select --install' komutunu kullanarak Komut Satırı Araçlarını yüklemem gerekti


1
Bu benim için çalıştı. Benim durumumda, başımı kaşıyordum çünkü El Capitan'a geçene kadar yapım iyi çalışıyordu.
bruce1337

2
  1. ruby-devYüklü olduğundan emin olun
  2. makeYüklü olduğundan emin olun
  3. Hatayı hala alıyorsanız, önerilen paketleri arayın. Eğer sizin gibi bir şey kurmaya çalışıyorsanız gem install pg, lib libpq-dev( sudo apt-get install libpq-dev) de kurmanız gerekecektir .

1

Ayrıca libmysqlclient-dev'in kurulu olduğundan emin olmanıza yardımcı olur (Ubuntu 14.04)


1

Bu benim için çalıştı. bundle config --global build.snappy --with-opt-dir="$(brew --prefix snappy)"


0

Mac'te benim için şu işe yarar:

CONFIGURE_OPTS="--enable-shared" rbenv install 2.2.2

0

Bir çözüm aradıktan sonra, sadece ruby1.8 değil, -dev paketinin gerekli olduğu ortaya çıkıyor. Yani ruby1.9.1 yapıyorsa

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.

Dosyanın gerçekten orada olup olmadığını görmek için mkmf'yi bulmaya çalışın.

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.