Ruby irbrc_history 系统范围。如何本地化?

问题描述 投票:0回答:3

我在 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
的文件中,但没有成功。

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

ruby environment-variables irb
3个回答
10
投票

创建或编辑 ~/.irbrc 文件以包含:

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

来源:如何在退出后保留 Rails 或 IRB 控制台命令历史记录


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

0
投票

在主目录中创建文件:

touch ~/.irbrc_history

或者将其从系统路径复制到您的主目录:

cp /path/of/system/.irbrc_history ~/.irbrc_history

请注意,您应该将

/path/of/system/
更改为系统上的任何内容。

一旦文件位于您的主目录中(由

~
给出),那么当您的用户运行时它将运行
irb

© www.soinside.com 2019 - 2024. All rights reserved.