Techioz Blog

Railsコンソールが動作しない。このエラーが発生する

概要

Traceback (most recent call last):
16: from /home/hman01/.rvm/rubies/ruby-2.5.0/bin/irb:11:in `<main>'
15: from /home/hman01/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/irb.rb:381:in `start'
14: from /home/hman01/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/irb.rb:381:in `new'
13: from /home/hman01/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/irb.rb:410:in `initialize'
12: from /home/hman01/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/irb.rb:410:in `new'
11: from /home/hman01/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/irb/context.rb:91:in `initialize'
10: from /home/hman01/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/irb/extend-command.rb:242:in `save_history='
 9: from /home/hman01/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/irb/ext/save-history.rb:45:in `save_history='
 8: from /home/hman01/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/irb/ext/save-history.rb:21:in `init_save_history'
 7: from /home/hman01/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/irb/ext/save-history.rb:21:in `extend'
 6: from /home/hman01/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/irb/ext/save-history.rb:65:in `extended'
 5: from /home/hman01/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/irb/ext/save-history.rb:75:in `load_history'
 4: from /home/hman01/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/irb/ext/save-history.rb:75:in `open'
 3: from /home/hman01/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/irb/ext/save-history.rb:76:in `block in load_history'
 2: from /home/hman01/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/irb/ext/save-history.rb:76:in `each'
 1: from /home/hman01/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/irb/ext/save-history.rb:76:in `block (2 levels) in load_history'
/home/hman01/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/irb/ext/save-history.rb:76:in `<<': string contains null byte (ArgumentError)

解決策

save-history.rb:76 のソース コードを確認すると、履歴ファイルに問題があるようです。 IRB履歴ファイルを削除してみます。 IRB#rc_file によると、複数の場所に存在する可能性があります

HOME環境が設定されている場合:

rm ~/.irb_history

そうでない場合は、作業ディレクトリから次のようにします。

rm .irb_history irb.history _irb_history '$irb_history`