# Packaging

原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_packaging.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_packaging.html)

译文链接 : [http://www.apache.wiki/display/Elasticsearch/Packaging](http://www.apache.wiki/display/Elasticsearch/Packaging)

贡献者 : [片刻](/display/~jiangzhonglian)

## APT / YUM存储库URL更改

apt和yum软件包的存储库已从 [https://packages.elastic.co](https://packages.elastic.co) 更改为 [https://artifacts.elastic.co](https://artifacts.elastic.co) 。

有关详细信息，请参阅[安装Elasticsearch](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/install-elasticsearch.html)。

## 使用systemd的默认日志记录（自Elasticsearch 2.2.0起）

在以前的Elasticsearch版本中，默认日志配置将标准输出路由到/dev/null ，并将标准错误路由到日志。但是，启动时经常会出现严重错误消息，这些错误消息记录到标准输出，而不是标准错误，并且这些错误消息将丢失到下级。默认值已更改为现在将标准输出路由到日志和标准错误以继承此设置（这些是systemd的默认值）。可以通过编辑elasticsearch.service文件来修改这些设置。

## 更长的启动时间

在Elasticsearch 5.0.0中， `-XX:+AlwaysPreTouch `标志已添加到JVM启动选项中。此选项会触发HotSpot VM初始化期间JVM堆使用的所有内存页，以减少在GC时间内提交内存页的机会。这将增加Elasticsearch的启动时间，并增加Java进程的初始驻留内存使用量。

## JVM选项

Java虚拟机的参数已集中，并移动到新的配置文件jvm.options。这种集中化允许更简单的终端用户管理JVM选项。

此迁移通过环境变量ES_MIN_MEM，ES_MAX_MEM，ES_HEAP_SIZE，ES_HEAP_NEWSIZE，ES_DIRECT_SIZE，ES_USE_IPV4，ES_GC_OPTS，ES_GC_LOG_FILE和JAVA_OPTS删除设置JVM选项的所有先前机制。

如果从tar或zip分发版安装，此文件的默认位置在config/jvm.options中，如果从Debian或RPM软件包安装，则默认位置为/etc/elasticsearch/jvm.options。您可以通过将环境变量ES_JVM_OPTIONS设置为文件的路径来指定备用位置。

## Windows serviceedit的线程堆栈大小

以前在安装Windows服务时，安装脚本将配置线程堆栈大小（这是服务守护程序所必需的）。由于将所有JVM配置移动到[jvm.options](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/setting-system-settings.html#es-java-opts)文件，服务安装脚本不再配置线程堆栈大小。安装Windows服务时，必须配置线程堆栈大小。有关其他详细信息，请参阅[安装文档](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/windows.html#windows-service)。

## /bin/bash现在是必需的

以前，用于启动Elasticsearch和运行插件命令的脚本只需要一个Bourne兼容的shell。从Elasticsearch 5.0.0开始，现在需要bash shell，而/ bin / bash是RPM和Debian软件包的硬相关性。

## 环境设置

以前，Elasticsearch可以通过两种方式通过环境变量进行配置：首先使用占位符语法 ${env.ENV_VAR_NAME}，然后使用相同的语法，而不使用env前缀：${ENV_VAR_NAME}。第一个方法已从Elasticsearch中删除。

此外，以前可以通过JVM系统属性在Elasticsearch中设置任何设置。这已从Elasticsearch中删除。

## 死于致命错误

如果在Elasticsearch实例的生命周期中遇到内存错误或其他致命错误，Elasticsearch的先前版本将不会暂停JVM。因为这种错误使JVM处于可疑状态，所以最好的做法是在发生这种情况时停止JVM。从Elasticsearch 5.x开始，现在就是这样。操作员应考虑配置其Elasticsearch服务，以便在发生这种致命崩溃时自动重新启动它们。