hpricot_scanでエラー

Debian etchはてなグラフをアップデートできるようになるまでのトラブル。
全AMEDAS観測地点対応!はてなグラフ降水量・気温ポストRubyスクリプト - 別館 子子子子子子(ねこのここねこ)

まずrubygems用にパスを通しておく。

ログインする度に設定するのは面倒だ, という人は ~/.bashrc 等に記述しておくと良いでしょう.

export PATH=/var/lib/gems/1.8/bin:$PATH

Gfdnavi を Debian GNU/Linux 4.0(etch) で動かす.

degas@debian:~/Ruby/amedas$ ruby -Ku postHatenaGraph….rb 
/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- hpricot_scan (LoadError)
(後略)

google:gem_original_require hpricot_scan
として見つけた

  • aki note » hpricot_scan がない

http://www.ikomaru.com/aki_note/?p=1840
のコメントを参考に,

$ cd /var/lib/gems/1.8/gems/hpricot-0.6/ext/hpricot_scan/
$ ruby extconf.rb
$ make
$ sudo make install

で解決しました.
Fastladder install memo | MKの日記 | スラド

に倣ってmakeしてみる…

degas@debian:/var/lib/gems/1.8/gems/hpricot-0.6/ext/hpricot_scan$ make
-bash: make: command not found
degas@debian:/var/lib/gems/1.8/gems/hpricot-0.6/ext/hpricot_scan$ sudo make
sudo: make: command not found

?makeが入ってない?

degas@debian:/var/lib/gems/1.8/gems/hpricot-0.6/ext/hpricot_scan$ which make

ないな…。

degas@debian:~$ sudo aptitude install make
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
拡張状態情報を読み込んでいます          
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了        
タグのデータベースを構築しています... 完了
以下の新規パッケージがインストールされます:
  make 
更新: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
382kB のアーカイブを取得する必要があります。展開後に 1610kB のディスク領域が新たに消費されます。
拡張状態情報を書き込んでいます... 完了
取得:1 http://cdn.debian.or.jp etch/main make 3.81-2 [382kB]
382kB を 3s 秒でダウンロードしました (122kB/s)
未選択パッケージ make を選択しています。
(データベースを読み込んでいます ... 現在 51802 個のファイルとディレクトリがインストールされています。)
(.../archives/make_3.81-2_i386.deb から) make を展開しています...
make (3.81-2) を設定しています ...

当然ながらgccも入ってない。

degas@debian:~$ sudo aptitude install gcc
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
拡張状態情報を読み込んでいます          
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了        
タグのデータベースを構築しています... 完了
以下の新規パッケージが自動的にインストールされます:
  binutils cpp cpp-4.1 gcc-4.1 libc6-dev libmudflap0 libmudflap0-dev 
  libssp0 linux-kernel-headers 
以下の新規パッケージがインストールされます:
  binutils cpp cpp-4.1 gcc gcc-4.1 libc6-dev libmudflap0 libmudflap0-dev 
  libssp0 linux-kernel-headers 
