[#48132] requireが配列を取れたら便利だと思うんだけど.. — take_tk <ggb03124@...>

19 messages 2011/06/02
[#48133] Re: requireが配列を取れたら便利だと思うんだけど.. — Kenta Murata <muraken@...> 2011/06/02

むらたです。

[#48134] Re: requireが配列を取れたら便利だと思うんだけど.. — Yukihiro Matsumoto <matz@...> 2011/06/02

まつもと ゆきひろです

[#48135] Re: requireが配列を取れたら便利だと思うんだけど.. — Urabe Shyouhei <shyouhei@...> 2011/06/02

(06/02/2011 03:39 PM), Yukihiro Matsumoto wrote:

[#48161] RedmineのRuby1.9,Rails3対応 — "Jun'ya Shimoda" <jun-shimo@...>

下田と申します。お久しぶりです。

15 messages 2011/06/08

[ruby-list:48162] Re: irbでは見つかるのにスクリプトからrequireできません。。

From: masayoshi takahashi <maki@...>
Date: 2011-06-08 16:32:14 UTC
List: ruby-list #48162
高橋征義です。こんばんは。

2011年6月8日16:38 Tomohiko Hayashi <hayashi-t@asahi.com>:
> いつもお世話になっております。Ruby初心者のはやしと申します(永遠に初心者です)。
> 下記のような環境(MacPortsでRuby 1.8.7を入れようとするも、うまくいかず)で、
>
> Mac OS X 10.5.8
>
> hayashi-tomohiko-no-macbook:~ t-hayashi$ which ruby
> /opt/local/bin/ruby
> hayashi-tomohiko-no-macbook:~ t-hayashi$ ruby -v
> ruby 1.8.6 (2009-06-08 patchlevel 369) [universal-darwin9.0]

まずここですが、下の方の「$ ruby -v」は本当に上のと同じ/opt/local/bin/rubyでしょうか?
というか、/opt/local/bin/ruby ってMacPortsのRubyじゃないでしょうか。

/usr/bin/ruby -v
と
/opt/local/bin/ruby -v
も合わせて実行してみるといいかもしれません。

> irbで以下のようにすると、ちゃんと見つかる'safariwatir'が、
>
> irb(main):001:0> require 'rubygems'
> => true
> irb(main):002:0> require 'safariwatir'
> => true

こちらのirbの起動方法はどうでしょうか?
こちらも、/usr/bin/irb と /opt/local/bin/irb の両方を試してみるといいかもです。

> スクリプト中に以下のように書くと、エラーになってしまいます。
>
> require 'rubygems'
> require 'safariwatir'
>
>
> /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
> `gem_original_require': no such file to load -- safariwatir
> (LoadError)
>        from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
>        from ×××.rb:11

このスクリプトの起動方法もどうなってるでしょうか?
いわゆる#!、「#!」で始まるファイルに実行権限がついていて
それをそのまま実行しているのか、それともrubyコマンドを
実行しているか。

とりあえずここまで見てあやしげなのは、いちばん最初の
「whch ruby」の実行結果が/opt以下、つまり後から入れたRubyなのに、
最後の例のエラーは/Library/Ruby の下のディレクトリ、つまりOS X標準のRubyの
ライブラリのパスを使っているように見えることです。

なお、Rubyのライブラリのパスは$:で表示できます。

$ ruby -e 'print $:.join("\n")'
/opt/local/lib/ruby/site_ruby/1.8
/opt/local/lib/ruby/site_ruby/1.8/i686-darwin10
/opt/local/lib/ruby/site_ruby
/opt/local/lib/ruby/vendor_ruby/1.8
/opt/local/lib/ruby/vendor_ruby/1.8/i686-darwin10
/opt/local/lib/ruby/vendor_ruby
/opt/local/lib/ruby/1.8
/opt/local/lib/ruby/1.8/i686-darwin10
.

$ irb
irb(main):001:0> print $:.join("\n")
/opt/local/lib/ruby/site_ruby/1.8
/opt/local/lib/ruby/site_ruby/1.8/i686-darwin10
/opt/local/lib/ruby/site_ruby
/opt/local/lib/ruby/vendor_ruby/1.8
/opt/local/lib/ruby/vendor_ruby/1.8/i686-darwin10
/opt/local/lib/ruby/vendor_ruby
/opt/local/lib/ruby/1.8
/opt/local/lib/ruby/1.8/i686-darwin10
.=> nil

こんな感じで調べると、何が起こっているか分かりやすいかもしれません。

以上、参考まで。

高橋征義

In This Thread

Prev Next