我在Ubuntu上安装了ruby以供系统使用。 .irbrc_history
文件是在系统目录而不是用户的主目录中创建的。当文件归其他人所有时,这会导致访问错误。除了一堆我认为无关紧要的错误之外还有错误:
irb
/usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/irb/ext/save-history.rb:75:in `initialize': Permission denied @ rb_sysopen - /usr/local/rvm/rubies/ruby-2.4.1/.irbrc_history (Errno::EACCES)
删除历史记录文件可以解决错误。
我尝试将环境变量和历史初始化代码添加到我认为的系统.irbrc
文件中,但无济于事。
正在执行的影响此历史记录文件的初始化文件的顺序是什么?如何更改历史文件的位置?
答案 0 :(得分:8)
Create, or edit your ~/.irbrc file to include:
require 'irb/ext/save-history'
IRB.conf[:SAVE_HISTORY] = 200
IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.irb-history"
Source: How To Persist Rails or IRB Console Command History After Exit
答案 1 :(得分:1)
你碰巧使用RVM吗?
rvm 1.29.3(当前稳定版)有一个错误,其中IRB历史记录保存在RUBY_HOME
而不是HOME
。
https://github.com/rvm/rvm/issues/4158
这是一个修复:
rvm get head
rvm reinstall 2.4.1
答案 2 :(得分:0)
在您的主目录中创建文件:touch ~/.irbrc_history
。
或者将其从系统路径复制到您的主目录:cp /path/of/system/.irbrc_history ~/.irbrc_history
请注意,您应将/path/of/system/
更改为系统中的任何内容。
一旦文件在您的主目录中(由~
给出),它就会在您的用户运行时运行irb