From: Minero Aoki Date: 2005-09-20T10:41:35+09:00 Subject: [ruby-list:41162] Re: RD と rdoc に関する newbie な質問 青木です。 In mail "[ruby-list:41159] Re: RD と rdoc に関する newbie な質問" "conundrum /" wrote: > conundrumです。るびきちさん、直々の回答ありがとうございます。 > ので、早速インストールを試みたのですが、mswin32環境、cygwin環境共に、 > 下記のようなエラーに遭遇します。 > $ ruby setup.rb > adjusting shebang: rdswap.rb > setup.rb:496:in `initialize': Permission denied - rdswap.rb (Errno::EACCES) たぶん setup.rb が古いせいです。これは CVS 版でないと直ってないので、 がんばってダウンロードするよりも書き換えちゃったほうが早いと思います。 setup.rb の中を見ると、1145 行あたりに move_file なんたらという行が あると思うんですが、 1132 def adjust_shebang(path) 1133 return if no_harm? 1134 tmpfile = File.basename(path) + '.tmp' 1135 begin 1136 File.open(path, 'rb') {|r| 1137 first = r.gets 1138 return unless File.basename(config('rubypath')) == 'ruby' 1139 return unless File.basename(first.sub(/\A\#!/, '').split[0]) == 'ruby' 1140 $stderr.puts "adjusting shebang: #{File.basename(path)}" if verb ose? 1141 File.open(tmpfile, 'wb') {|w| 1142 w.print first.sub(/\A\#!\s*\S+/, '#! ' + config('rubypath')) 1143 w.write r.read 1144 } 1145 move_file tmpfile, File.basename(path) 1146 } 1147 ensure 1148 File.unlink tmpfile if File.exist?(tmpfile) 1149 end 1150 end これをその次の行の下に移してください。つまり File.open のブロックから 出すってことです。 move_file tmpfile, File.basename(path) } ↓ } move_file tmpfile, File.basename(path) バージョンによって行番号はちょっと違うかもしれませんが、 検索すれば見付かると思います。 # いいかげん setup.rb をリリースしないとまずいなあ…… -- 青木峰郎