Почему я получаю ошибку установки bcrypt-ruby gem?

#ruby-on-rails #ruby #rubygems #devise #bcrypt

#ruby-on-rails #ruby #rubygems #разработать #bcrypt

Вопрос:

При попытке установить gem devise выдается сообщение об ошибке, установка останавливается на gem bcrypt-ruby:

 $ gem install bcrypt-ruby
Error installing bcrypt-ruby:
ERROR: Failed to build gem native extension.
  

Я запускаю OSX 10.6.7 с Ruby под RVM.
Я переустановил последнюю версию xcode и переустановил Ruby 64bit, Rails и все драгоценные камни.

Ответ №1:

У меня была такая же проблема при установке под OSX 10.7.3. При установке gem мое сообщение об ошибке было:

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

creating Makefile

make
compiling bcrypt_ext.c
make: /usr/bin/gcc-4.2: No such file or directory
make: *** [bcrypt_ext.o] Error 1
  

Похоже, что gem ищет gcc-4.2, но у меня был только файл с именем gcc. Теперь, поскольку я только что установил последнюю версию Xcode (4.3), я знал, что мой компилятор C совместим, но в gem был жестко запрограммирован gcc-4.2. Итак, мое решение было:

 sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2
  

Связывание сработало как по волшебству.

Ответ №2:

Похоже, здесь может отсутствовать какая-то информация — для меня это было из-за предварительной установки gcc. gcc был в / usr / bin, но не gcc-4.2. Поэтому я просто сделал следующее:

 $ cd /usr/bin
$ sudo ln -s gcc gcc-4.2
  

которая создает ссылку, gcc-4.2 которую ищет gem, которая возвращается к gcc .

Надеюсь, это поможет.

Ответ №3:

Перед установкой bcrypt-ruby требуется установить ruby-dev. Если вы используете Ubuntu, запустите

 sudo apt-get install ruby1.9.1-dev
  

или

 sudo apt-get install ruby1.8-dev
  

на основе версии RUby.

Ответ №4:

Я использую RVM, и у меня продолжала возникать эта проблема при установке драгоценных камней с собственными расширениями (bcrypt-ruby, bson-ext, json, eventmachine, nokogiri, linecache19 и т.д.)

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

Единственный способ, которым я мог, наконец, заставить все работать, — это удалить, а затем переустановить ruby.

rvm remove 1.9.2

rvm install 1.9.2

Спасибо за совет от @doublebee здесь:https://github.com/flori/json/issues/78#issuecomment-1499920

Ответ №5:

Вам нужно использовать только rvm (ruby version manager)

 rvm uninstall 1.9.3
  

и затем

 rvm install 1.9.3
  

похоже, эта ошибка связана со сборкой rvm 1.9.3, но удаление и переустановка устраняют проблему с bcrypt-ruby 3.0.1

Ответ №6:

sudo apt-get install ruby1.9.1-dev

какая прелесть для меня! Большое спасибо

Ответ №7:

Ну, это работает с Ruby 1.9.2 под RVM на macOS 10.6.7:

 $ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.6.0]

$ gem install bcrypt-ruby
Fetching: bcrypt-ruby-2.1.4.gem (100%)
Building native extensions.  This could take a while...
Successfully installed bcrypt-ruby-2.1.4
1 gem installed
Installing ri documentation for bcrypt-ruby-2.1.4...
Installing RDoc documentation for bcrypt-ruby-2.1.4...
  

Попробуйте rvm notes и посмотрите, говорит ли он, что вам нужно что-нибудь установить.

Ответ №8:

Если вы используете версию 1.8, необходимые пакеты для bcrypt находятся в комплекте разработки. Попробуйте использовать

 $sudo apt-get install ruby1.8-dev
  

затем

 $gem install bcrypt-ruby 
  

Ответ №9:

Это исправление работает у меня на ubuntu, на osx использую homebrew, macports что угодно:

 sudo apt-get install ruby1.9.1-dev
  

Ответ №10:

Я думаю, вам нужно переустановить bundler gem.

gem install bundler и затем bundle install