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

led*_*led 32 ruby rubygems ruby-on-rails bcrypt devise

尝试安装gem设备时出错,安装停止在gem bcrypt-ruby上:

$ gem install bcrypt-ruby
Error installing bcrypt-ruby:
ERROR: Failed to build gem native extension.
Run Code Online (Sandbox Code Playgroud)

我在RVM下使用Ruby运行OSX 10.6.7.我重新安装了最新版本的xcode并重新安装了Ruby 64bit,Rails和所有宝石.

Cur*_*ley 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
Run Code Online (Sandbox Code Playgroud)

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

sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2
Run Code Online (Sandbox Code Playgroud)

链接就像一个魅力.


Rya*_*ark 6

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

$ cd /usr/bin
$ sudo ln -s gcc gcc-4.2
Run Code Online (Sandbox Code Playgroud)

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

希望有所帮助.


小智 5

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

sudo apt-get install ruby1.9.1-dev
Run Code Online (Sandbox Code Playgroud)

要么

sudo apt-get install ruby1.8-dev
Run Code Online (Sandbox Code Playgroud)

基于RUby版本.


the*_*Man 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...
Run Code Online (Sandbox Code Playgroud)

尝试rvm notes看看它是否说您需要安装任何东西。