少し時間とられたのでメモです.
インストール
インストールはすんなりといけるはず.package.accept_keywords
の変更をする必要があるかも.
sudo emerge elasticsearch
systemd.service テンプレートの場所
emergeでインストールするとopenrc用のinitスクリプトは自動で配置されるがsystemdのserviceファイルは
自分で配置する必要がある.
ただ,サンプルはemerge時に配置されるようで
/usr/lib/systemd/system/elasticsearch.service
に転がっているので
/etc/systemd/system/
以下にコピーすると良い.
ディレクトリの所有者の変更
openrcのinitスクリプトには,Elasticsearchがログの出力などに使用するディレクトリの権限やパーミッションを確認する処理が書かれているが,systemdのテンプレートにはそのような記述がないのであらかじめ自分で所有者とグループを変更する必要がある
chown elasticsearch:elasticsearch /var/log/elasticsearch
chown elasticsearch:elasticsearch /var/lib/elasticsearch
chown elasticsearch:elasticsearch /run/elasticsearch
ここは記憶を頼りに書いているのでもしかしたら他にも所有者を変更する必要のあるディレクトリがあるかもしれない.
elasticsearch.service ファイルの修正
インストール時に配置されるserviceファイルが古いのか,default.path.home
なんぞ知らんと怒られる.
ExecStart
を設定している箇所のdefault.path.name
に関する行を丸々削除すると問題なく起動するようになる.
自動で起動するように設定
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
余談
そもそもこれぐらいの変更量ならsystemd USEフラグを立てている人のためのportageのPull Request書いた方がいいのだろうけど詳しいやり方知らないのと面倒臭いので保留中.