ただいま整理中。
Blogspot (Blogger?) に移行しました!
タイムライン | 技術系 | TIPS | ライフハック系 | その他 | 左記カテゴリ以外は、右の欄の下のタグクラウドへ!
.

2010年12月07日

Ruby/Cygwinでrdoc-dataのgemインストールがおかしいことの対処方法

※[ブックマーク]ボタンの中に delicious, reddit, digg, Google+(G+) のボタンもあります。

WindowsXPマシン上のCygwin環境のRubyの mechanize を、gemインストールで1.0.0 に更新したのだけど、ドキュメント関係が何かオカシイ。調べていた途中で、rdoc, rdoc-dataがインストールされていないことも、判明した。

で、例によってトラブったのだが、ググッたところどうも解説法が見つからないようなので、原因について調査を進めていった。最終的には、解決(rdocとrdoc-dataをインストールし、使用できるようにすること)にいたった。

原因はくだらないが知らなければ誰もが引っかかると思うので、ここに記す。


環境は
$ uname -srvmpio
CYGWIN_NT-5.1 1.7.7(0.230/5/3) 2010-08-31 09:58 i686 unknown unknown Cygwin
$ ruby --version
ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]
$ gem --version
1.3.7
である。


■忙しい人のために
解決手順は、以下の通りである:
  1. gemインストール(rdoc)
    gem install rdoc
  2. gemインストール(rdoc-data)
    gem install rdoc-data
  3. rdoc-data修正
    s/local\///
  4. 修正済みrdoc-dataの実行
    cp rdoc-data /usr/bin; rdoc-data --install
  5. gemインストールの確認
  6. rdocドキュメントの確認



《スポンサードリンク》


■1.gemインストール(rdoc)
$ gem install rdoc -y
INFO:  `gem install -y` is now default and will be removed
INFO:  use --ignore-dependencies to install only the gems you list
RDoc 2.5 did not save method parameters, so you should upgrade your rdoc-data
gem to a version >= 2.5.3.

To have ri data for core and stdlib you'll need to:

  gem install rdoc-data

then run:

  rdoc-data --install

To have ri data for you gems you'll also need to run:

  gem rdoc --all --overwrite

If you don't want to rebuild the rdoc for `gem server`, add --no-rdoc.
Successfully installed rdoc-2.5.11
1 gem installed
Installing ri documentation for rdoc-2.5.11...
Installing RDoc documentation for rdoc-2.5.11...
rdocはインストールされたらようだ。
$ gem which rdoc
/cygdrive/d/home/gems/rdoc-2.5.11/lib/rdoc.rb


■2.gemインストール(rdoc-data)
$ gem install rdoc-data
To install ri data for RDoc 2.5+ run:

  rdoc-data

Successfully installed rdoc-data-2.5.3
1 gem installed
Installing ri documentation for rdoc-data-2.5.3...
Installing RDoc documentation for rdoc-data-2.5.3...


■3.rdoc-data修正
インストールしても、なぜかコマンド:rdoc-data は、/usr/bin/配下にコピー
されない。このため、手動でコピーする:
$ cd ${GEM_HOME}/gems/rdoc-data-2.5.3/bin
$ cp -i rdoc-data /usr/bin/.
だがここで、rdoc-dataを実行すると:
bash: /usr/bin/rdoc-data: /usr/local/bin/ruby: bad interpreter: Permission denied
というエラーが発生する。

そこで rdoc-data の中身をみると、6行からなる単なるrubyスクリプトである:
#!/usr/local/bin/ruby -w

require 'rubygems'
require 'rdoc/data'

RDoc::Data.run
一行目のrubyのパスが間違っている。このため、rdoc-dataの一行目を以下のように、修正する
#!/usr/local/bin/ruby -w
->#!/usr/bin/ruby -w


■4.rdoc-dataの実行
rdocインストール時のログの続き(rdoc-data --install)を実行する:

