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

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

问题描述:

我在Ubuntu上安装了ruby,供系统使用。 .irbrc_history文件是在系统目录中创建的,而不是在用户的主目录中创建的。当文件被其他人拥有时,这会导致访问错误。这里的除了一堆错误的更多,我认为是无关紧要的:系统范围内的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文件,但无济于事。

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

+1

你找到一个修好了吗?我也有同样的问题。 – kenn

在您的主目录创建文件:touch ~/.irbrc_history

或从系统路径把它复制到你的主目录:cp /path/of/system/.irbrc_history ~/.irbrc_history

请注意,你应该改变/path/of/system/,无论你有你的系统上。

一旦该文件是在您的家目录(~给出),那么它就会在你的用户运行irb

+0

由于某些原因,这并不能解决问题,也不能删除系统范围的问题。使用较新版本的RVM仍然会出现相同的错误。 – tadman

你碰巧使用RVM运行?

RVM 1.29.3(当前的稳定)具有这样IRB历史被保存在RUBY_HOME,而不是HOME的错误。

https://github.com/rvm/rvm/issues/4158

这里有一个修复:

rvm get head 
rvm reinstall 2.4.1 

创建或编辑你的〜/ .irbrc文件包括:

require 'irb/ext/save-history' 
IRB.conf[:SAVE_HISTORY] = 200 
IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.irb-history" 

来源:How To Persist Rails or IRB Console Command History After Exit