关于 OS X 上用 brew 安装的 elasticsearch 的 plugin 指令

2014-07-06 19:21:51 +08:00
 Livid
这篇文章的上一部分在这里:

/t/121233

但是这样子装好之后,虽然 elasticsearch 可以正常启动,但是 elasticsearch 的 plugin 指令在使用时还是会有同样的错误。

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/elasticsearch/plugins/PluginManager : Unsupported major.minor version 51.0

所以你还需要在 ~/.profile 里加入:

export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"

但是即使这样,你在启动 plugin 时会看到另外一个错误:

/usr/local/bin/plugin: line 49: /Library/Internet: No such file or directory
/usr/local/bin/plugin: line 49: exec: /Library/Internet: cannot execute: No such file or directory

这是因为 JAVA_HOME 中包含了一个空格,而 plugin 的启动脚本没有能够很好地处理这个情况。所以你接下来需要做的是打开 /usr/local/bin/plugin 这个文件,然后把 27 行:

JAVA=$JAVA_HOME/bin/java

修改为:

JAVA="$JAVA_HOME/bin/java"

然后第 49 行:

exec $JAVA $JAVA_OPTS -Xmx64m -Xms16m -Delasticsearch -Des.path.home="$ES_ HOME" $properties -cp "$ES_CLASSPATH/*" org.elasticsearch.plugins.PluginMana ger $args

修改为:

exec "$JAVA" $JAVA_OPTS -Xmx64m -Xms16m -Delasticsearch -Des.path.home="$ES_ HOME" $properties -cp "$ES_CLASSPATH/*" org.elasticsearch.plugins.PluginMana ger $args

然后保存退出就可以启动 plugin 指令了。
5883 次点击
所在节点    Elasticsearch
4 条回复
dorentus
2014-07-06 19:34:36 +08:00
如果是因为引号的问题的话,那第一句 export JAVA_HOME 那里,改成下面这样是不是就 OK 了?

export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Livid
2014-07-06 19:35:27 +08:00
@dorentus 我一开始也以为是需要这样改。

但后来发现问题是在 plugin 本身的启动脚本。
lijsh
2014-07-06 19:59:05 +08:00
奇怪,我之前只需要修改环境变量就能跑起来了
stevenyou
2014-07-07 07:32:03 +08:00
我还是喜欢在docker 里跑

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/121236

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX