Ruby 1.9.3
Część Gemfile
#...............
gem "pony"
gem "bcrypt-ruby", :require => "bcrypt"
gem "nokogiri"
#..................
Kiedy próbuję zainstalować klejnoty, pojawia się błąd
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.
Więc robię to
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
i również pojawia się błąd.
Co mnie ominęło?
Odpowiedzi:
Są podobne pytania:
Zwykle rozwiązaniem jest:
Lub, jeśli to nie zadziała, w zależności od wersji ruby , uruchom coś takiego:
Powinien rozwiązać twój problem.
Wciąż nie działa? Po zainstalowaniu ruby-dev wypróbuj następujące rozwiązania:
źródło
ruby1.9.1-dev
też musiałemsudo apt-get install make
. Dziękuję Ci!sudo apt-get install ruby
(bez określania wersji), nie musisz się zbytnio martwić o swoją wersję, jeśli tylko ją zainstalujeszsudo apt-get install ruby-dev
sudo apt-get install gcc make
W przypadku WSL (podsystem Windows dla systemu Linux) potrzebujesz
build-essential
pakietu instalacyjnego :źródło
Miałem ten sam problem, próbując zainstalować jquery-rails. Poprawka była
źródło
zlib1g-dev
da ci to, czego potrzebujesz, a przynajmniej zrobiła to dla mnie.Odkryłem, że muszę zainstalować inną wersję Rubiego. Więc uruchamiam polecenie
a następnie spróbuj zainstalować rozszerzenie
Jeśli napotkasz problemy, w których mówi ci, że nie masz g ++, możesz uruchomić następujące polecenie, aby je zainstalować
źródło
Właśnie skończyłem dwugodzinną pogoń za dziką gęsią, próbując rozwiązać ten problem. Żadna z opublikowanych odpowiedzi nie działała dla mnie. Jestem na komputerze Mac (Mojave wersja 10.14.6, Xcode wersja 11.3).
Okazuje się, że brakowało nagłówków pliku ruby, więc musiałem uruchomić
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Na początku to nie zadziałało, ponieważ wersja CommandLineTools, którą zainstalowałem, nie miała folderu „Pakiety”. Więc odinstalowałem i ponownie zainstalowałem w ten sposób:
rm -rf /Library/Developer/CommandLineTools
xcode-select --install
Następnie ponownie uruchomiłem poprzednie polecenie:
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Po instalacji błąd został naprawiony!
źródło
Na wypadek, gdyby ktoś w przyszłości miał ten problem, używam komputera Mac i po prostu musiałem zainstalować narzędzia wiersza poleceń za pomocą polecenia „xcode-select --install”
źródło
ruby-dev
jest zainstalowanymake
jest zainstalowanygem install pg
musisz również zainstalować bibliotekę liblibpq-dev
(sudo apt-get install libpq-dev
).źródło
Pomaga również zapewnić zainstalowanie libmysqlclient-dev (Ubuntu 14.04)
źródło
To zadziałało dla mnie.
bundle config --global build.snappy --with-opt-dir="$(brew --prefix snappy)"
źródło
Na Macu dla mnie to działa:
źródło
Po kilku poszukiwaniach rozwiązania okazuje się, że potrzebny jest pakiet -dev, a nie tylko ruby1.8. Więc jeśli masz robienie ruby1.9.1
lub aby zainstalować ogólną wersję ruby, użyj (zgodnie z komentarzem @lamplightdev):
powinien to naprawić.
Spróbuj zlokalizować mkmf, aby zobaczyć, czy plik faktycznie tam jest.
źródło