![](/img/trans.png)
[英]can't install Mongodb properly from terminal ubuntu 18.04 LTS
[英]Unable to install mongodb properly on ubuntu 18.04 LTS
我正在嘗試在我的 Ubuntu 18.04 LTS 上安裝 mongodb,但它有以下錯誤說
您可能需要運行 'apt --fix-broken install' 來糾正這些問題。 以下軟件包具有未滿足的依賴關系:mongodb-org:依賴:mongodb-org-server 但不會安裝依賴:mongodb-org-mongos 但不會安裝依賴:mongodb-org-tools 但它不會安裝 E:未滿足的依賴項。 嘗試不帶軟件包的“apt --fix-broken install”(或指定解決方案)。 umar@umar-Lenovo-ideapad-320-15ISK:~/Desktop/portfolio/async-demo$ sudo apt-get install -y mongodb
我相信這背后的原因已經在他們的網站上提到過,清楚地說
平台支持
MongoDB 僅提供 64 位 LTS(長期支持)Ubuntu 版本的軟件包; 例如,14.04 LTS(可信)和 16.04 LTS(xenial)。 有關詳細信息,請參閱支持的平台。
這些軟件包可以與其他 Ubuntu 版本一起使用; 但是,它們不受支持。
那么如何在我最新的 Ubuntu 18.04 LTS 上安裝 mongodb? 為了清楚起見,我列出了我為糾正錯誤所做的事情:我按照他們的官方網站安裝 mongodb
1. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
2. echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
3. sudo apt-get update
4. sudo apt-get install -y mongodb-org
現在在這里我收到錯誤消息:您可能需要運行 'apt --fix-broken install' 來糾正這些錯誤。 以下包具有未滿足的依賴項:
我試過了,
apt --fix-broken install
它沒有用,我在某個地方找到了運行的線索
sudo apt -f install
它也返回錯誤。
處理時遇到錯誤:/var/cache/apt/archives/mongodb-org-server_4.0.0_amd64.deb /var/cache/apt/archives/mongodb-org-mongos_4.0.0_amd64.deb /var/cache/apt /archives/mongodb-org-tools_4.0.0_amd64.deb E: 子進程 /usr/bin/dpkg 返回錯誤碼 (1)
我認為主要問題是與版本的兼容性。 所以基本上我有Ubuntu 18.04,我如何在這個版本上安裝mongodb,這樣我就可以毫無問題地工作了。
需要先卸載mongodb,可以使用:
sudo apt-get purge mongodb-org*
在此之后,通過以下命令安裝 mongodb:
sudo apt-get install mongodb
然后更新:
sudo apt-get update
您已完成 mongodb 的安裝。 您可以使用以下命令進行檢查:
mongo --version
只想在這里插話。 我是 MongoDB Server Docs 的高級技術作家。 這篇文章是“在 Ubuntu 18.04 上安裝 MongoDB”的少數文章之一,這里有幾條評論引用了mongodb
包進行安裝。 Ubuntu 提供的非官方mongodb
包不由 MongoDB 維護。 您應該始終使用官方的 MongoDB mongodb-org
包。 此外,從一些個人測試看來,如果您嘗試安裝mongodb
mongodb-org
,安裝 mongodb 會導致問題,所以它只會增加麻煩
有幾次我在本地測試時遇到這個問題,嘗試安裝其中一個子包(即mongodb-org-server
)通常會出現實際錯誤(即缺少libcurl3
,它在 18.04 中作為默認安裝的庫被刪除) . 在測試開發版本時,這些問題可能更常見(在撰寫本文時,這是 4.2 開發系列)。
要檢查您在本地系統上安裝了哪個軟件包,請運行以下命令:
sudo apt list --installed | grep mongo
這是我安裝mongodb
后的輸出,然后嘗試mongodb-org
:
mongo-tools/bionic,now 3.6.3-0ubuntu1 amd64 [installed,auto-removable]
mongodb-org/bionic,now 4.0.5 amd64 [installed]
mongodb-org-shell/bionic,now 4.0.5 amd64 [installed,automatic]
mongodb-server-core/bionic,now 1:3.6.3-0ubuntu1 amd64 [installed,auto-removable]
所以你可以看到,我混合了這兩個包(以及一堆dkpg
錯誤)。 我最終混合使用了apt remove
、 apt autoremove
和apt purge
來修復系統。
這是因為到目前為止,適用於 Ubuntu 18.04 的 Mongo DB 僅作為開發版本提供(參見: MongoDB Distros )。
我剛剛通過執行以下操作安裝了它:
添加對應的簽名:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4B7C549A058F8B6B
添加支持的版本:
echo "deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/development multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
更新:
sudo apt update
安裝:
sudo apt install mongodb-org-unstable
如果您收到“GPG 錯誤”,請使用錯誤消息中顯示的密鑰重復步驟 1。 您也許可以通過安裝
sudo apt install mongodb
但根據 MongoDB,這不受支持,很可能不會安裝最新版本。
在 ubuntu 18.04 上安裝 MongoDB 和使用mongod
命令的最簡單方法。
更新軟件包列表。
$ sudo apt update
安裝 MongoDB。
$ sudo apt install -y mongodb
檢查服務的狀態。
$ sudo systemctl status mongodb
3a。 你應該看到
● mongodb.service - An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset:enabled) Active: active (running) since Sat 2019-03-11 10:45:01 UTC; 4min 13s ago Docs: man:mongod(1) Main PID: 2312 (mongod) Tasks: 23 (limit: 1153) CGroup: /system.slice/mongodb.service └─2312 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf
允許在其默認port 27017
上訪問 MongoDB
$ sudo ufw allow 27017
檢查狀態
$ sudo ufw status
5a。 你應該看到
Status: active
To Action From
-- ------ ----
27017 ALLOW Anywhere
27017 (v6) ALLOW Anywhere (v6)
5b。 如果它返回inactive
$ sudo ufw enable
Output:
Firewall is active and enabled on system startup.
檢查/
目錄看是否有data/db
目錄,如果沒有:
$ sudo mkdir -p /data/db
要首先運行mongod
,您需要停止 mongodb:
$ sudo systemctl stop mongodb
最后,您可以運行mongod
:
$ sudo mongod
cd /etc/apt/sources.list.d
刪除與 mongodb 相關的文件
sudo apt update
這為我解決了。
卸載並刪除任何 Mongo 包。
$ sudo apt-get purge mongodb-org*
檢查是否刪除了相關目錄
$ sudo rm -r /var/log/mongodb
$ sudo rm -r /var/lib/mongodb
重新檢查自動刪除任何剩余的 mongo 包
$ sudo apt-get autoremove
配置你的目錄
$ sudo dpkg --configure -a
強制安裝任何需要的東西
$ sudo apt-get install -f
從官方網站安裝: https ://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
最后重新啟動您的 Ubuntu 並像之前一樣檢查 Mogodb 服務器的狀態。
如果您需要將 mongodb 二進制文件(手動)安裝到 Ubuntu 18.04 LTS(仿生)。 您需要從此鏈接下載 mongodb .tgz 文件。
1) 將其下載到您的 ~/Downloads 文件夾並通過鍵入mv Downloads/mongodb-linux-x86_64-ubuntu1804-4.0.4.tgz ~/
將其移動到主目錄
2)然后通過鍵入tar -zxvf mongodb-linux-x86_64-ubuntu1804-4.0.4.tgz
將其放置在這里(主目錄/home/)。 不要從這里移動它。
3)然后在 /data/db 位置創建一個目錄並授予該目錄的寫權限。
sudo mkdir -p /data/db
sudo chmod -R 777 /data/db
4)現在,這是一個棘手的領域。 通過鍵入 pwd(當前工作目錄)確保您在 hme 目錄中
pwd
它會顯示
/home/<your user name>
然后輸入
ls -al
此命令將顯示主目錄中的所有隱藏文件並搜索
~/.bashrc
5)編輯.bashrc文件並寫入
export PATH=mongodb-linux-x86_64-ubuntu1804-4.0.4/bin:$PATH
並保存文件類型source ./bashrc
然后在終端輸入echo $PATH
它將顯示~/mongodb-linux-x86_64-ubuntu1804-4.0.4/bin:/home/xenon/.nvm/versions/node/v10.15.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
6) 現在在終端類型mongo --nodb
它將顯示MongoDB shell version v4.0.4
從這里開始,一切就緒,繼續享受 mongodb 安裝。 這種安裝有點復雜,但是通過這種方法,您可以輕松控制 mongodb 的版本並根據需要使用它。
7)然后啟動mongod
>sudo mkdir -p /var/log && sudo chmod -R 777 /var/log
>mongod --port 27017 --dbpath /data/db --logpath /var/log/local.log --fork
>mongo --port 27017
我遇到了同樣的問題,對我來說解決方案是清除,但使用 (*) 。 清除一切,所以我這樣做了:
sudo apt-get purge mongo-tools*
sudo apt-get purge mongodb*
然后我按照文檔中的步驟進行操作。 (實際版本是4.2.2),安裝在Ubuntu 18.04。 (網址: https ://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/)
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org
通過文檔中的這四個步驟,我終於在 Ubuntu 上安裝了 mongodb 社區版。 我的問題是 3 個文件,無法處理。
mongodb-org-server
mongodb-org-mongos
mongodb-org-tools
我希望它對某人有幫助
運行sudo apt autoremove
並重新安裝mongodb 。
對於 Ubuntu 版本 18.04 LTS,最好手動安裝 MongoDB。
我需要通過以下步驟使其在我的 Ubuntu 18.04 上運行:
mongod:/usr/lib/x86_64-linux-gnu/libcurl.so.4:找不到版本“CURL_OPENSSL_3”(mongod 需要)
要解決此問題,您需要使用以下命令卸載“libcurl4”依賴庫
sudo apt-get 刪除 libcurl4
然后需要安裝回較低的 curl lib 版本(即“libcurl3”),因為 mongo 期望它在 ubuntu 版本“18.04”上
sudo apt-get install libcurl3
如果手動步驟失敗,您可能需要使用“sudo”在安裝過程中分叉數據和日志目錄
sudo mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
您現在可以運行“mongo”命令來查看 mongo shell 正在運行。
這個對我有用。
此問題僅在Ubuntu 22.04上,
試試這個:
echo "deb http://security.ubuntu.com/ubuntu impish-security main" | sudo tee /etc/apt/sources.list.d/impish-security.list
sudo apt-get update
sudo apt-get install libssl1.1
只需運行命令sudo apt install mongodb它將安裝 mongodb,因為 mongodb 現在是 ubuntu 存儲庫的一部分。 安裝后運行命令sudo service mongodb start啟動 mongodb 服務器。 然后,如果您運行命令mongo ,它將為您提供 shell 助手。 要查看現有數據庫,請使用命令show dbs 。 成功安裝后,您會發現已有的數據庫名稱為admin、config、local 。 使用命令db查看當前在服務器上運行的數據庫,會有一個名為test 或 somthing的數據庫。 要添加集合(SQL DB 上的表),只需使用帶有初始文檔(SQL DB 中的行)信息的插入命令db.data.insert({"username":"Brad Pitt"})
在前面的命令中,數據是我的集合名稱。 現在要查看數據收集中的所有文檔,只需使用命令db.data.find() ; 其他命令: sudo service mongod status、sudo service mongodb stop、sudo service mongod restart、sudo service mongod stop。
更多信息,可以訪問https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
對我來說,Pop_OS Linux 20.04 LTS 幫助:
$ sudo apt-get purge mongodb*
然后通過以下命令為 Ubuntu 18.04 (Bionic) 創建/etc/apt/sources.list.d/mongodb-org-4.4.list
文件:
$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
而不是 Ubuntu 20.04 (Focal)
之后安裝 mongodb-org:
$ sudo apt-get update
$ sudo apt-get install -y mongodb-org
並啟動 mongodb 服務:
$ sudo systemctl start mongod
嘗試在 Pop._OS 22.04 LTS(或 Ubuntu 22.04 LTS)中安裝 mongo-db 時,我遇到了 libssl1.1 問題。
希望這可以幫助其他正在嘗試做同樣事情的人。
https://github.com/dotnet/sdk/issues/24759中引用了該問題。
所有功勞歸@feisalramar。
試試這個,我成功找到了
$ sudo apt-get install -y mongodb
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.