Ruby irbrc_history系统范围内。如何让它成为本地的?

时间:2017-10-08 21:05:24

标签: ruby environment-variables irb

我在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文件中,但无济于事。

正在执行的影响此历史记录文件的初始化文件的顺序是什么?如何更改历史文件的位置?

3 个答案:

答案 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