Ruby 1.9.3
Der Teil von Gemfile
#...............
gem "pony"
gem "bcrypt-ruby", :require => "bcrypt"
gem "nokogiri"
#..................
Wenn ich versuche, Edelsteine zu installieren, wird eine Fehlermeldung angezeigt
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.
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?
Antworten:
Es gibt ähnliche Fragen:
Normalerweise lautet die Lösung:
Wenn dies je nach Ruby-Version nicht funktioniert, führen Sie Folgendes aus :
Sollte Ihr Problem beheben.
Funktioniert immer noch nicht? Versuchen Sie nach der Installation von ruby-dev Folgendes:
quelle
ruby1.9.1-dev
ich auchsudo apt-get install make
. Danke dir!sudo apt-get install ruby
(ohne die Version anzugeben), müssen Sie sich nicht zu viele Sorgen um Ihre Version machen, wenn Sie nur installierensudo apt-get install ruby-dev
sudo apt-get install gcc make
Für WSL (Windows Subsystem for Linux) benötigen Sie das Installationspaket
build-essential
:quelle
Ich hatte das gleiche Problem beim Versuch, JQuery-Rails zu installieren. Das Update war
quelle
zlib1g-dev
gibt Ihnen das, was Sie hier brauchen, oder zumindest für mich.Ich stellte fest, dass ich eine andere Version von Ruby installieren musste. Führen Sie also den Befehl aus
und versuchen Sie dann, die Erweiterung zu installieren
Wenn Sie auf Probleme stoßen, bei denen Ihnen mitgeteilt wird, dass Sie nicht über G ++ verfügen, können Sie den folgenden Befehl ausführen, um es zu installieren
quelle
Ich habe gerade eine 2-stündige Verfolgungsjagd mit wilden Gänsen beendet, um dies zu lösen. Keine der geposteten Antworten hat bei mir funktioniert. Ich bin auf einem Mac (Mojave Version 10.14.6, Xcode Version 11.3).
Es stellte sich heraus, dass die Ruby-Datei-Header fehlten, also musste ich laufen
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Das hat bei mir zunächst nicht funktioniert, da die von mir installierte Version von CommandLineTools nicht über den Ordner "Packages" verfügte. Also habe ich so deinstalliert und neu installiert:
rm -rf /Library/Developer/CommandLineTools
xcode-select --install
Dann habe ich den vorherigen Befehl erneut ausgeführt:
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Nach der Installation wurde der Fehler behoben!
quelle
Für den Fall, dass in Zukunft jemand dieses Problem hatte, verwende ich einen Mac und musste nur die Befehlszeilentools mit 'xcode-select --install' installieren.
quelle
ruby-dev
installiert istmake
installiert istgem install pg
Sie auch liblibpq-dev
(sudo apt-get install libpq-dev
) installieren .quelle
Es hilft auch sicherzustellen, dass libmysqlclient-dev installiert ist (Ubuntu 14.04)
quelle
Das hat bei mir funktioniert.
bundle config --global build.snappy --with-opt-dir="$(brew --prefix snappy)"
quelle
In Mac funktioniert das für mich:
quelle
Nach einiger Suche nach einer Lösung stellt sich heraus, dass das Paket -dev benötigt wird, nicht nur ruby1.8. Also, wenn Sie Ruby1.9.1 tun
oder um die generische Ruby-Version zu installieren, verwenden Sie (gemäß @lamplightdev-Kommentar):
sollte es beheben.
Versuchen Sie, mkmf zu finden, um festzustellen, ob die Datei tatsächlich vorhanden ist.
quelle