在调查我的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.
我的猜测就是这个档案
~/.irbrc.有谁知道肯定,或知道有什么不同?
我不需要或不需要它; 我很乐意保持自己~/.irbrc.我只是想确保它在运行时不会影响irb(特别是我通常使用的rbenv安装的Ruby中的irb),并且未来的OS X升级不会改变irb行为.
根据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,这是我的问题的起源.
| 归档时间: |
|
| 查看次数: |
526 次 |
| 最近记录: |