質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.65%

AWSでNokogiriのインストールができない

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,488

taizan

score 10

現在、AWSのEC2を利用しています。
Nokogiriをインストールしようとすると、以下のようなエラーが表示されました。

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

    /usr/bin/ruby2.0 extconf.rb

Gem files will remain installed in /home/ec2-user/.gem/ruby/2.0/gems/nokogiri-1.6.7.1 for inspection.
Results logged to /home/ec2-user/.gem/ruby/2.0/gems/nokogiri-1.6.7.1/ext/nokogiri/gem_make.out
[ec2-user@ip-172-31-25-34 nokogiri]$ gem install nokogiri -- --use-system-libraries
Building native extensions with: '--use-system-libraries'
This could take a while...
ERROR:  Error installing nokogiri:
        ERROR: Failed to build gem native extension.

    /usr/bin/ruby2.0 extconf.rb --use-system-libraries

Gem files will remain installed in /home/ec2-user/.gem/ruby/2.0/gems/nokogiri-1.6.7.1 for inspection.
Results logged to /home/ec2-user/.gem/ruby/2.0/gems/nokogiri-1.6.7.1/ext/nokogiri/gem_make.out

エラーメッセージなどで検索し、ひとまず以下の操作は行ったのですが、いまだ解決できていません。
CentOSなどでは成功しているようですが、AWSでの成功事例(最近のバージョン)は発見できていません。

sudo yum install libxslt libxslt-devel
sudo yum install libxml2 libxml2-devel
sudo yum install ruby-devel
sudo yum install -y rubygem-nokogiri

もしAWSへのインストールに成功された方がいらっしゃいましたら、ぜひご教授いただければと思います。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

調べられた通り、コンパイル時にヘッダファイル(~-devel というパッケージ)が不足しているので、

Results logged to /home/ec2-user/.gem/ruby/2.0/gems/nokogiri-1.6.7.1/ext/nokogiri/gem_make.out 

のログを見て、不足ライブラリを推測して、追加インストールしてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/18 11:35

    回答ありがとうございます。
    「gem_make.out」ファイルの内容を確認したところ、以下の一行が書かれているだけでした。

    /usr/bin/ruby2.0 extconf.rb

    本来ならばこの処理が実行されて、その結果が表示されるのかもしれませんが、私の場合にはそうではなかったようです。

    そこでこのコマンドをターミナルから打ち込むと以下のような出力となりました。

    $ /usr/bin/ruby2.0 extconf.rb
    checking if the C compiler accepts ... yes
    Building nokogiri using packaged libraries.
    Using mini_portile version 2.0.0
    checking for gzdopen() in -lz... yes
    checking for iconv... yes
    ************************************************************************
    IMPORTANT NOTICE:

    Building Nokogiri with a packaged version of libxml2-2.9.2
    with the following patches applied:
    - 0001-Revert-Missing-initialization-for-the-catalog-module.patch
    - 0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch
    - 0003-Stop-parsing-on-entities-boundaries-errors.patch
    - 0004-Cleanup-conditional-section-error-handling.patch
    (中略)
    checking for xmlSchemaSetValidStructuredErrors()... yes
    checking for xmlSchemaSetParserStructuredErrors()... yes
    creating Makefile

    キャンセル

  • 2016/01/18 11:36

    (コメントが1000文字しか投稿できないため二つに分けています)

    Makefileが作成されたようなので、「make」したところ、以下のような注意があったものの処理は完了したようでした。

    In file included from /usr/include/ruby/2.0/ruby.h:33:0,
    from ./nokogiri.h:33,
    from ./xml_reader.h:4,
    from xml_reader.c:1:
    /usr/include/ruby/2.0/ruby/ruby.h: In function ‘rb_float_value’:
    /usr/include/ruby/2.0/ruby/ruby.h:777:6: warning: negative integer implicitly converted to unsigned type [-Wsign-conversion]
    t.v = RUBY_BIT_ROTR((2 - b63) | (v & ~0x03), 3);
    ^
    /usr/include/ruby/2.0/ruby/ruby.h:777:6: warning: negative integer implicitly converted to unsigned type [-Wsign-conversion]

    そして「sudo make install」とした結果がこれです。

    $ sudo make install
    /bin/mkdir -p /usr/local/lib64/ruby/site_ruby/2.0/nokogiri
    exit > .RUBYARCHDIR.time
    /usr/bin/install -c -m 0755 nokogiri.so /usr/local/lib64/ruby/site_ruby/2.0/nokogiri

    この後、「 /usr/local/lib64/ruby/site_ruby/2.0/nokogiri」ディレクトリには「nokogiri.so」が存在するのですが、肝心のnokogiri本体(?)がインストールされていないようです。

    (which nokogiriで表示されない)

    soファイルではなく、nokogiri本体をインストールするにはどのようにすればいいでしょうか?

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.65%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる