I've installed Ruby 1.93 in my windows 7 PC using Ruby 1.9.3-p194 one click installer. I can use ruby
command to interpret files, but when I type irb
it gives me the following error:
C:\Users\Acer>irb
F:/Programs/Ruby193/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2111:in `expand_path': non-absolute home
(ArgumentError)
from F:/Programs/Ruby193/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2111:in `_rl_read_init_file'
from F:/Programs/Ruby193/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2094:in `rl_read_init_file'
from F:/Programs/Ruby193/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2515:in `readline_initialize
_everything'
from F:/Programs/Ruby193/lib/ruby/site_ruby/1.9.1/rbreadline.rb:3746:in `rl_initialize'
from F:/Programs/Ruby193/lib/ruby/site_ruby/1.9.1/rbreadline.rb:4758:in `readline'
from F:/Programs/Ruby193/lib/ruby/site_ruby/1.9.1/readline.rb:40:in `readline'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb/input-method.rb:115:in `gets'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb.rb:139:in `block (2 levels) in eval_input'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb.rb:273:in `signal_status'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb.rb:138:in `block in eval_input'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb/ruby-lex.rb:188:in `call'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb/ruby-lex.rb:188:in `buf_input'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb/ruby-lex.rb:103:in `getc'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb/slex.rb:205:in `match_io'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb/slex.rb:75:in `match'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb/ruby-lex.rb:286:in `token'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb/ruby-lex.rb:262:in `lex'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb/ruby-lex.rb:233:in `block (2 levels) in each_top
_level_statement'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `loop'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `block in each_top_level_stat
ement'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `catch'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `each_top_level_statement'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb.rb:155:in `eval_input'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb.rb:70:in `block in start'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb.rb:69:in `catch'
from F:/Programs/Ruby193/lib/ruby/1.9.1/irb.rb:69:in `start'
from F:/Programs/Ruby193/bin/irb:12:in `<main>'
I installed Ruby on F:/Programs/Ruby193
folder and added F:/Programs/Ruby193/bin
in my PATH
.
I also tried with Ruby 1.87 but got the same error.
I got the solution from Pete's comment. I have Cygwin
installed in my computer which was causing the problem (Not sure why). I have just typed this in the command line: set HOME=
and irb
started working!
You can also see this link.
I'd suggest to use DevKit. I have 64-bit Windows 7 and ruby 1.9.3-p125, and everything works smoothly with DevKit.
d:\>systeminfo | findstr /B /C:"OS Name"
OS Name: Microsoft Windows 7 Enterprise
d:\>ruby -v
ruby 1.9.3p125 (2012-02-16) [i386-mingw32]
d:\>irb
irb(main):001:0> 2+2
=> 4
irb(main):002:0> exit
来源:https://stackoverflow.com/questions/12028130/ruby-irb-doesnt-work-on-windows