From: Kenta Murata Date: 2009-08-11T14:38:32+09:00 Subject: [ruby-dev:39066] [Bug #1924] マルチバイト文字を含んだパス内で ruby をビルドすると make install で失敗する Bug #1924: マルチバイト文字を含んだパス内で ruby をビルドすると make install で失敗する http://redmine.ruby-lang.org/issues/show/1924 起票者: Kenta Murata ステータス: Open, 優先度: Normal Target version: 1.9.x ruby -v: ruby 1.9.2dev (2009-08-11 trunk 24495) [i686-linux] マルチバイト文字を含んだパス内で ruby をビルドすると make install で失敗します。 $ make install ./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb ./tool/rbinstall.rb --make="make" --dest-dir="" --extout=".ext" --mflags="" --make-flags="" --data-mode=0644 --prog-mode=0755 --installed-list .installed.list --mantype="doc" /home/muraken/src/るびぃ/ruby.git/lib/tempfile.rb:7:in `require': /home/muraken/src/るびぃ/ruby.git/lib/delegate.rb:140: invalid multibyte character: /\A\/home\/muraken\/src\/るびぃ\/ruby.git\/lib\/delegate.rb:\d+:in `method_missing'\z/ (SyntaxError) from /home/muraken/src/るびぃ/ruby.git/lib/tempfile.rb:7:in `' from ./tool/rbinstall.rb:15:in `require' from ./tool/rbinstall.rb:15:in `
' make: *** [do-install-nodoc] エラー 1 $ pwd /home/muraken/src/るびぃ/ruby.git マルチバイト文字を含んだパスにインストールされた ruby でも同じ現象が発生します。 $ ~/る/bin/ruby -v -rdelegate -e '' ruby 1.9.2dev (2009-08-11 trunk 24495) [i686-linux] -e:0:in `require': /home/muraken/る/lib/ruby/1.9.1/delegate.rb:140: invalid multibyte character: /\A\/home\/muraken\/る\/lib\/ruby\/1.9.1\/delegate.rb:\d+:in `method_missing'\z/ (SyntaxError) 以下の変更で治ります。 diff --git a/lib/delegate.rb b/lib/delegate.rb index 5fc0caf..d0b732a 100644 --- a/lib/delegate.rb +++ b/lib/delegate.rb @@ -137,7 +137,7 @@ class Delegator target.__send__(m, *args, &block) end rescue Exception - $@.delete_if{|s| %r"\A#{__FILE__}:\d+:in `method_missing'\z"o =~ s} + $@.delete_if{|s| %r"\A#{Regexp.quote(__FILE__)}:\d+:in `method_missing'\z"o =~ s} ::Kernel::raise end end ---------------------------------------- http://redmine.ruby-lang.org