10

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の両方に非常に慣れていないため、これを修正する方法がわかりません. 同様の質問がある他のスタックオーバーフローページを見たことがありますが、どれも私を助けることができませんでした. 最近、Mountain Lion にアップグレードしましたが、これが問題になる可能性があると言われました。RVM を使用して Ruby をアンインストールしてから再インストールするように言われました。私はそれを試しましたが、うまくいきませんでした。

助けてください。ありがとうございました。

4

9 に答える 9

27

最近のバージョンbcrypt-rubyでは GMP ライブラリを使用しているようです。

そのため、Linux では次のようなものが役立ちます (Ubuntu 14.04 のコマンド):

sudo aptitude install libgmp-dev
于 2015-12-28T14:26:51.877 に答える
5

削除して,'3.0.1'みるか、このようにしてみてくださいgem "bcrypt", "~> 3.1.1"

それが役に立てば幸い。

そうでない場合は、コンソールから実行してみてくださいgem install bcrypt

于 2013-09-23T20:44:23.127 に答える
4

実際には簡単です:

gem install bundler
gem install bcrypt-ruby

その後:

bundle update bcrypt-ruby
or bundle update bcrypt

トリックをやったでしょう。

レールをアップグレードするのとほぼ同じ方法です。確認したい場合は、Gemfile で最新の bcrypt-ruby を指定することもできます。10分前にこれを行ったので、この投稿の日付の時点で機能していることがわかります...ルビー1.9.3 p484を使用していました

于 2013-12-26T14:02:42.937 に答える
2

それはxcodeのアップグレードの問題だと思います。

私の解決策:

brew install apple-gcc42
sudo ln -s /usr/local/bin/gcc-4.2 /usr/bin/gcc-4.2

そしてそれは動作します

于 2013-11-05T09:10:28.057 に答える
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

次に、LIBRARY_PATH環境変数を設定して、gcc がライブラリを見つけられるようにします。

export LIBRARY_PATH=/usr/local/lib

そしてインストールします:

gem install bcrypt
于 2016-05-07T20:47:12.383 に答える
0
  1. 必要な gem を Gemfile に追加します
  2. バンドル インストールのリモート パスにスペースが含まれている場合は、次の行を構成ファイルに追加します: .bundle\config:

BUNDLE_LOCAL__BCRYPT: C:\RailsInstaller\Ruby2.1.0\lib\ruby\gems\2.1.0\gems\bcrypt-3.1.10\lib

  1. バンドルのインストールを実行
于 2015-09-08T19:45:33.553 に答える
-2

bcrypt のように、C で記述された拡張機能を持つ Gem は、異なるプラットフォーム/Ruby バージョンで常にコンパイルされるとは限りません。bcrypt に代わる純粋な ruby​​ を探して、C 拡張機能で発生する可能性のある問題を完全に回避できます。別のバージョンの gem を試して、システムでコンパイルできるかどうかを確認することもできます。

于 2013-09-23T20:43:47.387 に答える