web-dev-qa-db-ja.com

16.04で14.04 MongoDBパッケージを使用できますか?

残念ながら、MongoDBの公式Ubuntuパッケージは2.6のままです。これは現時点では古くなっています( このバグ vivid、wily、xenialの場合は選択されませんでした)。

MongoDBはまだ16.04(Xenial)のパッケージをリリースしていませんが、16.04に14.04(Trusty)パッケージを使用してMongoDB 3.2+をインストールする方法を教えてください。

10
Adam C

ちょっとしたハックですが、はい、できます。サービスを実際に開始するために必要な文書化されていないステップがあり、(奇妙なことに)手動でupstartジョブ変換を回避したい場合を除き、最初にUbuntu mongodbパッケージをインストールしてから削除する必要があります使用可能なサービス。 MongoDBパッケージを直接インストールしても、16.04の新鮮なサービスは機能しません。

更新-2016年7月:このための公式修正(パッケージへの16.04のサポートの追加)は、一部として3.3 devブランチで完了しました- SERVER-2304 -3.2シリーズのバックポートとして .2.7の一部 としてリリースされました。したがって、3.2.7 +を使用している場合、notを行う必要があり、公式の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形式の例については here を参照してください)。

注:インストールした2つのパッケージのわずかな違いにより、実際には2つの構成ファイル/etc/mongod.conf/etc/mongodb.confが存在します。現在アクティブなサービスは、デフォルトで古い形式のサービスを指します/etc/mongodb.conf-必要に応じてmongod.confmongodb.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の警告を取り除きたい場合は、 this answer を確認してください。

14
Adam C