MongoDB 最新版のインストール(ソースコードを使用)(Ubuntu 上)
https://github.com/mongodb/mongo/blob/master/docs/building.md
前準備
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now
ビルドの要件
MongoDB のソースコードのビルドには次が必要である。
- C++20 に対応した C++ コンパイラ(GCC 14.2 以降,または Clang 19.1 以降)
- Python 3(公式のビルド手順では Python 3.13 で検証されている)
- libcurl の開発用ファイル,lzma の開発用ファイル
- 空きディスク容量 約 13GB(
mongod,mongos,シェルの各バイナリのビルドに必要)
ビルドには長い時間がかかる。動作するバイナリを入手するだけであれば,MongoDB 社が配布するビルド済みバイナリ(apt パッケージ等)を用いる方法がある。
C/C++ コンパイラと Make とビルドツールのインストール
ソフトウェアをソースコードからビルドするには、C/C++コンパイラ (通常はGCC) や make ユーティリティといった開発ツールが重要である。Ubuntuでは、これらのツールは build-essential パッケージにまとめられている。インストールするには,端末で,次のコマンドを実行する。
sudo apt -y install build-essential libtool texinfo dpkg-dev pkg-config
libtool, texinfo, dpkg-dev, pkg-config は、より複雑なビルドやパッケージ管理の際に役立つ開発関連ツールである。
Ubuntu 24.04 の build-essential が導入する GCC は 13 であり,C++20 対応の点で公式に検証されたバージョン(GCC 14.2 以降)より古い。GCC 14 を導入し,ビルドで使用するコンパイラを切り替えるには,端末で,次のコマンドを実行する。
sudo apt -y install gcc-14 g++-14
export CC=/usr/bin/gcc-14
export CXX=/usr/bin/g++-14
Python3 開発用ファイル,pip, setuptools, venv のインストール(Ubuntu 上)
Python のインストールは行わない(Ubuntu のシステム Python を用いる.)
Ubuntu のシステム Python を用いるとき, python, pip は,次のコマンドで起動できる.
- python3 (Ubuntu のシステム Python)
- sudo pip3 (pip 3)
Ubuntu での Python 開発環境(JupyterLab, spyder, nteract)のインストール: 別ページ »で説明
Python3 開発用ファイル,pip, setuptools, venv のインストール
端末で,次のコマンドを実行する.
# パッケージリストの情報を更新
sudo apt update
sudo apt -y install python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential
MongoDB のインストール(ソースコードを使用)(Ubuntu 上)
MongoDB のビルドのためのソフトウエアのインストール
libcurl,lzma,OpenSSL の開発用ファイルと,ソースコードの取得に用いる git をインストールする。端末で,次のコマンドを実行する。
sudo apt -y install git libcurl4-openssl-dev liblzma-dev libssl-dev python3-dev
ソースコードのダウンロードとビルド
- MongoDB のソースコードのダウンロード
cd /usr/local sudo rm -rf mongo sudo git clone --recursive https://github.com/mongodb/mongo sudo chown -R $USER mongo - ビルドツール Bazel のインストール
MongoDB のビルドシステムは Bazel である(かつて用いられていた SCons は使用しない)。ソースコードに同梱されているスクリプトで Bazel を導入する。
cd /usr/local/mongo python3 buildscripts/install_bazel.py export PATH=~/.local/bin:$PATH - ソースコードからのビルド
終了までしばらく待つ.
--disable_warnings_as_errors=Trueは,コンパイラの警告でビルドが停止することを避けるためのオプションである。cd /usr/local/mongo bazel build install-mongod --disable_warnings_as_errors=Trueサーバ(
mongod),mongos,シェルを含む一式をビルドするときは,次のコマンドを実行する。cd /usr/local/mongo bazel build install-devcore --disable_warnings_as_errors=True - 終了の確認
エラーメッセージが出ていないこと.ビルドされたバイナリは /usr/local/mongo/bazel-bin/install/bin に配置される。バージョンを表示して確認する。
/usr/local/mongo/bazel-bin/install/bin/mongod --version
MongoDB の起動チェックと動作確認
- mongod の起動チェック
データベース用のディレクトリを作成し,
mongodを起動する。エラーメッセージが出ていないこと.waiting for connections on port 27017と表示されれば接続を受け付ける状態である。sudo mkdir -p /var/mongodb sudo chown -R $USER /var/mongodb sudo chmod 775 /var/mongodb /usr/local/mongo/bazel-bin/install/bin/mongod --dbpath /var/mongodb
- テスト実行
mongodを起動したままにして,別の端末を開き,次のコマンドを実行する。MongoDB Shell(mongosh)は MongoDB 社の apt リポジトリから入手する。sudo apt -y install gnupg curl curl -fsSL https://pgp.mongodb.com/server-8.0.asc | \ sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list # パッケージリストの情報を更新 sudo apt update sudo apt -y install mongodb-mongoshmongoshで接続し,データの登録と検索を行う。mongosh db.test.insertOne( { a: 1 } ) db.test.find() exitmongodを終了するときは,mongodを実行している端末で Ctrl+C を押す。