残念ながら、MongoDBの公式Ubuntuパッケージはまだ2.6のままですが、これは現時点では古くからあります(このバグは、鮮やか、ワイリー、ゼニアルでは検出されませんでした)。
MongoDBはまだ16.04(Xenial)のパッケージをリリースしていません。14.04(Trusty)パッケージを使用して、MongoDB 3.2+を16.04にインストールする方法を教えてください。
残念ながら、MongoDBの公式Ubuntuパッケージはまだ2.6のままですが、これは現時点では古くからあります(このバグは、鮮やか、ワイリー、ゼニアルでは検出されませんでした)。
MongoDBはまだ16.04(Xenial)のパッケージをリリースしていません。14.04(Trusty)パッケージを使用して、MongoDB 3.2+を16.04にインストールする方法を教えてください。
回答:
それは少しハックですが、はい、これは可能です。サービスを実際に開始するために必要な文書化されていない手順があります。(大胆に)アップスタートジョブの変換を手動で実行したくない場合は、まずUbuntu mongodb
パッケージをインストールしてから削除し、使用可能なサービスを利用できるようにする必要があります。MongoDBパッケージを直接インストールしても、新しい16.04で機能するサービスは提供されません。
アップデート-2016年7月:これに対する公式の修正(パッケージへの16.04のサポートの追加)は、SERVER-23043の一部として3.3 devブランチで完了し、3.2の一部として3.2シリーズのバックポートとしてリリースされました。 7。したがって、3.2.7以降を使用している場合は、これを行う必要はなく、公式のMongoDBパッケージのインストールがそのまま機能します。
いずれの場合も、追加/削除を行った後、14.04 の通常の手順に従ってください。
# install the Ubuntu package (to get the service set up correctly)
sudo apt-get install mongodb
# Now remove it and continue with the MongoDB instructions
sudo apt-get remove mongodb
sudo apt-get autoremove
# import key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
# add trusty repos
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
# update apt
sudo apt-get update
# install the MongoDB package
sudo apt-get install -y mongodb-org
インストールは成功し、Ubuntuパッケージのおかげでサービスに必要なすべての要素が揃っていますが、サービスを開始しようとすると最初は失敗します。
$ sudo service mongodb start
Failed to start mongodb.service: Unit mongodb.service is masked.
これを修正することはそれほど難しくありません:
$ sudo systemctl unmask mongodb
Removed symlink /etc/systemd/system/mongodb.service.
これで、サービスを有効化/開始し、そのステータスなどを取得できます。
$ sudo service mongodb enable
$ sudo service mongodb start
$ sudo service mongodb status
● mongodb.service - LSB: An object/document-oriented database
Loaded: loaded (/etc/init.d/mongodb; bad; vendor preset: enabled)
Active: active (running) since Thu 2016-04-14 16:40:35 IST; 7s ago
Docs: man:systemd-sysv-generator(8)
Process: 2849 ExecStart=/etc/init.d/mongodb start (code=exited, status=0/SUCCESS)
Main PID: 1593 (code=exited, status=0/SUCCESS)
Tasks: 13 (limit: 512)
Memory: 51.9M
CPU: 100ms
CGroup: /system.slice/mongodb.service
└─2861 /usr/bin/mongod --config /etc/mongodb.conf
成功-アクティブな構成ファイルへの良いポインタが得られます(これは古いkey=value
形式です。新しい推奨YAML形式の例については、こちらを参照してください)。
注:実際には二つの設定ファイルがあります/etc/mongod.conf
し、/etc/mongodb.conf
我々がインストールされた2つのパッケージ間のわずかな違いに感謝。デフォルトでは、古い形式のいずれかに現在アクティブなサービスのポイントは/etc/mongodb.conf
-あなたはコピー/移動することで切り替えることができますmongod.conf
へのmongodb.conf
あなたであればそう願いを、または単にファイルを直接編集します。
開始したら、テストするには、mongo
シェルを使用してデータベースに接続します。
$ mongo
MongoDB shell version: 3.2.5
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
Server has startup warnings:
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten]
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten]
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten]
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten]
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten]
THP警告を取り除きたい場合は、この回答を確認してください。
sudo service mongodb start
returnが返されますFailed to start mongodb.service: Unit mongodb.service not found
。
sudo service mongodb start
。何も返しません。sudo service mongodb status
で失敗したメッセージを返しますstatus=2
。これを修正するために、新しく作成したサービスファイルのパスをからに変更し/etc/mongodb.conf
ました/etc/mongod.conf
。元の答えに基づいて、mongodbをシステムの起動時にどのように起動しますか?
sudo systemctl enable mongodb
。参照: digitalocean.com/community/tutorials/...
すでにインストールしている場合は、mongodbを次の方法で削除します。
sudo apt-get remove mongodb
sudo apt-get autoremove
digitalocean https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-16-04の推奨事項を試してください