Elasticsearch 2.0 plugin installation INFO
Asked Answered
R

2

5

I started to use Elasticsearch 2.0. I have a plugin for Elasticsearch but cannot install it on new version 2.0. It gives an error:

/Downloads/elasticsearch-2.0.0/bin$ ./plugin install file:///home/fatih/Downloads/myftptest/zemberekplugin.zip
-> Installing from file:/home/fatih/Downloads/myftptest/zemberekplugin.zip... 
Trying file:/home/fatih/Downloads/myftptest/zemberekplugin.zip ... 
Downloading .......DONE 
Verifying file:/home/fatih/Downloads/myftptest/zemberekplugin.zip checksums if available ... 
NOTE: Unable to verify checksum for downloaded plugin (unable to find .sha1 or .md5 file to verify) 
ERROR: Could not find plugin descriptor 'plugin-descriptor.properties' in plugin zip 

How can I fix it?

Refrigerator answered 5/11, 2015 at 7:33 Comment(7)
Can you provide the command-line you're using?Haplology
/Downloads/elasticsearch-2.0.0/bin$ ./plugin install file:///home/fatih/Downloads/myftptest/zemberekplugin.zip -> Installing from file:/home/fatih/Downloads/myftptest/zemberekplugin.zip... Trying file:/home/fatih/Downloads/myftptest/zemberekplugin.zip ... Downloading .......DONE Verifying file:/home/fatih/Downloads/myftptest/zemberekplugin.zip checksums if available ... NOTE: Unable to verify checksum for downloaded plugin (unable to find .sha1 or .md5 file to verify) ERROR: Could not find plugin descriptor 'plugin-descriptor.properties' in plugin zipRefrigerator
The plugin was working perfectly in the version 1.7.2Refrigerator
It would be preferable to update your question with the info, it's more legible.Haplology
updated the questionRefrigerator
Probably that this plugin needs to be released for ES 2.0. Where did you find it?Haplology
I've developed it myself. I was using ./plugin --url file://........ --install stemmer terminal command for elastic 1.7.2 . Now this command is not working for 2.0.Refrigerator
A
6

The way plugins are installed has changed. The correct command as above is now:

sudo bin/plugin install file:/path/to/plugin.zip

https://www.elastic.co/guide/en/elasticsearch/plugins/2.0/installation.html

However plugins now require a 'plugin-descriptor.properties' file to be included in the plugin zip alongside the .jar files

https://www.elastic.co/guide/en/elasticsearch/plugins/2.0/plugin-authors.html

https://github.com/elastic/elasticsearch/blob/master/dev-tools/src/main/resources/plugin-metadata/plugin-descriptor.properties

# Elasticsearch plugin descriptor file
# This file must exist as 'plugin-descriptor.properties' at
# the root directory of all plugins.
#
# A plugin can be 'site', 'jvm', or both.
#
### example site plugin for "foo":
#
# foo.zip <-- zip file for the plugin, with this structure:
#   _site/ <-- the contents that will be served
#   plugin-descriptor.properties <-- example contents below:
#
# site=true
# description=My cool plugin
# version=1.0
#
### example jvm plugin for "foo"
#
# foo.zip <-- zip file for the plugin, with this structure:
#   <arbitrary name1>.jar <-- classes, resources, dependencies
#   <arbitrary nameN>.jar <-- any number of jars
#   plugin-descriptor.properties <-- example contents below:
#
# jvm=true
# classname=foo.bar.BazPlugin
# description=My cool plugin
# version=2.0.0-rc1
# elasticsearch.version=2.0
# java.version=1.7
#
### mandatory elements for all plugins:
#
# 'description': simple summary of the plugin
description=${project.description}
#
# 'version': plugin's version
version=${project.version}
#
# 'name': the plugin name
name=${elasticsearch.plugin.name}

### mandatory elements for site plugins:
#
# 'site': set to true to indicate contents of the _site/
#  directory in the root of the plugin should be served.
site=${elasticsearch.plugin.site}
#
### mandatory elements for jvm plugins :
#
# 'jvm': true if the 'classname' class should be loaded
#  from jar files in the root directory of the plugin.
#  Note that only jar files in the root directory are
#  added to the classpath for the plugin! If you need
#  other resources, package them into a resources jar.
jvm=${elasticsearch.plugin.jvm}
#
# 'classname': the name of the class to load, fully-qualified.
classname=${elasticsearch.plugin.classname}
#
# 'java.version' version of java the code is built against
# use the system property java.specification.version
# version string must be a sequence of nonnegative decimal integers
# separated by "."'s and may have leading zeros
java.version=${maven.compiler.target}
#
# 'elasticsearch.version' version of elasticsearch compiled against
# You will have to release a new version of the plugin for each new
# elasticsearch release. This version is checked when the plugin
# is loaded so Elasticsearch will refuse to start in the presence of
# plugins with the incorrect elasticsearch.version.
elasticsearch.version=${elasticsearch.version}
#
### deprecated elements for jvm plugins :
#
# 'isolated': true if the plugin should have its own classloader.
# passing false is deprecated, and only intended to support plugins 
# that have hard dependencies against each other. If this is
# not specified, then the plugin is isolated by default.
isolated=${elasticsearch.plugin.isolated}
#
Albina answered 12/11, 2015 at 9:37 Comment(1)
I added this file manually to the downloaded zip for marvel because for some reason it was missing it but for some reason during installation it still wont find the file. do you have any recommendations for this?Besmear
S
3

I am only completing @Ianky393 answer with an image, so it can be much easier to be understood.

For the plugin zip you need, it is usually in the src folder inside the downloaded folder. If at first there is site folder instead of _site, rename it to _site first. Make sure inside of the zip looks like this.

enter image description here

Samala answered 2/12, 2015 at 19:57 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.