【问题标题】:brew install elasticsearch on M1 macbook results in "Bad CPU type in executable" error在 M1 macbook 上 brew install elasticsearch 导致“可执行文件中的 CPU 类型错误”错误
【发布时间】:2022-01-24 01:21:40
【问题描述】:

我有一台配备 M1 处理器的全新 Macbook Air

按照官方指南https://www.elastic.co/guide/en/elasticsearch/reference/current/brew.html 我尝试安装elasticsearch 7:

brew tap elastic/tap
brew install elastic/tap/elasticsearch-full

一旦我尝试使用 $ elasticsearch 启动它,我就会收到此错误:

/opt/homebrew/Cellar/elasticsearch-full/7.16.2/libexec/bin/elasticsearch-env: line 83: /opt/homebrew/Cellar/elasticsearch-full/7.16.2/libexec/jdk.app/Contents/Home/bin/java: Bad CPU type in executable

如果我尝试使用brew services start elastic/tap/elasticsearch-full 启动服务,它会失败,并且我会在日志文件/opt/homebrew/var/log/elasticsearch.log 中得到同样的错误

/opt/homebrew/Cellar/elasticsearch-full/7.16.2/libexec/bin/elasticsearch-env: line 83: /opt/homebrew/Cellar/elasticsearch-full/7.16.2/libexec/jdk.app/Contents/Home/bin/java: Bad CPU type in executable

一旦我打开导致问题第 83 行的文件 (elasticsearch-env):

# check the Java version
"$JAVA" "$XSHARE" -cp "$ES_CLASSPATH" org.elasticsearch.tools.java_version_checker.JavaVersionChecker

如果我尝试执行

/opt/homebrew/Cellar/elasticsearch-full/7.16.2/libexec/jdk.app/Contents/Home/bin/java

我得到了错误

 Bad CPU type in executable

因此,在 elasticsearch-full brew 安装期间似乎安装了一个糟糕的 Java 架构(可能不是 M1,而是 x84 或其他什么?)。这是几个小时前购买的全新 Macbook。 Elasticsearch 是我尝试对其进行 brew install 的第一件事(因此没有安装之前的 Java 应用程序)

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: elasticsearch homebrew


    【解决方案1】:

    您也可以通过在 ARM Mac 上安装 Rosetta 2 来解决此问题: softwareupdate --install-rosetta.

    显然brew仍然安装64位版本的elasticsearch。

    【讨论】:

      【解决方案2】:

      好的,问题是我需要单独安装 Java JDK。

      我刚刚安装了Java OSX ARM DMG,然后 ES 开始工作了

      只要$ java -version不给你报错这个错误就不会出现

      【讨论】:

      • 为了改变 Elasticsearch 的内存消耗,我建议检查 blog.eq8.eu/til/… 默认情况下 ES 消耗大量内存
      猜你喜欢
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多