OSX MavericksにElasticsearch 1.1.0をインストールしようとしていますが、開始しようとすると次のエラーが発生しました。
:> ./elasticsearch
Exception in thread "main" Java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.Version
at org.elasticsearch.bootstrap.Bootstrap.buildErrorMessage(Bootstrap.Java:252)
at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.Java:236)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.Java:32)
また、-v argを使用して同じコマンドを実行すると、このエラーが発生しました。
:> ./elasticsearch -v
Exception in thread "main" Java.lang.NoSuchFieldError: LUCENE_36
at org.elasticsearch.Version.<clinit>(Version.Java:42)
私の環境は次のとおりです。
Javaバージョン
>: Java -version
Java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)
インストールパス(elasticsearchダウンロードページから.tar.gzアーカイブをダウンロードし、ここで抽出):
/usr/local/elasticsearch-1.1.0
ENV変数:
Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
CLASSPATH=/usr/local/elasticsearch-1.1.0/lib/*.jar:/usr/local/elasticsearch-1.1.0/lib/sigar/*.jar
私は多くの変更を試みたので、私は最終的にそれを動作させますが、残念ながらどうすればよいかわかりません:)しかし、ここに私が行った変更のリストがあります。
jdkとjreを削除し、クリーンな環境に再インストールしました。 http://docs.Oracle.com/javase/8/docs/technotes/guides/install/mac_jdk.html#A1096855
すべてのキャッシュディレクトリを削除しました。これが現在動作しているための「原因」になると思います
〜/ Library/Caches
/ Library/Caches
cLASSPATH環境変数を削除しました。
ES_PATHおよびES_HOME env変数も設定されていませんが、これはそれほど重要ではないと思います。
注:brewを使用してインストールしている場合でも機能するようになりました。
ありがとう。
brew の使用を検討する必要があります。これは、依存関係、バージョン管理などを処理する素晴らしいツールです。
Brewを使用してElasticsearchをインストールするには、単純に:
brew update
brew install elasticsearch
ブーム!できた.
その後、Elasticsearchの指示に従います。
Launchdでログイン時にElasticsearchを起動するには:
ln -sfv /usr/local/opt/elasticsearch/*.plist ~/Library/LaunchAgents
次に、Elasticsearchを今すぐロードします。
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.elasticsearch.plist
または、launchctlが必要ない/必要ない場合は、次を実行するだけです。
elasticsearch
Macに実際に「インストール」するための非常に良い指示はないので:
Java_HOME
環境変数を設定します。bin/elasticsearch
を実行します。Javaをダウンロード
同じマシンでコードを作成しない場合にのみ、JREが必要です。
最新のJDKを入手していると仮定しますが、これは現在JDK 8です(お使いのマシンにインストールされているようです)。
Elasticsearchをダウンロードして抽出します そしてそれを何らかのディレクトリに抽出します。
mkdir -p ~/dev/elasticsearch
オプションで、ダウンロードしたファイルをそこに移動します。
mv Downloads/elasticsearch* ~/dev/elasticsearch
ダウンロードしたファイルを解凍します。
cd ~/dev/elasticsearch
(手順2で移動した場合)
Zipの場合、unzip elasticsearch-1.1.0.Zip
(または、cd
をディレクトリに入れたくない場合は、unzip elasticsearch-1.1.0.Zip -d ~/dev/elasticsearch
を実行します)
Tarの場合は、tar -xvf elasticsearch-1.1.0.tar.gz
(または、cd
をディレクトリに入れたくない場合は、tar -xvf elasticsearch-1.1.0.tar.gz -C ~/dev/elasticsearch
を実行します)
ダウンロードしたファイルを削除して、クリーンアップ(必要な場合):
rm elasticsearch-1.1.0.*
Bashプロファイル設定の.bash_profile
ファイルを開きます。
vi ~/.bash_profile
ファイルで、環境変数をエクスポートします
export ES_HOME=~/dev/elasticsearch/elasticsearch-1.1.0
export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
export PATH=$ES_HOME/bin:$Java_HOME/bin:$PATH
ターミナルを閉じて再度開きますまたは
source ~/.bash_profile
を実行して環境変数を更新します
Elasticsearchを実行します。
elasticsearch
$ES_HOME/bin
をPATH
に追加します。次に、ES_PATH
(cd $ES_PATH
、次にbin/elasticsearch
)に移動するか、$ES_PATH/bin/elasticsearch
を実行します。注:非常に適切な理由がない限り、CLASSPATH
をセットアップしないでください。スクリプトがそれを行います。
最後の更新でbrewを使用してみてください:
brew update
Cask Javaをインストールします。
brew cask install Java
その後、elasticsearchをインストールできます。
brew install elasticsearch
そして現在、elasticsearchの起動を開始するには次を使用します。
brew services start elasticsearch
または、単に実行することができます:
elasticsearch
ElasticSearchを更新するには、brew upgrade elasticsearch
を実行するだけです
Javaを更新する
brew update
brew cask install Java
Homebrew brew install elasticsearch
でインストールします