Install this version:
emerge -a =app-misc/elasticsearch-9.5.5
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =app-misc/elasticsearch-9.5.5
Or alternatively:
emerge --autounmask-write -a =app-misc/elasticsearch-9.5.5
| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 9.5.5 | 8 | -* ~amd64 | 0 |
# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/elastic.asc
inherit systemd verify-sig
DESCRIPTION="Free and Open, Distributed, RESTful Search Engine"
HOMEPAGE="https://www.elastic.co/elasticsearch/"
MY_URI="https://artifacts.elastic.co/downloads/${PN}"
SRC_URI="
${MY_URI}/${P}-linux-x86_64.tar.gz
verify-sig? ( ${MY_URI}/${P}-linux-x86_64.tar.gz.asc )
"
LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD BSD-2 Boost-1.0 CC0-1.0
Elastic-2.0 EPL-2.0 GPL-2-with-classpath-exception GPL-3+
gcc-runtime-library-exception-3.1 icu ISSL MIT MPL-1.1 MPL-2.0 public-domain
ZLIB"
SLOT="0"
KEYWORDS="-* ~amd64"
# JDK rather than JRE, bug #950962
RDEPEND="
acct-group/elasticsearch
acct-user/elasticsearch
dev-java/java-config:2
virtual/jdk:21
virtual/zlib
"
BDEPEND="
acct-group/elasticsearch
acct-user/elasticsearch
verify-sig? ( sec-keys/openpgp-keys-elastic )
"
QA_PREBUILT="
usr/share/${PN}/lib/platform/linux-x64/*
usr/share/${PN}/lib/tools/server-launcher/server-launcher
usr/share/${PN}/modules/x-pack-ml/platform/linux-x86_64/*
"
PATCHES=( "${FILESDIR}"/${P}-java-home.patch )
src_prepare() {
default
rm -r jdk logs plugins || die
sed -i "s|^#path.logs: .*|path.logs: ${EPREFIX}/var/log/${PN}|" \
config/elasticsearch.yml || die
sed -i \
"s|ES_PATH_CONF=\"\$ES_HOME\"/config|ES_PATH_CONF=\"${EPREFIX}/etc/${PN}\"|" \
bin/elasticsearch-env || die
}
src_install() {
diropts -g ${PN} -m 2750
insopts -g ${PN} -m 0660
insinto /etc/${PN}
doins -r config/.
keepdir /etc/${PN}/jvm.options.d
rm -r config || die
diropts -m 0755
insopts -m 0644
insinto /usr/share/${PN}
doins -r .
exeinto /usr/share/${PN}/bin
doexe "${FILESDIR}"/{elasticsearch-keystore-prepare,systemd-entrypoint}
fperms -R +x \
/usr/share/${PN}/bin \
/usr/share/${PN}/modules/x-pack-ml/platform/linux-x86_64/bin
fperms +x /usr/share/${PN}/lib/tools/server-launcher/server-launcher
insinto /usr/lib/sysctl.d
newins "${FILESDIR}"/${PN}.sysctl ${PN}.conf
newconfd "${FILESDIR}"/${PN}.confd ${PN}
newinitd "${FILESDIR}"/${PN}.initd ${PN}
systemd_dounit "${FILESDIR}"/${PN}.service
systemd_install_serviced "${FILESDIR}"/${PN}.service.conf
diropts -o ${PN} -g ${PN} -m 0750
keepdir /var/{lib,log}/${PN}
}
pkg_postinst() {
# The plugin manager needs this directory, and the server refuses to start
# with keepdir's placeholder inside it.
mkdir -p "${EROOT}"/usr/share/${PN}/plugins || die
# Was the service user's home before acct-user/elasticsearch-0-r4, and
# merging does not reset ownership of an existing directory.
chown root:root "${EROOT}"/usr/share/${PN} || die
if [[ -z ${REPLACING_VERSIONS} ]]; then
elog "Security is enabled by default. To generate TLS certificates and a"
elog "password for the elastic user, as upstream's packages do, run:"
elog " emerge --config ${CATEGORY}/${PN}"
elog
elog "systemd: apply vm.max_map_count with 'sysctl --system' or a reboot."
elog
elog "OpenRC: further instances are created by symlinking the init script,"
elog "e.g. /etc/init.d/${PN}.foo, configured from /etc/${PN}/foo."
fi
}
pkg_config() {
local -x ES_PATH_CONF="${EROOT}/etc/${PN}"
local -x CLI_LIBS="modules/x-pack-core,modules/x-pack-security"
CLI_LIBS+=",lib/tools/security-cli"
local cli="${EROOT}/usr/share/${PN}/bin/elasticsearch-cli" ret
CLI_NAME=auto-configure-node "${cli}" <<< ""
ret=$?
if [[ ${ret} -eq 80 ]]; then
einfo "Security is already configured, nothing to do."
return
fi
[[ ${ret} -eq 0 ]] || die "Security auto-configuration failed"
chown root:${PN} \
"${ES_PATH_CONF}"/certs/{http.p12,http_ca.crt,transport.p12} || die
einfo "TLS is enabled for HTTP and transport, and HTTP now listens on all"
einfo "interfaces. See ${ES_PATH_CONF}/elasticsearch.yml."
einfo "The password for the elastic user is:"
CLI_NAME=auto-config-gen-passwd "${cli}" || die
}
acct-group/elasticsearch acct-user/elasticsearch dev-java/java-config:2 virtual/jdk:21 virtual/zlib
acct-group/elasticsearch acct-user/elasticsearch verify-sig? ( sec-keys/openpgp-keys-elastic )