$ rdoc-data --install
$ gem rdoc --all --overwrite
Installing ri documentation for appengine-apis-0.0.16...
Installing ri documentation for appengine-apis-0.0.18...
Installing ri documentation for appengine-rack-0.0.9...
Installing ri documentation for appengine-rack-0.0.11...
Installing ri documentation for appengine-sdk-1.3.4...
Installing ri documentation for appengine-sdk-1.3.5...
Installing ri documentation for appengine-tools-0.0.13...
Installing ri documentation for appengine-tools-0.0.15...
Installing ri documentation for bundler08-0.8.5...
Installing ri documentation for google-appengine-0.0.13...
Installing ri documentation for google-appengine-0.0.15...
Installing ri documentation for jruby-jars-1.4.1...
Installing ri documentation for jruby-jars-1.5.1...
Installing ri documentation for jruby-rack-1.0.1...
Installing ri documentation for mechanize-1.0.0...
Installing ri documentation for nokogiri-1.4.4...
Installing ri documentation for rack-1.1.0...
Installing ri documentation for rdoc-2.5.11...
Installing ri documentation for rdoc-data-2.5.3...
Installing ri documentation for rubygems-update-1.3.7...
Installing ri documentation for rubyzip-0.9.4...
Installing RDoc documentation for appengine-apis-0.0.16...
Installing RDoc documentation for appengine-apis-0.0.18...
Installing RDoc documentation for appengine-rack-0.0.9...
Installing RDoc documentation for appengine-rack-0.0.11...
Installing RDoc documentation for appengine-sdk-1.3.4...
Installing RDoc documentation for appengine-sdk-1.3.5...
Installing RDoc documentation for appengine-tools-0.0.13...
Installing RDoc documentation for appengine-tools-0.0.15...
Installing RDoc documentation for bundler08-0.8.5...
Installing RDoc documentation for google-appengine-0.0.13...
Installing RDoc documentation for google-appengine-0.0.15...
Installing RDoc documentation for jruby-jars-1.4.1...
Installing RDoc documentation for jruby-jars-1.5.1...
Installing RDoc documentation for jruby-rack-1.0.1...
Installing RDoc documentation for mechanize-1.0.0...
Installing RDoc documentation for rack-1.1.0...
Installing RDoc documentation for rdoc-2.5.11...
Installing RDoc documentation for rdoc-data-2.5.3...
Installing RDoc documentation for rubygems-update-1.3.7...
Installing RDoc documentation for rubyzip-0.9.4...


■5.gemインストールの確認
$ gem which rdoc
/cygdrive/d/home/gems/rdoc-2.5.11/lib/rdoc.rb
$ gem which rdoc-data
ERROR:  Can't find ruby library file or shared library rdoc-data


$ gem list

*** LOCAL GEMS ***

appengine-apis (0.0.18, 0.0.16)
appengine-rack (0.0.11, 0.0.9)
appengine-sdk (1.3.5, 1.3.4)
appengine-tools (0.0.15, 0.0.13)
bundler08 (0.8.5)
google-appengine (0.0.15, 0.0.13)
jruby-jars (1.5.1, 1.4.1)
jruby-rack (1.0.1)
mechanize (1.0.0)
nokogiri (1.4.4)
rack (1.1.0)
rdoc (2.5.11)
rdoc-data (2.5.3)
rubygems-update (1.3.7)
rubyzip (0.9.4)
gem whichで、rdoc-dataが表示されないのは、データだからだろ・・・おそらく。


■6.rdocドキュメントの確認
rdocドキュメントは、GEMのホームディレクトリ/doc/ 配下に入っている

$ gem which mechanize
/cygdrive/d/home/cygwin/gems/mechanize-1.0.0/lib/mechanize.rb
$ gem which rack
/usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack.rb

