ubuntu上的弹性企业/应用程序搜索安装问题



我正在运行一个流浪盒子,它在vm中运行ubuntu(使用Laravel Homestead盒子(

我正在尝试安装Elastic应用程序搜索产品。

第一个要求是安装Elastic search,我已经做过多次了。我完成了以下步骤:https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install elasticsearch

我使用的是systemd配置:

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service

我正在运行curl localhost:9200,一切正常。

接下来我尝试安装弹性应用程序搜索。https://www.elastic.co/guide/en/app-search/current/installation.html#installation-自我管理。它没有debian系统的说明。但它确实有一个.deb安装文件。我下载了该文件,并将其放在我的项目路线中。

我在文件上运行了dpkg-I,它似乎已经安装好了。当我运行命令检查文件位置时,它显示如下:

dpkg -L enterprise-search
/.
/etc
/etc/init.d
/etc/init.d/enterprise-search
/var
/var/log
/var/log/enterprise-search
/usr
/usr/share
/usr/share/enterprise-search
/usr/share/enterprise-search/README.md
/usr/share/enterprise-search/bin
/usr/share/enterprise-search/bin/vendor
/usr/share/enterprise-search/bin/vendor/filebeat
/usr/share/enterprise-search/bin/vendor/filebeat/filebeat-linux-x86_64
/usr/share/enterprise-search/bin/enterprise-search
/usr/share/enterprise-search/filebeat
/usr/share/enterprise-search/filebeat/ecs-template.json
/usr/share/enterprise-search/filebeat/filebeat-ecs.yml
/usr/share/enterprise-search/lib
/usr/share/enterprise-search/lib/require_java_version.sh
/usr/share/enterprise-search/lib/enterprise-search.war
/usr/share/enterprise-search/jetty
/usr/share/enterprise-search/jetty/webserver-ssl.xml
/usr/share/enterprise-search/jetty/webserver-ssl-with-redirect.xml
/usr/share/enterprise-search/jetty/webserver.xml
/usr/share/enterprise-search/LICENSE
/usr/share/enterprise-search/config
/usr/share/enterprise-search/config/env.sh
/usr/share/enterprise-search/config/enterprise-search.yml
/usr/share/enterprise-search/NOTICE.txt
/usr/share/doc
/usr/share/doc/enterprise-search
/usr/share/doc/enterprise-search/changelog.gz
/usr/lib
/usr/lib/systemd
/usr/lib/systemd/system
/usr/lib/systemd/system/enterprise-search.service

我真的不确定这是不是正确的位置?我想让它和我的弹性搜索安装在同一个地方,但实际上我不确定。我完成了安装过程的所有后续步骤,并运行:./usr/share/enterprisesearch/bin/elasticsearch

但这给了我一个错误:

Could not find java in PATH

我对此感到非常困惑,因为主要的弹性搜索安装可以工作,而且还需要java?此外,我希望它也能在systemd自动启用的情况下运行,并且我希望它能在企业搜索启动/停止时使用。不知道该怎么处理。

看起来它是Debian包,所以它可以安装在ubuntu上,但有些地方可能会有所不同。我想说你可以:

  1. 只需切换到使用debian VM即可(在这里,您可以获得流浪者:https://app.vagrantup.com/debian/boxes/stretch64(
  2. 调试。据我所见,这个包在运行之前先运行elasticsearch-env。Java是这样寻找的:
if [ ! -z "$JAVA_HOME" ]; then
JAVA="$JAVA_HOME/bin/java"
JAVA_TYPE="JAVA_HOME"
else
if [ "$(uname -s)" = "Darwin" ]; then
# macOS has a different structure
JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
else
JAVA="$ES_HOME/jdk/bin/java"
fi
JAVA_TYPE="bundled jdk"
fi
if [ ! -x "$JAVA" ]; then
echo "could not find java in $JAVA_TYPE at $JAVA" >&2
exit 1
fi

因此,我建议在启动脚本中(或在运行二进制文件之前(设置JAVA_HOME,看看这是否有帮助。

我通过添加另一个版本的Java解决了这个问题,Elastichsearch有一个内置的Java安装,而不是单独的,所以应用程序搜索安装无法达到那个版本。感觉很脏,但它工作了!

最新更新