更新: 0 個、新規インストール: 10 個、削除: 0 個、保留: 0 個。
10.4MB のアーカイブを取得する必要があります。展開後に 37.2MB のディスク領域が新たに消費されます。
続けますか? [Y/n/?] y
拡張状態情報を書き込んでいます... 完了
取得:1 http://cdn.debian.or.jp etch/main binutils 2.17-3 [2605kB]
取得:2 http://cdn.debian.or.jp etch/main cpp-4.1 4.1.1-21 [2331kB]              
取得:3 http://cdn.debian.or.jp etch/main cpp 4:4.1.1-15 [11.6kB]                
取得:4 http://cdn.debian.or.jp etch/main libssp0 4.1.1-21 [4492B]               
取得:5 http://cdn.debian.or.jp etch/main gcc-4.1 4.1.1-21 [461kB]               
取得:6 http://cdn.debian.or.jp etch/main gcc 4:4.1.1-15 [5052B]                 
取得:7 http://cdn.debian.or.jp etch/main linux-kernel-headers 2.6.18-7 [1875kB] 
取得:8 http://cdn.debian.or.jp etch/main libc6-dev 2.3.6.ds1-13etch7 [2718kB]   
取得:9 http://cdn.debian.or.jp etch/main libmudflap0 4.1.1-21 [169kB]           
取得:10 http://cdn.debian.or.jp etch/main libmudflap0-dev 4.1.1-21 [197kB]      
10.4MB を 32s 秒でダウンロードしました (317kB/s)                                
未選択パッケージ binutils を選択しています。
(データベースを読み込んでいます ... 現在 51836 個のファイルとディレクトリがインストールされています。)
(.../binutils_2.17-3_i386.deb から) binutils を展開しています...
未選択パッケージ cpp-4.1 を選択しています。
(.../cpp-4.1_4.1.1-21_i386.deb から) cpp-4.1 を展開しています...
未選択パッケージ cpp を選択しています。
(.../cpp_4%3a4.1.1-15_i386.deb から) cpp を展開しています...
未選択パッケージ libssp0 を選択しています。
(.../libssp0_4.1.1-21_i386.deb から) libssp0 を展開しています...
未選択パッケージ gcc-4.1 を選択しています。
(.../gcc-4.1_4.1.1-21_i386.deb から) gcc-4.1 を展開しています...
未選択パッケージ gcc を選択しています。
(.../gcc_4%3a4.1.1-15_i386.deb から) gcc を展開しています...
未選択パッケージ linux-kernel-headers を選択しています。
(.../linux-kernel-headers_2.6.18-7_i386.deb から) linux-kernel-headers を展開しています...
未選択パッケージ libc6-dev を選択しています。
(.../libc6-dev_2.3.6.ds1-13etch7_i386.deb から) libc6-dev を展開しています...
未選択パッケージ libmudflap0 を選択しています。
(.../libmudflap0_4.1.1-21_i386.deb から) libmudflap0 を展開しています...
未選択パッケージ libmudflap0-dev を選択しています。
(.../libmudflap0-dev_4.1.1-21_i386.deb から) libmudflap0-dev を展開しています...
binutils (2.17-3) を設定しています ...

cpp-4.1 (4.1.1-21) を設定しています ...
cpp (4.1.1-15) を設定しています ...

libssp0 (4.1.1-21) を設定しています ...

gcc-4.1 (4.1.1-21) を設定しています ...
gcc (4.1.1-15) を設定しています ...

linux-kernel-headers (2.6.18-7) を設定しています ...
libc6-dev (2.3.6.ds1-13etch7) を設定しています ...
libmudflap0 (4.1.1-21) を設定しています ...

libmudflap0-dev (4.1.1-21) を設定しています ...

ということで、/var/lib/gems/1.8/gems/hpricot-0.6/ext/hpricot_scanにてsudo ruby extconf.rbした後にmakeとmake installしてみる。

degas@debian:/var/lib/gems/1.8/gems/hpricot-0.6/ext/hpricot_scan$ sudo make
gcc -I. -I. -I/usr/lib/ruby/1.8/i486-linux -I.  -fPIC -Wall -g -fno-strict-aliasing -O2  -fPIC  -c hpricot_scan.c
ext/hpricot_scan/hpricot_scan.rl: In function ‘hpricot_scan’:
ext/hpricot_scan/hpricot_scan.rl:253: warning: control reaches end of non-void function
gcc -shared -rdynamic -Wl,-export-dynamic   -L"/usr/lib" -o hpricot_scan.so hpricot_scan.o  -lruby1.8  -lpthread -ldl -lcrypt -lm   -lc
degas@debian:/var/lib/gems/1.8/gems/hpricot-0.6/ext/hpricot_scan$ sudo make install
/usr/bin/install -c -m 0755 hpricot_scan.so /usr/local/lib/site_ruby/1.8/i486-linux

これで動きました^_^。