Bug #3253
closedcannot install ruby on windows
Description
=begin
こんにちは、なかむら(う)です。
IRCで指摘されて気付いたのですが(というかビルドできてなかった
ので気付けなかったのですが)、Windowsでmake installができなく
なっています。
原因は、r27638でlib/tmpdir.rbがtmpdir.soのrequire失敗を許さな
くなったため(この変更自体は正しい)、tool/rbinstall.rbでrequire
しているlib/tempfile.rbがrequireしてるlib/tmpdir.rbが例外を発
生するようになったことです。
ひどい日本語¶
思うに、tool/rbinstall.rbが実行されている時点では本物のrubyが
完成しているわけなので、minirubyでなくそのrubyを使ってインス
トールそりゃいいじゃんという気がします。
というわけで末尾にパッチをつけます。
が、今度は実行中のファイルにアクセスできない環境とかがあった
りして泣く人がいるんじゃないかという気もするんですが、いかが
なもんでしょうか?
Index: common.mk
--- common.mk (revision 27646)
+++ common.mk (working copy)
@@ -106,7 +106,7 @@ SCRIPT_ARGS = --dest-dir="$(DESTDIR)"
--make-flags="$(MAKEFLAGS)"
EXTMK_ARGS = $(SCRIPT_ARGS) --extension $(EXTS) --extstatic $(EXTSTATIC)
--make-flags="MINIRUBY='$(MINIRUBY)'" --
-INSTRUBY = $(MINIRUBY) $(srcdir)/tool/rbinstall.rb
+INSTRUBY = $(XRUBY) $(srcdir)/tool/rbinstall.rb
INSTRUBY_ARGS = $(SCRIPT_ARGS)
--data-mode=$(INSTALL_DATA_MODE)
--prog-mode=$(INSTALL_PROG_MODE)
Index: tool/rbinstall.rb
--- tool/rbinstall.rb (revision 27646)
+++ tool/rbinstall.rb (working copy)
@@ -10,9 +10,7 @@ else
end
srcdir = File.expand_path('../..', FILE)
-unless defined?(CROSS_COMPILING) and CROSS_COMPILING
- $:.replace([srcdir+"/lib", Dir.pwd])
-end
require 'fileutils'
require 'shellwords'
require 'optparse'
それでは。¶
U.Nakamura usa@garbagecollect.jp
=end
Updated by usa (Usaku NAKAMURA) over 14 years ago
- Category set to build
- Priority changed from 3 to Normal
- Target version set to 1.9.2
- ruby -v set to ruby 1.9.2dev (2010-05-06 trunk 27646) [i386-mswin32]
=begin
=end
Updated by znz (Kazuhiro NISHIYAMA) over 14 years ago
- Category deleted (
build) - Priority changed from Normal to 3
- Target version deleted (
1.9.2)
=begin
#1851 のクロスビルドの環境ですが、最終的にはこっちの問題に引っかかってmake installが出来ていません。
i386-mingw32-fakeでRUBY_PLATFORMが"i386-mingw32"になっていて「/mswin|mingw/ =~ RUBY_PLATFORM」が真になるのに「ruby 1.9.2dev (2010-05-06 trunk 27646) [i686-linux]」の方には tmpdir.so がないので LoadError になります。
[user1@fedora11 ~]$ ruby -v -I/home/user1/ruby-trunk -ri386-mingw32-fake -e 'p RUBY_PLATFORM; require "tmpdir"'
ruby 1.9.2dev (2010-05-06 trunk 27646) [i686-linux]
"i386-mingw32"
/home/user1/opt/ruby-trunk/lib/ruby/1.9.1/tmpdir.rb:9:in require': no such file to load -- tmpdir.so (LoadError) from /home/user1/opt/ruby-trunk/lib/ruby/1.9.1/tmpdir.rb:9:in
<top (required)>'
from -e:1:in require' from -e:1:in
'
[user1@fedora11 ~]$
[user1@fedora11 ruby-trunk]$ make DESTDIR=$HOME/ruby-mingw32 install
(略)
Generating file member index...
ruby -I/home/user1/ruby-trunk -ri386-mingw32-fake ./tool/rbinstall.rb --make="make" --dest-dir="/home/user1/ruby-mingw32" --extout=".ext" --mflags="" --make-flags="DESTDIR=/home/user1/ruby-mingw32" --data-mode=0644 --prog-mode=0755 --installed-list .installed.list --install=all --rdoc-output=".ext/rdoc"
/home/user1/opt/ruby-trunk/lib/ruby/1.9.1/tmpdir.rb:9:in require': no such file to load -- tmpdir.so (LoadError) from /home/user1/opt/ruby-trunk/lib/ruby/1.9.1/tmpdir.rb:9:in
<top (required)>'
from /home/user1/opt/ruby-trunk/lib/ruby/1.9.1/tempfile.rb:8:in require' from /home/user1/opt/ruby-trunk/lib/ruby/1.9.1/tempfile.rb:8:in
<top (required)>'
from ./tool/rbinstall.rb:18:in require' from ./tool/rbinstall.rb:18:in
'
make: *** [do-install-all] エラー 1
[user1@fedora11 ruby-trunk]$
=end
Updated by znz (Kazuhiro NISHIYAMA) over 14 years ago
- Category set to build
- Priority changed from 3 to Normal
- Target version set to 1.9.2
- Start date set to 05/06/2010
=begin
=end
Updated by nobu (Nobuyoshi Nakada) over 14 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
=begin
This issue was solved with changeset r27653.
Usaku, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
=end