我一直在尝试使用brew安装ElasticSearch,但是,我所有的尝试都失败了,并导致错误
Error: An exception occurred within a child process:
NoMethodError: undefined method `path' for nil:NilClass
Did you mean? paths
是对我的回击。有人越过这个吗?brew安装-调试输出为:
➜ ~ brew install --debug elasticsearch
Updating Homebrew...
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/elasticsearch.rb
/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/bin/java -version
/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/bin/java -version
/usr/local/Homebrew/Library/Homebrew/build.rb (Formulary::FromPathLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/elasticsearch.rb
Error: An exception occurred within a child process:
NoMethodError: undefined method `path' for nil:NilClass
Did you mean? paths
/usr/local/Homebrew/Library/Homebrew/extend/os/mac/extend/ENV/super.rb:112:in `setup_build_environment'
/usr/local/Homebrew/Library/Homebrew/build.rb:88:in `install'
/usr/local/Homebrew/Library/Homebrew/build.rb:196:in `<main>'
谢谢!
最终是由于xcode已经过时。更新xcode修复了此问题。
弹性网站上使用Homebrew在macOS上安装Elasticsearch的说明建议使用不同的公式,即:
brew tap elastic/tap
然后
brew install elastic/tap/elasticsearch-full
或
brew install elastic/tap/elasticsearch-oss
这取决于你想要的是非免费(但仍然是0.00美元(还是OSS版本。
我自己并没有尝试过这个公式,但我刚刚在macOS Catalina上成功地使用了brew install openjdk@11
获得了所需的Java版本,然后我手动安装了logstash-7.6.2的tarfile,确保在运行logstash程序之前执行export JAVA_HOME=/usr/local/opt/openjdk@11
;我认为同样的方法也适用于弹性搜索,尽管上面的官方公式可能更简单。
以下是在修复Homebrew之前的临时解决方案。
- 禁用Homebrew自动更新,方法是在您的brew命令前加上如下前缀:
HOMEBREW_NO_AUTO_UPDATE=1 brew install elasticsearch
,或者在Bash.profile中设置一个环境变量为export HOMEBREW_NO_AUTO_UPDATE=1
。(我使用的是后者。( - 如果您在/usr/local/Homebrew下安装了Homebrew作为GIT存储库,请转到该目录查看GIT日志。您应该会看到最近对
stable
分支的合并为super.rb引入了新代码:2ae2680 (tag: 2.2.12, stable) Merge pull request #7301 from Bo98/cmake-sdkroot
-
您希望在/usr/local/Homebrew git repo中签出以前的提交。这对我起到了作用:
/usr/local/Homebrew>git checkout stable^
HEAD现在位于6e3a293…来自bayandin/patch-1的合并拉取请求#7300
更正!"稳定"分支最近转移到
2.2.13
。提交历史记录仍然包含问题提交:2ae2680 (tag: 2.2.12) Merge pull request #7301 from Bo98/cmake-sdkroot
。
改为在标记之前签出提交。
/usr/local/Homebrew> git checkout -q 2.2.12^
/usr/local/Homebrew> git branch -vv --no-color
* (HEAD detached at 6e3a293) 6e3a293 Merge pull request #7300 from bayandin/patch-1
master c9ffde6 [origin/master] Merge pull request #7351 from Bo98/branch-encode
stable 3d9cf83 Merge pull request #7346 from Bo98/pr-pull
- 当您准备好撤消步骤#3中的更改时,运行
brew update
将签出stable
分支(处于任何状态(