OS X是否安装了/ etc/irbrc?irb读了吗?

Dav*_*uth 5 ruby macos irb

在调查我的Mac上的irb问题时(OS X 10.11.5),我注意到了/etc/irbrc.前几行如下:

# Some default enhancements/settings for IRB, based on
# http://wiki.rubygarden.org/Ruby/page/show/Irb/TipsAndTricks

unless defined? ETC_IRBRC_LOADED

  # Require RubyGems by default.
  require 'rubygems'

  # Activate auto-completion.
  require 'irb/completion'

# continued ...
Run Code Online (Sandbox Code Playgroud)

它似乎已经过时了(rubygarden.org已经消失了,rubygems现在已经出现在标准库中了)并做了我一直认为必须自己做的事情~/.irbrc(设置完成,历史等).

它是日期为2016年1月31日.我可能会或可能不会在该日期运行Apple系统更新或升级其他内容; 我不记得了.从那时起,我肯定已经将OS X升级为一个或两个主要版本.

我不认为我在这台计算机上安装了任何Rubies,而不是OS X和安装了rbenv的Ruby 2.3.1(在我自己的帐户中,而不是root用户).也就是说,我不认为这个文件可能来自OS X之外的任何东西.

Unix shell约定会让我期望/etc/irbrc在任何用户运行irb之前执行一个名为的文件,~/.irbrc如果他们有一个.但是,OS X安装的irb似乎没有读取此文件:我放在puts 1顶部,当我运行irb时看不到结果.(我通常使用rbenv,但在调查此文件时禁用它.)/etc/irbrc似乎无法运行,无论我是否有~/.irbrc.此外,我看到没有提及此文件/usr/bin/irb/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb.

我的猜测就是这个档案

  • 由OS X安装
  • 不是由irb读取(尽管它具有误导性的名称和位置),但是打算复制到~/.irbrc.

有谁知道肯定,或知道有什么不同?

我不需要或不需要它; 我很乐意保持自己~/.irbrc.我只是想确保它在运行时不会影响irb(特别是我通常使用的rbenv安装的Ruby中的irb),并且未来的OS X升级不会改变irb行为.

Dav*_*uth 5

根据Mark Setchell和Jared Beck的评论,/ etc/irbrc与当前(10.13)OS X一起安装,至少已经有几个主要版本.

我将/ etc/irbrc复制到〜/ .irbrc,运行irb,退出并出错:undefined method 'nitems' for ["exit"]:Array (NoMethodError).这个方法存在于Ruby 1.8中,但已从Ruby 1.9中删除.我通常不会看到这个错误,因此我得出结论,/ etc/irbrc根本没有执行.

总的来说,我得出结论,在调试我的〜/ .irbrc问题时我可以忽略/ etc/irbrc,这是我的问题的起源.