web-dev-qa-db-ja.com

gemをインストールできません-gemネイティブ拡張のビルドに失敗しました-そのようなファイルをロードできません-mkmf(LoadError)

Ruby 1.9.3

Gemfileの一部

#...............
gem "pony"
gem "bcrypt-Ruby", :require => "bcrypt"
gem "nokogiri" 
#..................

Gemをインストールしようとすると、エラーが発生します

alex@ubuntu:~/$ bundle
Fetching gem metadata from http://rubygems.org/.........
Fetching gem metadata from http://rubygems.org/..
Enter your password to install the bundled RubyGems to your system: 
#####............................................................
Installing bcrypt-Ruby (3.0.1) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/Ruby1.9.1 extconf.rb 
/usr/lib/Ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
        from /usr/lib/Ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from extconf.rb:36:in `<main>'


Gem files will remain installed in /home/alex/.bundler/tmp/5526/gems/bcrypt-Ruby-3.0.1 for inspection.
Results logged to /home/alex/.bundler/tmp/5526/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.

それから私はこれをやっています

Sudo gem install bcrypt-Ruby -v '3.0.1'
Building native extensions.  This could take a while...
ERROR:  Error installing bcrypt-Ruby:
        ERROR: Failed to build gem native extension.

        /usr/bin/Ruby1.9.1 extconf.rb
/usr/lib/Ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
        from /usr/lib/Ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from extconf.rb:36:in `<main>'


Gem files will remain installed in /var/lib/gems/1.9.1/gems/bcrypt-Ruby-3.0.1 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/bcrypt-Ruby-3.0.1/ext/mri/gem_make.out

エラーも発生します。

私は何を取りこぼしたか?

155
Alexandre

同様の質問があります:

通常、解決策は次のとおりです。

Sudo apt-get install Ruby-dev

または、それが機能しない場合は、Rubyのバージョンに応じて、次のように実行します:

Sudo apt-get install Ruby1.9.1-dev

問題を修正する必要があります。


まだ動かない? Ruby-devをインストールした後、次を試してください。

Sudo apt-get install make

400
MrYoshiji

Jquery-Railsをインストールしようとしても同じ問題が発生しました。修正は

Sudo apt-get install zlibc zlib1g zlib1g-dev
5
B2Pi

Rubyの別のバージョンをインストールする必要があることがわかりました。コマンドを実行する

$ Sudo apt-get install Ruby1.9.1-dev

そして、拡張機能をインストールしようとします

G ++がないことを通知する問題が発生した場合、次のコマンドを実行してインストールできます。

$ Sudo apt-get install g++
4
hmjha
  1. Ruby-devがインストールされていることを確認してください
  2. makeがインストールされていることを確認してください
  3. それでもエラーが発生する場合は、推奨パッケージを探してください。 gem install pgのようなものをインストールする場合は、lib libpq-devSudo apt-get install libpq-dev)もインストールする必要があります。
2
hazmat

将来誰かがこの問題を抱えている場合、私はMacを使用していて、「xcode-select --install」を使用してコマンドラインツールをインストールする必要がありました

2
NateW

WSL(Linux用Windowsサブシステム)の場合、build-essentialパッケージをインストールする必要があります。

Sudo apt install build-essential
1
Dmitry S.

また、libmysqlclient-devがインストールされていることを確認するのにも役立ちます(Ubuntu 14.04)

1
KLaw

Macでは、私にとってこれは機能します:

CONFIGURE_OPTS="--enable-shared" rbenv install 2.2.2
0
rubyu2

ソリューションを検索したところ、Ruby1.8だけでなく-devパッケージが必要であることがわかりました。あなたがRuby1.9.1をやっているなら

Sudo apt-get install Ruby1.9.1-dev

または、一般的なRubyバージョンをインストールするには、(@ lamplightdevコメントに従って)を使用します。

Sudo apt-get install Ruby-dev

それを修正する必要があります。

Mkmfを見つけて、ファイルが実際にあるかどうかを確認してください。

0
Rahi.Shah