为什么我会收到bcrypt-ruby gem install错误?

时间:2011-05-25 03:15:25

标签: ruby-on-rails ruby rubygems devise bcrypt

尝试安装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 64bit,Rails和所有宝石。

10 个答案:

答案 0 :(得分:30)

我在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

看起来宝石正在寻找gcc-4.2,但我只有一个名为gcc的文件。现在,因为我刚刚安装了最新的Xcode(4.3),我知道我的C编译器是兼容的,但是gem已经将gcc-4.2硬编码到其中。所以我的解决方案是:

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

链接就像一个魅力。

答案 1 :(得分:6)

看起来这里可能缺少一些信息 - 对我来说,这是由于gcc的brew安装。 gcc在/ usr / bin中,但不是gcc-4.2。所以我只是做了以下事情:

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

创建了一个链接gcc-4.2,宝石正在寻找的链接可以追溯到gcc

希望有所帮助。

答案 2 :(得分:5)

在安装bcrypt-ruby之前需要安装ruby-dev。 如果您使用的是Ubuntu,请运行

sudo apt-get install ruby1.9.1-dev

sudo apt-get install ruby1.8-dev

基于RUby版本。

答案 3 :(得分:2)

我正在使用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

答案 4 :(得分:2)

您只需要使用rvm(ruby版本管理器)

rvm uninstall 1.9.3

然后

rvm install 1.9.3

看起来这个错误是在rvm 1.9.3的构建上,但是卸载并重新安装修复了bcrypt-ruby 3.0.1的问题

答案 5 :(得分:2)

  

sudo apt-get install ruby​​1.9.1-dev

为我带来了魅力!非常感谢

答案 6 :(得分:1)

嗯,它适用于Mac OS 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并查看是否需要安装任何内容。

答案 7 :(得分:1)

如果您使用的是版本1.8,则bcrypt所需的软件包位于dev软件包中。尝试使用

$sudo apt-get install ruby1.8-dev

然后

$gem install bcrypt-ruby 

答案 8 :(得分:0)

这个修复工作对我来说在osx上的ubuntu使用自制程序,macports无论如何:

sudo apt-get install ruby1.9.1-dev

答案 9 :(得分:0)

我认为您需要重新安装bundler gem。

gem install bundler 然后  bundle install