Ubuntu ServerのNoe4jの管理について
Neo4jの管理する
前書き
インストールしたものの動いて喜んでいてパッケージの管理の仕方とか分からなくなっていた。以前は勝手に更新されていたNeo4jのバージョンが上がらず5.8で止まっちゃっていた。
PPAにパッケージを追加する
公式はapt-keyを使っているがこのやり方は古いらしい.
wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -
echo 'deb https://debian.neo4j.com stable 5' | sudo tee -a /etc/apt/sources.list.d/neo4j.list
以下のようにするのが今風とのこと。
curl -fsSL https://debian.neo4j.com/neotechnology.gpg.key |sudo gpg --dearmor -o /usr/share/keyrings/neo4j.gpg
echo "deb [signed-by=/usr/share/keyrings/neo4j.gpg] https://debian.neo4j.com stable 5" | sudo tee -a /etc/apt/sources.list.d/neo4j.list > /dev/null
Dockerとかもこんな風にする感じであった。
でバージョンが上がらなくなった原因は以下のような設定になっていたのだと思う。
deb https://debian.neo4j.com stable 5.8
いつ書き換えたのが不明だが、なんか余計なことをしたんだと思う。5系でaptで自動的に更新をかけたい場合は以下のようになっているはず。
deb [signed-by=/usr/share/keyrings/neo4j.gpg] https://debian.neo4j.com stable 5
単にlatestと指定することもできるようです。
deb [signed-by=/usr/share/keyrings/neo4j.gpg] https://debian.neo4j.com stable latest
というのもあるが、Javaのバージョンが一致するかはとか良く分からない。その辺は6が出てから考えよう。
バージョンを指定してインストールする
apt list -a neo4j
でインストール可能なバージョンを調べる。
sudo apt install neo4j=1:5.17.0
でバージョンを=以下に指定する。
Neo4j 5.17.0にしたら動かなくなった
sudo apt-get install neo4j=1:5.8.0
Configuration file '/etc/neo4j/neo4j.conf'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** neo4j.conf (Y/I/N/O/D/Z) [default=N] ? N
で
Configuration file '/etc/neo4j/neo4j.conf'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** neo4j.conf (Y/I/N/O/D/Z) [default=N] ? n
としてたからかな?
躓いたこと
/etc/apt/trusted.gpg.dを消しちゃった
/etc/apt/trusted.gpg.d/を誤って消してしまった。
その後
sudo apt update
すると警告を受けたり、エラーが発生した。
sudo apt-get install --reinstall ubuntu-keyring
で大方の警告は消えたが、自分でインストールしたNeo4jだけが引っ掛かったままになった. 以下のようにして追加する。
wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -
echo 'deb https://debian.neo4j.com stable latest' | sudo tee -a /etc/apt/sources.list.d/neo4j.list
この場合以下のエラーがでます。
W: https://debian.neo4j.com/dists/stable/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
って何なんだよって話です。Ubuntu: apt update を行った時の警告を消すを参考にして以下のようにgpgキーを出力する。
sudo apt-key export D37F5F19 | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/neo4j.gpg
これでエラーが消える。
複数回のパッケージの設定
Neo4jはオフィシャルリポジトリからパッケージが提供されていないので, PPA(Personal Package Archive)を追加します。
curl -fsSL https://debian.neo4j.com/neotechnology.gpg.key |sudo gpg --dearmor -o /usr/share/keyrings/neo4j.gpg
echo "deb [signed-by=/usr/share/keyrings/neo4j.gpg] https://debian.neo4j.com stable 5" | sudo tee -a /etc/apt/sources.list.d/neo4j.list
のように追加します. /etc/apt/sources.list.d/neo4j.listと書いてあり、ここにリポジトリを追加します。
これをいっぱいやっちゃって重複すると
Target Packages (5/binary-all/Packages) is configured multiple times in
というような警告をいっぱい喰らいます。中身を見ると確かにリポジトリが重複して定義されています。
deb https://debian.neo4j.com stable 5
deb https://debian.neo4j.com stable 5.8
deb https://debian.neo4j.com stable 5
deb https://debian.neo4j.com stable 5.8
消してから再度追加でも良いですが、apt-add-repositoryというコマンドがあるのでそれを利用します。
sudo apt-add-repository --remove 'deb https://debian.neo4j.com stable 5'
sudo apt-add-repository --remove 'deb https://debian.neo4j.com stable 5.8'
なお
curl -fsSL https://debian.neo4j.com/neotechnology.gpg.key |sudo gpg --dearmor -o /usr/share/keyrings/neo4j.gpg
echo "deb [signed-by=/usr/share/keyrings/neo4j.gpg] https://debian.neo4j.com stable 5" | sudo tee -a /etc/apt/sources.list.d/neo4j.list
で追加した場合は以下のようになります。
deb [signed-by=/usr/share/keyrings/neo4j.gpg] https://debian.neo4j.com stable 5
Discussion