[[breaking_20_plugin_and_packaging_changes]]
=== Plugin and packaging changes

==== Symbolic links and paths

Elasticsearch 2.0 runs with the Java security manager enabled and is much more
restrictive about which paths it is allowed to access.  Various paths can be
configured, e.g. `path.data`, `path.scripts`, `path.repo`.  A configured path
may itself be a symbolic link, but no symlinks under that path will be
followed.

==== Running `bin/elasticsearch`

The command line parameter parsing has been rewritten to deal properly with
spaces in parameters. All config settings can still be specified on the
command line when starting Elasticsearch, but they must appear after the
built-in "static parameters", such as `-d` (to daemonize) and `-p` (the PID path).

For instance:

[source,sh]
-----------
bin/elasticsearch -d -p /tmp/foo.pid --http.cors.enabled=true --http.cors.allow-origin='*'
-----------

For a list of static parameters, run `bin/elasticsearch -h`

==== `-f` removed

The `-f` parameter, which used to indicate that Elasticsearch should be run in
the foreground, was deprecated in 1.0 and removed in 2.0.

==== `V` for version

The `-v` parameter now means `--verbose` for both `bin/plugin` and
`bin/elasticsearch` (although it has no effect on the latter).  To output the
version, use `-V` or `--version` instead.

==== Plugin manager should run as root

The permissions of the `config`, `bin`, and `plugins` directories in the RPM
and deb packages have been made more restrictive.  The plugin manager should
be run as root otherwise it will not be able to install plugins.

==== Support for official plugins

Almost all of the official Elasticsearch plugins have been moved to the main
`elasticsearch` repository. They will be released at the same time as
Elasticsearch and have the same version number as Elasticsearch.

Official plugins can be installed as follows:

[source,sh]
---------------
sudo bin/plugin install analysis-icu
---------------

Community-provided plugins can be installed as before.

==== Plugins require descriptor file

All plugins are now required to have a https://github.com/elastic/elasticsearch/blob/2.0/dev-tools/src/main/resources/plugin-metadata/plugin-descriptor.properties[plugin-descriptor.properties]  file.  If a node has a plugin installed which lacks this file, it will be unable to start.

==== Repository naming structure changes

Elasticsearch 2.0 changes the way the repository URLs are referenced. Instead
of specific repositories for both major and minor versions, the repositories will
use a major version reference only.

The URL for apt packages now uses the following structure;

[source,sh]
---------------
deb http://packages.elastic.co/elasticsearch/2.x/debian stable main
---------------

And for yum packages it is;

[source,sh]
---------------
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
---------------

The <<setup-repositories, repositories>> page details this change.
