如何從 PPA 安裝特定的 mongo 版本?
一旦你設置了官方的 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
- 現在
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 版本保持同步。