brew安装包是提示以下错误:

Traceback (most recent call last):
	11: from /usr/local/Homebrew/Library/Homebrew/brew.rb:23:in `<main>'
	10: from /usr/local/Homebrew/Library/Homebrew/brew.rb:23:in `require_relative'
	 9: from /usr/local/Homebrew/Library/Homebrew/global.rb:37:in `<top (required)>'
	 8: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 7: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 6: from /usr/local/Homebrew/Library/Homebrew/os.rb:3:in `<top (required)>'
	 5: from /usr/local/Homebrew/Library/Homebrew/os.rb:21:in `<module:OS>'
	 4: from /usr/local/Homebrew/Library/Homebrew/os/mac.rb:58:in `prerelease?'
	 3: from /usr/local/Homebrew/Library/Homebrew/os/mac.rb:24:in `version'
	 2: from /usr/local/Homebrew/Library/Homebrew/os/mac.rb:24:in `new'
	 1: from /usr/local/Homebrew/Library/Homebrew/os/mac/version.rb:26:in `initialize'
/usr/local/Homebrew/Library/Homebrew/version.rb:368:in `initialize': Version value must be a string; got a NilClass () (TypeError)

原因是本地安装的mac系统为测试版 11.0 Beta版,brew 只支持正式发行版。

如何解决呢:
从错误堆栈信息中可以看到是usr/local/Homebrew/Library/Homebrew/version.rb:368这行代码报错,我们可以通过修改这里的代码,写死版本号即可。

def initialize(val)
    # raise TypeError, "Version value must be a string; got a #{val.class} (#{val})" unless val.respond_t    o?(:to_str)
    #@version = val.to_str
    @version = '10.15.6' 
end

将报错信息和原来的版本号注释掉,增加@version = '10.15.6'。此时再运行就不再报错了。

注意: 如果brew更新后,此处代码将会被覆盖。