Mongodb

如何從 PPA 安裝特定的 mongo 版本?

  • February 8, 2018

一旦你設置了官方的 mongo PPA,Mongo 的文件說要在 Ubuntu 上安裝特定版本,執行類似:

sudo apt-get install -y mongodb-org=3.6.2

我想在 Ubuntu 16 上安裝 3.4.10 版本。我驗證此版本可用於:

apt-cache policy mongodb-org

其中列出:

mongodb-org:
 Installed: 3.4.10
 Candidate: 3.4.11
 Version table:
    3.4.11 500
       500 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4/multiverse amd64 Packages
    3.4.10 500
       500 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4/multiverse amd64 Packages
       100 /var/lib/dpkg/status
    3.4.9 500
       500 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4/multiverse amd64 Packages
    3.4.8 500
       500 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4/multiverse amd64 Packages
    3.4.7 500
       500 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4/multiverse amd64 Packages
    3.4.6 500
       500 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4/multiverse amd64 Packages
    3.4.5 500
       500 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4/multiverse amd64 Packages
    3.4.4 500
       500 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4/multiverse amd64 Packages
    3.4.3 500
       500 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4/multiverse amd64 Packages
    3.4.2 500
       500 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4/multiverse amd64 Packages
    3.4.1 500
       500 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4/multiverse amd64 Packages
    3.4.0 500
       500 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4/multiverse amd64 Packages

所以我嘗試執行:

sudo apt-get install -y mongodb-org=3.4.10

但我收到了這個無意義的輸出:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
 mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools
The following NEW packages will be installed:
 mongodb-org mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools
0 upgraded, 5 newly installed, 0 to remove and 1 not upgraded.
Need to get 3,522 B/67.0 MB of archives.
After this operation, 271 MB of additional disk space will be used.
Get:1 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4/multiverse amd64 mongodb-org amd64 3.4.10 [3,522 B]
Fetched 3,522 B in 0s (8,901 B/s)       
Selecting previously unselected package mongodb-org-shell.
(Reading database ... 84310 files and directories currently installed.)
Preparing to unpack .../mongodb-org-shell_3.4.11_amd64.deb ...
Unpacking mongodb-org-shell (3.4.11) ...
Selecting previously unselected package mongodb-org-server.
Preparing to unpack .../mongodb-org-server_3.4.11_amd64.deb ...
Unpacking mongodb-org-server (3.4.11) ...
Selecting previously unselected package mongodb-org-mongos.
Preparing to unpack .../mongodb-org-mongos_3.4.11_amd64.deb ...
Unpacking mongodb-org-mongos (3.4.11) ...
Selecting previously unselected package mongodb-org-tools.
Preparing to unpack .../mongodb-org-tools_3.4.11_amd64.deb ...
Unpacking mongodb-org-tools (3.4.11) ...
Selecting previously unselected package mongodb-org.
Preparing to unpack .../mongodb-org_3.4.10_amd64.deb ...
Unpacking mongodb-org (3.4.10) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up mongodb-org-shell (3.4.11) ...
Setting up mongodb-org-server (3.4.11) ...
Setting up mongodb-org-mongos (3.4.11) ...
Setting up mongodb-org-tools (3.4.11) ...
Setting up mongodb-org (3.4.10) ...

為什麼它說它正在安裝 3.4.11…只是最後說它正在設置 3.4.10?當我執行/usr/bin/mongod --version它時,它確實顯示它安裝了錯誤的版本。

db version v3.4.11
git version: 34f5bec2c9d827d71828fe858167f89a28b29a2a
OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
allocator: tcmalloc
modules: none
build environment:
   distmod: ubuntu1604
   distarch: x86_64
   target_arch: x86_64

我究竟做錯了什麼?

顯然,要安裝特定版本,您不僅需要指定主包的版本,還需要指定所有包依賴項的版本。否則 apt-get 假定您需要最新版本的依賴項……這需要您的主包的最新版本,導致它忽略您指定的版本。當我為所有各種 mongo-org 包指定 3.4.10 時,例如:

sudo apt-get install -y mongodb-org=3.4.10 mongodb-org-server=3.4.10 mongodb-org-shell=3.4.10 mongodb-org-mongos=3.4.10 mongodb-org-tools=3.4.10

然後它正確安裝了 3.4.10。

正如我所看到的,您輸入了這樣的語法

sudo apt-get install -y mongodb-org=3.6.2

在這裡我想說,如果你想從PPA(個人包檔案)為 Ubuntu 安裝 MongoDB 版本,那麼你可以簡單地輸入mongodb-org. 無需提及

sudo apt-get install -y mongodb-org=3.4.10

因為PPA無非是一種非標準software/updates。所以,總是從他們各自的供應商組織那裡獲取更新版本,就像那樣

sudo apt-get install -y mongodb-org

在您的情況下,您想安裝特定版本,那麼您肯定必須定義版本號(如 MongoDB 版本 3.4.10)

我正在寫下在Ubuntu 16.04中安裝****MongoDB 3.4的簡單步驟。

1)首先,我們將使用以下命令在我們的系統中導入 MongoDB GPG 公鑰

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

Ubuntu 包管理工具(即 dpkg 和 apt)通過要求發行商使用 GPG 密鑰對包進行簽名來確保包的一致性和真實性。

/etc/apt/sources.list.d/2)使用以下命令創建一個 MongoDB 列表文件:

對於 Ubuntu 16.04:

$ echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-3.4.list
  1. 現在repository已經添加了 MongoDB,使用以下命令在您的系統中安裝 MongoDB。

假設在您的情況下,您想要安裝特定版本的 MongoDB,例如3.4.10,那麼命令將如下所述

$ sudo apt-get update
$ apt-get install mongodb-org=3.4.1 mongodb-org-server=3.4.1 mongodb-org-shell=3.4.1 mongodb-org-mongos=3.4.1 mongodb-org-tools=3.4.10

**注意: -**要安裝特定版本的儲存庫,請確保已執行$ sudo apt-get update.

安裝更新穩定版 MongoDB

$ sudo apt-get update
$ sudo apt-get install mongodb-org

4)啟動MongoDB並將其添加為要在啟動時啟動的服務:

對於 Ubuntu 16.04

$ sudo systemctl start mongod
$ sudo systemctl enable mongod

5)最後使用以下命令檢查MongoDB系統上安裝的版本

輸入 mongo shell 命令,例如

$ mongod --version 

您將獲得特定安裝的 MongoDB 版本詳細資訊。

最重要的: Ubuntu 提供的非官方 mongodb 包不由 MongoDB 維護。您應該始終使用官方的 MongoDB mongodb-org 包,這些包與最新的主要和次要 MongoDB 版本保持同步。

為了進一步參考這里這裡

引用自:https://dba.stackexchange.com/questions/197336