【问题标题】:Why do I get a bcrypt-ruby gem install error?为什么我会收到 bcrypt-ruby gem 安装错误?
【发布时间】:2011-09-01 10:14:48
【问题描述】:
尝试安装 gem 设计时出错,安装正在停止
gem bcrypt-ruby:
$ gem install bcrypt-ruby
Error installing bcrypt-ruby:
ERROR: Failed to build gem native extension.
我在 RVM 下运行带有 Ruby 的 OSX 10.6.7。
我重新安装了最新版本的 xcode 并重新安装了 Ruby 64 位、Rails 和所有的 gem。
【问题讨论】:
标签:
ruby-on-rails
ruby
rubygems
devise
bcrypt
【解决方案1】:
嗯,它适用于 MacOS 10.6.7 上 RVM 下的 Ruby 1.9.2:
$ 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,看看它是否说你需要安装任何东西。
【解决方案2】:
如果您使用的是 1.8 版,则 bcrypt 所需的软件包位于开发包中。尝试使用
$sudo apt-get install ruby1.8-dev
然后
$gem install bcrypt-ruby
【解决方案3】:
我正在使用 RVM,并且在安装带有本机扩展(bcrypt-ruby、bson-ext、json、eventmachine、nokogiri、linecache19 等)的 gem 时,我一直遇到这个问题
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
【解决方案4】:
我在 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
链接就像一个魅力。
【解决方案5】:
在安装 bcrypt-ruby 之前需要安装 ruby-dev。
如果您使用的是 Ubuntu,请运行
sudo apt-get install ruby1.9.1-dev
或
sudo apt-get install ruby1.8-dev
基于 RUby 版本。
【解决方案6】:
看起来这里可能缺少一些信息 - 对我来说,这是由于 brew 安装了 gcc。 gcc 在 /usr/bin 中,但不在 gcc-4.2 中。所以我只是做了以下事情:
$ cd /usr/bin
$ sudo ln -s gcc gcc-4.2
它创建了一个链接,gcc-4.2,gem 正在寻找该链接,该链接返回到 gcc。
希望对您有所帮助。
【解决方案7】:
你只需要使用 rvm (ruby 版本管理器)
rvm uninstall 1.9.3
然后
rvm install 1.9.3
看起来这个错误出现在 rvm 1.9.3 的构建上,但卸载并重新安装修复了 bcrypt-ruby 3.0.1 的问题
【解决方案8】:
这个修复适用于我在 osx 上的 ubuntu 上使用自制软件,macports 什么的:
sudo apt-get install ruby1.9.1-dev
【解决方案9】:
sudo apt-get install ruby1.9.1-dev
我的魅力!非常感谢
【解决方案10】:
我认为您需要重新安装 bundler gem。
gem install bundler
然后
bundle install