やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

ERROR: Failed to build gem native extension.

前回のつづき。はてなAPI用gemがインストールできないエラーについて調べた。

エラー

対象のエラー。前回の工程を経ている。

$ sudo gem install hatenablog
[sudo] password for mint: 
Fetching: nokogiri-1.6.8.1.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing hatenablog:
    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:4:in `<main>'


Gem files will remain installed in /var/lib/gems/1.9.1/gems/nokogiri-1.6.8.1 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/nokogiri-1.6.8.1/ext/nokogiri/gem_make.out

cannot load such file -- mkmfとある。mkmfとやらが無いのだろう。

ERROR: Failed to build gem native extension.

ERROR: Failed to build gem native extension.で検索した。

ubuntu - gemを使ってインストールするとエラーがでる。 - スタック・オーバーフロー

そのまんまの回答があった。感謝。

mkmfが無い場合はruby-devをインストール -- ぺけみさお

ruby-devのインストール

$ sudo apt-get install ruby-dev
[sudo] password for mint: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  ruby1.9.1-dev
以下のパッケージが新たにインストールされます:
  ruby-dev ruby1.9.1-dev
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 399 個。
890 kB のアーカイブを取得する必要があります。
この操作後に追加で 3,592 kB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://archive.ubuntu.com/ubuntu/ trusty-updates/main ruby1.9.1-dev i386 1.9.3.484-2ubuntu1.2 [886 kB]
取得:2 http://archive.ubuntu.com/ubuntu/ trusty/main ruby-dev all 1:1.9.3.4 [4,660 B]
890 kB を 3秒 で取得しました (293 kB/s)
以前に未選択のパッケージ ruby1.9.1-dev を選択しています。
(データベースを読み込んでいます ... 現在 185089 個のファイルとディレクトリがインストールされています。)
.../ruby1.9.1-dev_1.9.3.484-2ubuntu1.2_i386.deb を展開する準備をしています ...
ruby1.9.1-dev (1.9.3.484-2ubuntu1.2) を展開しています...
以前に未選択のパッケージ ruby-dev を選択しています。
.../ruby-dev_1%3a1.9.3.4_all.deb を展開する準備をしています ...
ruby-dev (1:1.9.3.4) を展開しています...
ruby1.9.1-dev (1.9.3.484-2ubuntu1.2) を設定しています ...
ruby-dev (1:1.9.3.4) を設定しています ...

hatenablogのインストール(失敗)

$ c
Building native extensions.  This could take a while...
ERROR:  Error installing hatenablog:
    ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb

Gem files will remain installed in /var/lib/gems/1.9.1/gems/nokogiri-1.6.8.1 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/nokogiri-1.6.8.1/ext/nokogiri/gem_make.out

またしても失敗。

gem native extensionとやらがビルドできないエラーであることは同じ。しかし、その原因について何も情報がなくなった……。

検索

ERROR: Failed to build gem native extension. /usr/bin/ruby1.9.1 extconf.rb

ruby - Failed to build gem native extension — Rails install - Stack Overflow

上記はsudo apt-get install ruby-devしか書いていない。

ruby - Failed to build gem native extension — Rails install - Stack Overflow

上記でsudo apt-get install makeを発見。なぜmake?

make

$ make
make: *** ターゲットが指定されておらず, makefile も見つかりません.  中止.

makeはインストールされている。インストールコマンドは不要

さらに検索

RubyGemsでinstallコマンドをたたくとエラーが出る→rbenvの問題だった - Retired Colourman

rbenvとやらがあるらしい。今回とは異なるケースかもしれない。環境を破壊しかねないので保留。

gem インストール時に発生したエラーとその解決方法まとめ - kzy52's blog

nokogiriは libxml2-devel, libxslt-devel がインストールされていない場合もコンパイルに失敗する

とある。次回、調べてみるか。

所感

まさかパッケージのインストールごときでこれほど苦労させられるとは思わなかった。Ruby使いたくない。gem、全然パッケージ管理できてないじゃん。