Hpricotのインストール
Windows環境で作っている Webサービスをそろそろ Ubuntu の方で動かそうかなと思って、subversion のリポジトリから最新をチェックアウトして、とりあえず WEBrick で動かしてみようとすると、「Hpricot がない」というエラーを吐くので、Hpricot をインストールすることにします。
インストール手順
正しいインストール手順はこちら(↓)です。ちなみに、s は sudo です。(なんでも略すのは悪い癖ですね)
$ s apt-get install libc6-dev $ s apt-get install make gcc $ s gem install ruby1.8-dev $ s gem install hpricot
だらだらとしたインストール手順
以下はエラーメッセージでググってくる人のためのだらだらとしたインストール時の記録です。
$ s apt-get install hpricot
E: パッケージ hpricot が見つかりません
apt-get ではインストールできないようです。
$ s gem install hpricot
Select which gem to install for your platform (i486-linux) 1. hpricot 0.6 (jruby) 2. hpricot 0.6 (mswin32) 3. hpricot 0.6 (ruby) 4. hpricot 0.5 (ruby) 5. hpricot 0.5 (mswin32) 6. Skip this gem 7. Cancel installationERROR: While executing gem ... (Gem::Installer::ExtensionBuildError) ERROR: Failed to build gem native extension. ruby extconf.rb install hpricot extconf.rb:1:in `require': no such file to load -- mkmf (LoadError) from extconf.rb:1gem でインストールできるようですが、mkmf がないよと怒られています。extconf.rb というと Ruby でライブラリを作るためのファイルなので、Cのコンパイル環境がいりそうな嫌な予感ですが、とりあえず、目先 mkmf は ruby1.8-dev に入っているようなので、こちらをインストールします。
$ s gem install ruby1.8-dev
以下のパッケージが新たにインストールされます: ruby1.8-dev 取得:1 http://security.ubuntu.com gutsy-security/main ruby1.8-dev 1.8.6.36-1ubuntu3.1 [741kB] ruby1.8-dev (1.8.6.36-1ubuntu3.1) を設定しています ...ruby1.8-dev のインストールは無事完了です。では、気を取り直して Hpricot のインストールに再チャレンジです。
$ s gem install hpricot
Select which gem to install for your platform (i486-linux) 3. hpricot 0.6 (ruby)ERROR: While executing gem ... (Gem::Installer::ExtensionBuildError) ERROR: Failed to build gem native extension. ruby extconf.rb install hpricot checking for main() in -lc... no creating Makefile make sh: make: not foundやっぱり「make がない」なんて言ってますので、make と gcc を入れることにします。別に Cのコンパイル環境を入れたくなかったわけじゃないんですけど、ソースからビルドは最後の手段にして、基本、apt-get でとってこれるものを使おうと思っていただけなんです。ま、そんなことはおいといて。
$ s apt-get install make gcc
以下の特別パッケージがインストールされます: binutils cpp cpp-4.1 gcc-4.1 gcc-4.1-base 提案パッケージ: binutils-doc cpp-doc gcc-4.1-locales gcc-multilib manpages-dev autoconf automake1.9 libtool flex bison gdb gcc-doc gcc-4.1-multilib gcc-4.1-doc make-doc 推奨パッケージ: libc6-dev libc-dev libmudflap0-dev 以下のパッケージが新たにインストールされます: binutils cpp cpp-4.1 gcc gcc-4.1 gcc-4.1-base make 取得:1 http://jp.archive.ubuntu.com gutsy/main binutils 2.18-0ubuntu3 [1461kB] 取得:2 http://jp.archive.ubuntu.com gutsy/main gcc-4.1-base 4.1.2-16ubuntu2 [206kB] 取得:3 http://jp.archive.ubuntu.com gutsy/main cpp-4.1 4.1.2-16ubuntu2 [2330kB] 取得:4 http://jp.archive.ubuntu.com gutsy/main cpp 4:4.1.2-9ubuntu2 [34.0kB] 取得:5 http://jp.archive.ubuntu.com gutsy/main gcc-4.1 4.1.2-16ubuntu2 [580kB] 取得:6 http://jp.archive.ubuntu.com gutsy/main gcc 4:4.1.2-9ubuntu2 [5116B] 取得:7 http://jp.archive.ubuntu.com gutsy/main make 3.81-3build1 [153kB] binutils (2.18-0ubuntu3) を設定しています ... gcc-4.1-base (4.1.2-16ubuntu2) を設定しています ... cpp-4.1 (4.1.2-16ubuntu2) を設定しています ... cpp (4:4.1.2-9ubuntu2) を設定しています ... gcc-4.1 (4.1.2-16ubuntu2) を設定しています ... gcc (4:4.1.2-9ubuntu2) を設定しています ... make (3.81-3build1) を設定しています ...Cのコンパイル環境は無事入ったので、今度こそ大丈夫でしょう。Hpricot をインストールしてみます。
$ s gem install hpricot
Select which gem to install for your platform (i486-linux) 3. hpricot 0.6 (ruby)make cc -I. -I. -I/usr/lib/ruby/1.8/i486-linux -I. -fPIC -fno-strict-aliasing -g -O2 -fPIC -c hpricot_scan.c In file included from ext/hpricot_scan/hpricot_scan.rl:9: /usr/lib/ruby/1.8/i486-linux/ruby.h:40:21: error: stdlib.h: No such file or directoryまだ、ダメですか。orz...。がないって言ってるので、ライブラリ関係をインストールします。しかし、 や なんて、Cでプログラムを書くんだったら絶対必要なはずなんだけど、なんで gcc のインストールで一緒に入れてくれないんだろうか、ぶつぶつ。
$ s apt-get install libc6-dev
以下の特別パッケージがインストールされます: linux-libc-dev 提案パッケージ: glibc-doc manpages-dev 以下のパッケージが新たにインストールされます: libc6-dev linux-libc-dev 取得:1 http://jp.archive.ubuntu.com gutsy-updates/main linux-libc-dev 2.6.22-14.52 [653kB] 取得:2 http://jp.archive.ubuntu.com gutsy-updates/main libc6-dev 2.6.1-1ubuntu10 [3287kB] linux-libc-dev (2.6.22-14.52) を設定しています ... libc6-dev (2.6.1-1ubuntu10) を設定しています ...いいようです。もうこうなると、ちゃんとインストールされる方がびっくりしますね。さて、気を取り直して再度 Hpricot に挑戦です。
$ s gem install hpricot
Select which gem to install for your platform (i486-linux) 3. hpricot 0.6 (ruby)Building native extensions. This could take a while... Successfully installed hpricot-0.6 Installing ri documentation for hpricot-0.6... Installing RDoc documentation for hpricot-0.6...やっとインストールできました。