J'ai pu reproduire facilement le problème. J'ai essayé de supprimer simplement elasticsearch.in.sh script du répertoire ES_HOME/bin, puis j'ai essayé d'exécuter ./elasticsearch à partir du répertoire ES_HOME/bin. J'ai obtenu,
You must set the ES_CLASSPATH var
Le fichier elasticsearch.in.sh contient la configuration de ce chemin de classe. Veuillez donc vous assurer que vous avez elasticsearch.in.sh dans le répertoire ES_HOME/bin.
Selon ./elasticsearch script, le fichier elasticsearch.in.sh est recherché à tous les endroits suivants. Donc, le placer dans l'un des endroits suivants serait parfait.
/usr/share/elasticsearch/elasticsearch.in.sh
/usr/local/share/elasticsearch/elasticsearch.in.sh
/opt/elasticsearch/elasticsearch.in.sh
~/.elasticsearch.in.sh
"$ES_HOME/bin/elasticsearch.in.sh"
Veuillez noter que ES_HOME est le répertoire d'installation de base d'elasticsearch.
Contenu du fichier elasticsearch.in.sh pour votre référence.
#!/bin/bash
# check in case a user was using this mechanism
if [ "x$ES_CLASSPATH" != "x" ]; then
cat >&2 << EOF
Error: Don't modify the classpath with ES_CLASSPATH. Best is to add
additional elements via the plugin mechanism, or if code must really be
added to the main classpath, add jars to lib/ (unsupported).
EOF
exit 1
fi
ES_CLASSPATH="$ES_HOME/lib/elasticsearch-5.0.0.jar:$ES_HOME/lib/*"
Notez qu'il définit ES_CLASSPATH.