brew安装elasticsearch失败



我一直在尝试使用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之前的临时解决方案。

  1. 禁用Homebrew自动更新,方法是在您的brew命令前加上如下前缀:HOMEBREW_NO_AUTO_UPDATE=1 brew install elasticsearch,或者在Bash.profile中设置一个环境变量为export HOMEBREW_NO_AUTO_UPDATE=1。(我使用的是后者。(
  2. 如果您在/usr/local/Homebrew下安装了Homebrew作为GIT存储库,请转到该目录查看GIT日志。您应该会看到最近对stable分支的合并为super.rb引入了新代码:

    2ae2680 (tag: 2.2.12, stable) Merge pull request #7301 from Bo98/cmake-sdkroot

  3. 您希望在/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
  1. 当您准备好撤消步骤#3中的更改时,运行brew update将签出stable分支(处于任何状态(

最新更新