From: Takahiro Kambe Date: 2009-05-21T18:04:37+09:00 Subject: [ruby-dev:38513] Re: --program-suffix 指定時の ri の探索先あるいは rdoc のインストール先 こんにちは。 In message <20090402203737.18e943d9.ksmakoto@dd.iij4u.or.jp> on Thu, 2 Apr 2009 20:37:12 +0900, "KISHIMOTO, Makoto" wrote: > たとえば configure 時に --program-suffix=19 とすると、デフォルト > では ri19 コマンドは /usr/local/share/ri19 をさがしにいくのですが、 > rdoc のインストール先は /usr/local/share/ri/ 以下のままです。 > (この /ri/ の部分は Makefile.in の RIDATADIR の定義を見ると > 決め打ちになってます) > > なので、--program-suffix を指定した場合、デフォルトでは ri で rdoc > を読めません。ri の探索先を固定にするか、rdoc のインストール先を可変に > するかして、デフォルトで読めるようになっていたほうがいいのではないかと > 思うのですが、どうでしょうか? Ruby 1.9.1 patchlevel 129のpkgsrcを作成している最中に気がつきました。 また、CONFIG["rubylibdir"]も --program-suffix に影響されるようになって います。 --program-suffixの指定で、CONFIG["rubylibdir"]やRIDATADIRが影響を受け るというのは、そういう方針なのでしょうか? (CVSのリポジトリをさらっと 見ましたが、よくわかりませんでした。) --program-suffixの指定は、単純に実行ファイルの名前に、追加で後置するだ けと思っていたので、CONFIG["rubylibdir"]とRIDATADIRが影響を受けるのは 意外に思えました。 pkgsrcでは、名前が変わっても大丈夫なように CONFIG["rubylibdir"] の方は ケアしていましたが、ふとFreeBSDのportsでは1.8.xと同じように lib/ruby とするように修正しているのを先程発見しましたので、こちらに合わせようと 思います。 戻って、riの探索先ですが、探索先を従来のように戻すのであれば、 --- lib/rdoc/ri/paths.rb.orig 2009-04-19 22:34:21.000000000 +0900 +++ lib/rdoc/ri/paths.rb @@ -33,7 +33,7 @@ module RDoc::RI::Paths else m = [""] * 2 end - ri = "#{m[0]}ri#{m[1]}" + ri = "ri" rdoc = "#{m[0]}rdoc#{m[1]}" base = File.join(RbConfig::CONFIG['datadir'], ri, VERSION) SYSDIR = File.join(base, "system") といった感じの変更で行けそうです。(まだ、実際には試していません。) この変更を加えても、RIDATADIRはRubyのバージョンを含んだパスとなること もあり、pkgsrcの方は CONFIG["rubylibdir"] と同様にこちらで行こうと思い ますが、元々の変更の意図が何だったかは気になります。 -- 神戸 隆博(かんべ たかひろ) at 仕事場