[ruby-list:50224] Re: msys環境でruby-2.2.3をインストールしようとすると失敗する

From: Nobuyoshi Nakada <nobu@...>
Date: 2015-09-10 08:45:59 UTC
List: ruby-list #50224
On 2015/09/10 16:18, 青山彰 wrote:
> msys環境でruby-2.2.3をコンパイルしてインストールしようとすると下記のエラーが発生し、
> インストールに失敗します。
> 
> ツールチェイン: gcc version 4.9.3 (i686-posix-sjlj-rev1, Built by MinGW-W64 project)
> 
> configure で --disable-install-doc を指定しています。
> 
> $make install
> ...
> ./miniruby.exe -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems -r./i386-mingw32-fake ./tool/rbinstall.rb --make="make" --dest-dir="" --extout=".ext" --mflags="" --make-flags="" --data-mode=0644 --prog-mode=0755 --installed-list .installed.list --mantype="man"
> C:/MinGW/msys/1.0/home/aaoyama/build/ruby-2.2.3/i386-mingw32-fake.rb:28:in `read': No such file or directory @ rb_sysopen - /home/aaoyama/build/ruby-2.2.3/tool/fake.rb (Errno::ENOENT)
>         from C:/MinGW/msys/1.0/home/aaoyama/build/ruby-2.2.3/i386-mingw32-fake.rb:28:in `<top (required)>'
>         from ./tool/rbinstall.rb:1:in `require'
> make: *** [do-install-nodoc] Error 1
> 

ソースディレクトリでコンパイルしているなら、とりあえず以下のパッチでど
うでしょうか。
ソースディレクトリを絶対パスで指定する場合は、msysのパスをWindowsのパ
スに変換するコマンド(cygwinにおけるcygpath.exe相当)などが必要ですが、
何かあるのでしょうか。

~~~
diff --git a/template/fake.rb.in b/template/fake.rb.in
index 6f5de50..69d97cc 100644
--- a/template/fake.rb.in
+++ b/template/fake.rb.in
@@ -17,12 +17,13 @@ class Object
   RUBY_RELEASE_DATE = "@RUBY_RELEASE_DATE@"
   RUBY_DESCRIPTION = "ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
 end
-builddir = File.dirname(__FILE__)
-top_srcdir = "@abs_top_srcdir@"
+builddir = File.dirname(File.expand_path(__FILE__))
+srcdir = "@srcdir@"
 if /mingw/ =~ RUBY_PLATFORM
   # convert MSYS path to Windows path
-  top_srcdir.sub!(/\A\/([a-z])\//, '\\1:/')
+  srcdir.sub!(/\A\/([a-z])\//, '\\1:/')
 end
-$:.unshift(File.expand_path(builddir))
+top_srcdir = File.realpath(srcdir, builddir)
+$:.unshift(builddir)
 fake = File.join(top_srcdir, "tool/fake.rb")
 eval(File.read(fake), nil, fake)
~~~

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread