All commands in irb giving "NoMethodError: undefined method `write' for nil:NilClass"
11,995
Try /usr/bin/irb
to get to Apple's installation of Ruby.
Installing Ruby on Lion using instructions for Leopard isn't a good idea. You have to remember that languages and OS details change.
The information at "Building Ruby 1.9.3 on Lion with Xcode 4.2 using ./configure --with-gcc=clang" should help. Also "Error installing 1.9.3 with RVM on Lion" has useful information about XCode.
Comments
-
0xSina almost 2 years
I am trying to get the current ruby version from IRB but its giving me this error:
>> RUBY_VERSION NoMethodError: undefined method `write' for nil:NilClass from /usr/local/lib/ruby/1.9.1/irb.rb:311:in `printf' from /usr/local/lib/ruby/1.9.1/irb.rb:311:in `output_value' from /usr/local/lib/ruby/1.9.1/irb.rb:160:in `block (2 levels) in eval_input' from /usr/local/lib/ruby/1.9.1/irb.rb:273:in `signal_status' from /usr/local/lib/ruby/1.9.1/irb.rb:156:in `block in eval_input' from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:243:in `block (2 levels) in each_top_level_statement' from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `loop' from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `block in each_top_level_statement' from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `catch' from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `each_top_level_statement' from /usr/local/lib/ruby/1.9.1/irb.rb:155:in `eval_input' from /usr/local/lib/ruby/1.9.1/irb/ext/multi-irb.rb:166:in `block (2 levels) in irb' from /usr/local/lib/ruby/1.9.1/irb/ext/multi-irb.rb:165:in `catch' from /usr/local/lib/ruby/1.9.1/irb/ext/multi-irb.rb:165:in `block in irb' Maybe IRB bug!
ruby -v
showsruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0]
I am using
Mac OS X Lion
UPDATE: Actually, it doesn't run anything at all.
>> a = 'Hello, World!' NoMethodError: undefined method `write' for nil:NilClass from /usr/local/lib/ruby/1.9.1/irb.rb:311:in `printf' from /usr/local/lib/ruby/1.9.1/irb.rb:311:in `output_value' from /usr/local/lib/ruby/1.9.1/irb.rb:160:in `block (2 levels) in eval_input' from /usr/local/lib/ruby/1.9.1/irb.rb:273:in `signal_status' from /usr/local/lib/ruby/1.9.1/irb.rb:156:in `block in eval_input' from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:243:in `block (2 levels) in each_top_level_statement' from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `loop' from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `block in each_top_level_statement' from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `catch' from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `each_top_level_statement' from /usr/local/lib/ruby/1.9.1/irb.rb:155:in `eval_input' from /usr/local/lib/ruby/1.9.1/irb/ext/multi-irb.rb:166:in `block (2 levels) in irb' from /usr/local/lib/ruby/1.9.1/irb/ext/multi-irb.rb:165:in `catch' from /usr/local/lib/ruby/1.9.1/irb/ext/multi-irb.rb:165:in `block in irb' Maybe IRB bug!
UPDATE # 2: (For the Tin Man) Using /usr/bin/irb, I get
>> 5+5 NoMethodError: undefined method `write' for nil:NilClass from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb.rb:310:in `printf' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb.rb:310:in `output_value' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb.rb:159:in `eval_input' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb.rb:271:in `signal_status' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb.rb:155:in `eval_input' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb/ruby-lex.rb:244:in `each_top_level_statement' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb/ruby-lex.rb:230:in `loop' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb/ruby-lex.rb:230:in `each_top_level_statement' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb/ruby-lex.rb:229:in `catch' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb/ruby-lex.rb:229:in `each_top_level_statement' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb.rb:154:in `eval_input' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb.rb:71:in `start' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb.rb:70:in `catch' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb.rb:70:in `start' from /usr/bin/irb:13 Maybe IRB bug!!
-
PJP about 12 yearsI mean, try typing that in at the command-line and see what it does. Apple pre-installs Ruby for their own use and
/usr/bin/irb
is their instance of IRB. If it works you know your installation of 1.9.3 is hosed and you need to follow different directions. -
0xSina about 12 yearsAh. just did. I get long error. I'll update my question with the new log.
-
PJP about 12 yearsBecause two different versions of Ruby, one of which is Apple's build, are showing identical problems, I suspect the problem isn't Ruby but something else in your system. Have there been any other changes to your OS, such as installing other command-line applications or replacing any libraries?