広告

Raspberry Pi (Raspbian) で MongoDB 3 を使いたい件

Raspberry Pi 3 Model B の CPU は 64bit ですが、The Foundation’s official supported operating system の Raspbian は 32bit です。64bit 化する気配も無さそうです。

これを書いている時点で最新の Raspbian では apt-get で mongodb パッケージをインストールできるのですが、バージョンが 2.4 と古いです。というのも、最近の、例えば 3.6 とか 3.4 の MongoDB は 32bit を提供していないとか何とか。

MongoDB – Supported Platforms
https://docs.mongodb.com/manual/installation/

Changed in version 3.4: MongoDB no longer supports 32-bit x86 platforms.

一方で、Spring Boot 2 で MongoDB を使用したい場合、バージョン 2.6 以上を求められます。

Raspbian をインストールした Raspberry Pi で、Spring Boot 2 と MongoDB を組み合わせたアプリケーションを動かせない!ということになりました。

  1. Raspbian ではなく 64bit OS を使えばいいのでは? -> やだ
  2. 自分で MongoDB をソースからビルドすればいいのでは? -> やだ
  3. 誰かが 32bit 向けのビルドをしているのでは? -> 探してみよう

ありました。Raspbian の最新の Stretch 向けです。素晴らしいです。

MongoDB 3.0.14 for Raspbian Stretch
https://andyfelong.com/2017/08/mongodb-3-0-14-for-raspbian-stretch/

必要最低限のバイナリをダウンロードして適当なパスに配置します。

cd /tmp
wget https://andyfelong.com/downloads/mongodb_stretch_3_0_14_core.zip
unzip mongodb_stretch_3_0_14_core.zip
sudo cp core/* /usr/local/bin/

データを置く用のディレクトリを作成します。

sudo mkdir -p /data/db

Systemd 用のファイルを作成してみます。

sudo touch /lib/systemd/system/mongod.service

内容は例えば下記の通りです。真面目にやるなら conf ファイルを作成して、mongodb ユーザーも作成したほうが良さそうです。

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.com/manual/

[Service]
#User=mongodb
#Group=mongodb
#ExecStart=/usr/local/bin/mongod --quiet --config /etc/mongod.conf
ExecStart=/usr/local/bin/mongod

[Install]
WantedBy=multi-user.target

自動起動設定して起動してみます。

sudo systemctl enable mongod
sudo systemctl start mongod

しかし、こんなワークアラウンドを続けるのもどうかと・・・。Raspbian の 64bit が提供されないですかね・・・。

広告

Raspberry Pi

Posted by admin