From: "NAKAMURA, Hiroshi" Date: 2003-10-26T00:48:41+09:00 Subject: [ruby-dev:21722] Re: SOAP::StreamError: Illegal media type. なひです。 > From: "Yukihiro Matsumoto" > Sent: Tuesday, October 21, 2003 11:39 PM > |> SOAP4Rが /usr/lib/ruby/1.8 にインストールしてありませんでし > |> た。メインのrubyには -I オプションでSOAP4Rの位置が指定してあっ > |> たのですが、CGIプロセスのrubyには渡っていませんでした。 > | > |test下のテスト群のうち、test/rubyに関しては、インストール前でも > |インストール前のライブラリ群を使って正しくテストされるべきだろう、 > |と思っていました。他の添付ライブラリ群についてはどうすべきでしょう。 > > できることならば、インストール前のライブラリ群を使ってほしい > です。ただ、どうやって実現するかというとなかなか難しいかも。 時間が取れたのでちょっとやってみました。$:をちょちょいといじれば なんとかなる、と考えていたんですが、甘かった。test/ruby程度は動くんですが、 soapは駄目。digest/md5/md5.soをrequire 'digest/md5'でアクセスする方法が 見つかりませんでした(あります?)。 やるとすればどこかへ仮にインストールするくらいですが、 それならmake installしたあと動かしても同じですね。 というわけで断念。ライブラリのテストはインストール後にやりましょう。 小細工runner.rbをつけておきます。test/rubyだけでも、インストール前の イメージを使って動くようにしてみます? make test用とかに。 module TestRunner def self.rootdir @rootdir ||= File.dirname(File.dirname(File.expand_path(__FILE__))) end def self.libpath path = Dir.glob(rootdir + "/ext/**/*.so").collect { |so| File.dirname(so) }.sort.uniq path += Dir.glob(rootdir + "/ext/**/lib") path += [rootdir + "/lib", rootdir, "."] path end def self.rubybin require "rbconfig" bin = File.join(rootdir, Config::CONFIG["MINIRUBY"]) bin + self.libpath.collect { |path| " -I" + path }.join end end $:.replace(TestRunner.libpath) require 'test/unit' rcsid = %w$Id: runner.rb,v 1.10 2003/10/13 14:57:36 nobu Exp $ Version = rcsid[2].scan(/\d+/).collect!(&method(:Integer)).freeze Release = rcsid[3].freeze runner = Test::Unit::AutoRunner.new(true) runner.to_run.concat(ARGV) runner.to_run << File.dirname(__FILE__) if runner.to_run.empty? runner.run