我正在试图加入bcrypt-ruby,v.3.0.1。我在我的gem文件中输入gem,如下所示:
gem 'bcrypt-ruby', '3.0.1'
然后我去终点站跑:
bundle install
我收到以下回复:
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/local/rvm/rubies/ruby-1.9.3-p392/bin/ruby extconf.rb
creating Makefile
make
compiling bcrypt_ext.c
make: gcc-4.2: No such file or directory
make: *** [bcrypt_ext.o] Error 1
Gem files will remain installed in /Users/philip7899/.bundler/tmp/2186/gems/bcrypt-ruby-3.0.1 for inspection.
Results logged to /Users/philip7899/.bundler/tmp/2186/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.
我对Ruby和Rails都非常陌生,并且不知道如何解决这个问题。我已经看到其他stackoverflow页面有类似的问题,但没有一个能够帮助我。我最近升级到Mountain Lion,并被告知可能是一个问题。有人告诉我使用RVM卸载然后重新安装Ruby。我试过了,但没效果。
请帮忙。谢谢。
答案 0 :(得分:26)
在最近的版本bcrypt-ruby
似乎使用GMP库。
所以,在Linux上这样的东西应该有用(Ubuntu 14.04的命令):
sudo aptitude install libgmp-dev
答案 1 :(得分:4)
尝试删除,'3.0.1'
或尝试使用此gem "bcrypt", "~> 3.1.1"
希望它有所帮助。
如果没有,请从控制台尝试运行gem install bcrypt
答案 2 :(得分:4)
其实很简单:
gem install bundler
gem install bcrypt-ruby
然后:
bundle update bcrypt-ruby
or bundle update bcrypt
会做的伎俩。
这与升级rails的方式大致相同。如果你想确保你也可以在你的Gemfile中指定最新的bcrypt-ruby。我刚刚在十分钟前完成了这个,所以我知道这个帖子的日期是有效的...我使用的是ruby 1.9.3 p484
答案 3 :(得分:2)
我认为这是xcode升级的问题。
我的解决方案:
brew install apple-gcc42
sudo ln -s /usr/local/bin/gcc-4.2 /usr/bin/gcc-4.2
并且有效
答案 4 :(得分:2)
我设法修复了安装Bcrypt 3.1.11 gem的问题,但是它失败了:
linking shared-object bcrypt_ext.bundle
ld: library not found for -lgmp
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [bcrypt_ext.bundle] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/adrian/.rvm/gems/ruby-2.1.6/gems/bcrypt-3.1.11 for inspection.
Results logged to /Users/adrian/.rvm/gems/ruby-2.1.6/extensions/x86_64-darwin-14/2.1.0/bcrypt-3.1.11/gem_make.out
问题是找不到libgmp
。首先,通过brew安装它:
brew install gmp
接下来,确保gcc通过设置LIBRARY_PATH
环境变量来找到库:
export LIBRARY_PATH=/usr/local/lib
并安装:
gem install bcrypt
答案 5 :(得分:0)
BUNDLE_LOCAL__BCRYPT:C:\ RailsInstaller \ Ruby2.1.0 \ lib \ ruby \ gems \ 2.1.0 \ gems \ bcrypt-3.1.10 \ lib
答案 6 :(得分:0)
这是一个对我有用的简单解决方案:
在mac上测试:
确保{gem}文件中包含gem 'bcrypt', '3.1.11'
,然后运行xcode-select --install
。
运行bundle install
就是这样。
祝你好运
答案 7 :(得分:0)
您将需要在Ubuntu / Debian上运行以下命令:
sudo apt install ruby-dev
答案 8 :(得分:-2)
带有用C语言编写的扩展名的宝石,如bcrypt,不会总是在不同的平台/ ruby版本上编译。您可以寻找bcrypt的纯红宝石替代方案,并完全避免C扩展的可能问题。您也可以尝试不同版本的gem,看看它是否在您的系统上编译。