である場合、rdocはそれぞれ
/cygdrive/d/home/cygwin/doc/mechanize-1.0.0/rdoc/
/usr/lib/ruby/gems/1.8/doc/rack-1.1.0/rdoc/
に格納される。
実際のファイルを確認してみよう。
$ ls -l /cygdrive/d/home/cygwin/doc/mechanize-1.0.0/rdoc/
total 348
-rw-r--r--+ 1 **** ????  38689 2010-12-07 11:03 CHANGELOG_rdoc.html
-rw-r--r--+ 1 **** ????  13592 2010-12-07 11:03 EXAMPLES_rdoc.html
-rw-r--r--+ 1 **** ????   8523 2010-12-07 11:03 FAQ_rdoc.html
-rw-r--r--+ 1 **** ????  14771 2010-12-07 11:03 GUIDE_rdoc.html
-rw-r--r--+ 1 **** ????  27080 2010-12-07 11:03 LICENSE_rdoc.html
-rw-r--r--+ 1 **** ????  15940 2010-12-07 11:03 Manifest_txt.html
drwxr-xr-x+ 1 **** ????      0 2010-12-07 11:03 Mechanize/
-rw-r--r--+ 1 **** ???? 123205 2010-12-07 11:03 Mechanize.html
drwxr-xr-x+ 1 **** ????      0 2010-12-07 11:03 Net/
-rw-r--r--+ 1 **** ????   9274 2010-12-07 11:03 Net.html
-rw-r--r--+ 1 **** ????  10455 2010-12-07 11:03 README_rdoc.html
-rw-r--r--+ 1 **** ????  10620 2010-12-07 11:03 WWW.html
-rw-r--r--+ 1 **** ????   3589 2010-12-07 11:03 created.rid
drwxr-xr-x+ 1 **** ????      0 2010-12-07 11:03 images/
-rw-r--r--+ 1 **** ????  38368 2010-12-07 11:03 index.html
drwxr-xr-x+ 1 **** ????      0 2010-12-07 11:03 js/
drwxr-xr-x+ 1 **** ????      0 2010-12-07 11:03 lib/
-rw-r--r--+ 1 **** ????  12560 2010-12-07 11:03 rdoc.css

参考までに、rackパッケージのものも
$ ls -l /usr/lib/ruby/gems/1.8/doc/rack-1.1.0/rdoc/
total 176
drwxr-xr-x+ 1 **** ????     0 2010-12-07 11:04 FCGI/
-rw-r--r--  1 **** ????  9421 2010-12-07 11:04 FCGI.html
-rw-r--r--  1 **** ????  9264 2010-12-07 11:04 KNOWN-ISSUES.html
-rw-r--r--  1 **** ???? 29728 2010-12-07 11:04 README.html
drwxr-xr-x+ 1 **** ????     0 2010-12-07 11:04 Rack/
-rw-r--r--  1 **** ???? 31164 2010-12-07 11:04 Rack.html
-rw-r--r--  1 **** ???? 19074 2010-12-07 11:04 SPEC.html
-rw-r--r--  1 **** ????  3334 2010-12-07 11:04 created.rid
drwxr-xr-x+ 1 **** ????     0 2010-12-07 11:04 images/
-rw-r--r--  1 **** ???? 46651 2010-12-07 11:04 index.html
drwxr-xr-x+ 1 **** ????     0 2010-12-07 11:04 js/
drwxr-xr-x+ 1 **** ????     0 2010-12-07 11:04 lib/
-rw-r--r--  1 **** ???? 12560 2010-12-07 11:04 rdoc.css


■References
http://docs.rubygems.org/read/chapter/11


■余談
ところで、なぜか gem list したときにまだ、
cygwin warning:
  MS-DOS style path detected: C:\Documents and Settings\All Users\Application Data/gemrc
  Preferred POSIX equivalent is: /cygdrive/c/Documents and Settings/All Users/Application Data/gemrc
と出る場合があるんだよね…もう一度同じコマンド実行すると、出なかったり。
まだなにかそんな項目を使っている設定が残っている…?


posted by もふもふ at 14:25 | ロンドン 🌁 | Comment(0) | TrackBack(0) | カテゴリ: 技術 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
トラックバックURLは,"Trackback(x)"のリンクを押すと表示されます.
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。