it-swarm.com.de

Gem kann nicht installiert werden - Die native Erweiterung von Gem konnte nicht erstellt werden. Eine solche Datei kann nicht geladen werden. - mkmf (LoadError)

Ruby 1.9.3

Der Teil von Gemfile

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

Wenn ich versuche, Edelsteine ​​zu installieren, erhalte ich eine Fehlermeldung

[email protected]:~/$ 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.

Dann mache ich das

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

und auch einen Fehler bekommen.

Was habe ich verpasst?

151
Alexandre

Es gibt ähnliche Fragen: 

Normalerweise lautet die Lösung:

Sudo apt-get installiert Ruby-dev

Oder, falls dies nicht funktioniert, führen Sie abhängig von Ihrer Ruby-Version Folgendes aus:

Sudo apt-get install Ruby1.9.1-dev

Sollte dein Problem beheben.


Funktioniert immer noch nicht? Versuchen Sie nach der Installation von Ruby-dev Folgendes:

Sudo apt-get install machen

393
MrYoshiji

Ich hatte das gleiche Problem beim Versuch, Jquery-Rails zu installieren. Die Lösung war 

Sudo apt-get install zlibc zlib1g zlib1g-dev
4
B2Pi

Ich fand, dass ich eine andere Version von Ruby installieren musste. Also den Befehl ausführen

$ Sudo apt-get install Ruby1.9.1-dev

und versuchen Sie dann, die Erweiterung zu installieren

Wenn Sie auf Probleme stoßen, bei denen Sie erfahren, dass Sie nicht über g ++ verfügen, können Sie den folgenden Befehl ausführen, um es zu installieren

$ Sudo apt-get install g++
4
hmjha
  1. Stellen Sie sicher, dass Ruby-dev installiert ist
  2. Stellen Sie sicher, dass make installiert ist
  3. Wenn der Fehler weiterhin angezeigt wird, suchen Sie nach vorgeschlagenen Paketen. Wenn Sie versuchen, etwas wie gem install pg zu installieren, müssen Sie auch die Bibliothek libpq-dev (Sudo apt-get install libpq-dev) installieren.
2
hazmat

Für den Fall, dass jemand in der Zukunft dieses Problem hatte, verwende ich einen Mac und musste lediglich die Befehlszeilentools mit 'xcode-select --install' installieren. 

2
NateW

Es hilft auch sicherzustellen, dass libmysqlclient-dev installiert ist (Ubuntu 14.04).

1
KLaw

Bei Mac funktioniert das für mich:

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

Nach einiger Suche nach einer Lösung stellt sich heraus, dass das Paket -dev benötigt wird, nicht nur Ruby1.8. Wenn du also Ruby1.9.1 hast

Sudo apt-get install Ruby1.9.1-dev

um eine generische Ruby-Version zu installieren, verwenden Sie (wie im Kommentar von @lamplightdev):

Sudo apt-get install Ruby-dev

sollte es beheben.

Versuchen Sie, mkmf zu finden, um zu sehen, ob die Datei tatsächlich vorhanden ist.

0
Rahi.Shah

Für WSL (Windows Subsystem for Linux) müssen Sie das build-essential-Paket installieren:

Sudo apt install build-essential
0
Dmitry S.