Homebrew Error: Cask 'java' is unreadable: undefined method `undent' for #

今天在执行brew doctor的时候出现如下错误:

1
2
$ brew doctor
Error: Cask 'java' is unreadable: undefined method `undent' for #<String:0x00007f86a64ab968>

原因为某次更新之后,配置文件增加了某些不必要的字段。更要命的是,不能执行卸载命令来删除出问题的安装包。解决方法为删除这个字段。

方案如下:

1
$ find "$(brew --prefix)/Caskroom/"java'/.metadata' -type f -name '*.rb' | xargs grep 'EOS.undent' --files-with-matches | xargs sed -i '' 's/EOS.undent/EOS/'

或者下面(我的是java)

1
$ find "$(brew --prefix)/Caskroom/"java7'/.metadata' -type f -name '*.rb' | xargs grep 'EOS.undent' --files-with-matches | xargs sed -i '' 's/EOS.undent/EOS/'

操作完之后在更新下brew

下面的操作是基于java(因为我的是java)

1
$ brew uninstall java 
1
$ brew cleanup
1
$ brew update
1
$ brew upgrade

参考文章地址: https://www.mobibrw.com/2020/26381