bar_1

contents_map

ラベル Gem の投稿を表示しています。 すべての投稿を表示
ラベル Gem の投稿を表示しています。 すべての投稿を表示

2011年3月21日月曜日

[Cygwin][Ruby]ファイル・システム OR gemの振る舞い(環境?)がおかしくなった?

正確には、当該現象は今は発生していない;原因はわからないが、LoadErrorを発生することなく元通りに実行されるようになった。

しかし、以前にも(gistyとは別件で)、Cygwin上で同様のふるまい―作業したファイルが元に(?)戻ってしまったように見える現象―を、経験している。よって、ここに忘備として記録を残しておく。

現象以前構築したgistyの環境が、おかしくなっていることに気づいた。具体的な症状は:
  • gistyコマンドを実行すると、LoadErrorが発生
  • LoadErrorの内容は、no such file to load -- rr 、つまりrrというファイルが、gem_original_requireメソッドから見つからない

その他の現象gem listすると、パッケージは表示されるものの、gem which パッケージ名 を実行すると:
ERROR: Can't find ruby library file or shared library test-unit
という結果になるものがいくつか存在する。この現象は、回復していない。
環境
$ 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
$ git --version
git version 1.7.2.3
$ gisty about
mm mm
mm
mmmmmm mmmm mmmmm mmmmmm mm mm
mm mm mm mm mm mm mm
mm mm mm mmmm mm mm mm
mmmmmm mm mm mm mmmmm
mm mmmmmm mmmmm mmm mm
mmmmm mmmm
version: 0.0.14
url: http://github.com/swdyh/gisty/tree/master

2011年3月1日火曜日

gem install の振る舞いふたたび(Rake編)

う~む。。。やっぱり gem install しただけだと、インストールされないようだ。
$ gem install rake
Successfully installed rake-0.8.7
1 gem installed
Installing ri documentation for rake-0.8.7...
Installing RDoc documentation for rake-0.8.7...

$ rake --version
bash: rake: command not found


2011年2月10日木曜日

gem update/install のふるまい?

いままで、とくに気にしたことはなかったのだけど、
gem update gemパッケージ
は、実はgemパッケージをダウンロードしてくるだけで、インストールはしない……?

2010年12月7日火曜日

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


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
と出る場合があるんだよね…もう一度同じコマンド実行すると、出なかったり。
まだなにかそんな項目を使っている設定が残っている…?