45

I am trying to install mongodb on my Ubuntu 18.04 LTS, but it has the following error saying

You might want to run 'apt --fix-broken install' to correct these. The following packages have unmet dependencies: mongodb-org : Depends: mongodb-org-server but it is not going to be installed Depends: mongodb-org-mongos but it is not going to be installed Depends: mongodb-org-tools but it is not going to be installed E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution). umar@umar-Lenovo-ideapad-320-15ISK:~/Desktop/portfolio/async-demo$ sudo apt-get install -y mongodb

I beleieve the reason behind this is already mentioned on their website, clearly saying

PLATFORM SUPPORT

MongoDB only provides packages for 64-bit LTS (long-term support) Ubuntu releases; for example, 14.04 LTS (trusty) and 16.04 LTS (xenial). See Supported Platforms for more information.

These packages may work with other Ubuntu releases; however, they are not supported.

So how can I install mongodb on my latest Ubuntu 18.04 LTS? For sake of clarity, I am listing the things I did to correct the errors: I followed their official website to install 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

Now here I got errors saying: You might want to run 'apt --fix-broken install' to correct these. The following packages have unmet dependencies:

I tried,

apt --fix-broken install

It did not work, somewhere I got clue to run

sudo apt -f install

It also returned error.

Errors were encountered while processing: /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: Sub-process /usr/bin/dpkg returned an error code (1)

I believe the main problem is compatability with version. So basically I have Ubuntu 18.04, how I install mongodb on this version, so that I can work without any trouble.

Umar
  • 990
  • 1
  • 8
  • 19

16 Answers16

144

You need to first uninstall the mongodb, you can use:

sudo apt-get purge mongodb-org*

After this, install mongodb through the following commands:

sudo apt-get install mongodb

And then update:

sudo apt-get update

You are done with the installation of mongodb. You can check it by using the below command:

mongo --version
Mohammad Umar
  • 1,722
  • 1
  • 14
  • 20
  • $ mongo MongoDB shell version v3.6.3 connecting to: mongodb://127.0.0.1:27017 2019-06-19T00:03:01.844+0530 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused 2019-06-19T00:03:01.845+0530 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed : connect@src/mongo/shell/mongo.js:251:13 @(connect):1:6 exception: connect failed – kkashyap1707 Jun 18 '19 at 18:33
  • Install is now ok for me but unable to launch (couldn't connect to server 127.0.0.1:27017) – Meloman Aug 26 '19 at 12:20
  • 13
    this is for older mongo version – otong Aug 29 '19 at 06:43
  • 1
    This works! Thank you. I would just like to add that if someone is using a different shell then bash, and for some reason your shell throws you an error, it might not be your fault. I was writing these out in ZSH, but for some reason the 1st step was not even being recognized by ZSH that there were `mongodb-org*` packages - clearly there were, I checked. Then I switched over to BASH, and the same commands worked flawlessly. – Saif Ul Islam Nov 20 '20 at 07:33
  • Shouldn't we done `sudo apt-get update` before `sudo apt-get install mongodb` – alper Jul 01 '21 at 11:17
  • Can we use that commend to install mongo v4.4? – Han Van Pham Jul 20 '21 at 15:27
  • 1
    This does not instal mongo > v4 – alper Oct 03 '21 at 18:44
  • just an fyi '*' doesnt' work in zsh. use bash – chovy May 22 '22 at 06:44
25

EDIT: It's been a number of years, and unfortunately the top answer still points users away from the latest stable version of MongoDB. In fact the last available package for mongodb is 3.6.3.

I don't work at the company anymore, but I will point to:

https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-ubuntu/

That's the best way to install the latest stable version MongoDB. It includes instructions for adding the necessary repositories and keys to allow running apt install mongodb-org. There is a platform support matrix that will help with identifying which versions of MongoDB you can install on any given Linux OS version.

just want to chime in here. I'm the Senior Technical Writer for MongoDB Server Docs. This post is one of a few that comes up with "install MongoDB on Ubuntu 18.04", and there are several comments here referencing the mongodb package for installation. The unofficial mongodb package provided by Ubuntu is not maintained by MongoDB. You should always use the official MongoDB mongodb-org packages. Furthermore, from a bit of personal testing it looks like having mongodb installed will cause issues if you try to install mongodb-org, so its just added trouble

The few times I've run into this issue when testing locally, attempting to install one of the subpackages (i.e. mongodb-org-server) usually surfaced the actual error (i.e. missing libcurl3, which was removed in 18.04 as a default installed library). These issues may be more common when testing development builds ( at the time of writing, that's the 4.2 dev series).

To check which package you have installed on your local system, run the following:

sudo apt list --installed | grep mongo

This was my output after I installed mongodb, then attempted 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]

So you can see, I've got a mix between the two packages (and a bunch of dkpg errors). I ended up using a mix of apt remove , apt autoremove, and apt purge to fix up the system.

rkumar-minio
  • 672
  • 5
  • 7
  • 1
    But I came here because I could not find answer in your docs for this specific version of Ubuntu (18). In the docs there is a ulimit -n command mentioned which does not work. and with sudo it does not recognize the command itself. I have been searching a solution for this, ended up editing several different .conf files also – Naveed Hasan Aug 20 '20 at 20:44
  • When I try `sudo apt install mongodb-org`, I get `E: Unable to locate package mongodb-org`. How do I get past this? – Rylan Schaeffer Jan 18 '22 at 23:23
  • For other people who hit the same error, I needed to follow the instructions here : https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/ – Rylan Schaeffer Jan 18 '22 at 23:25
  • Could you please suggest an installation that works then ? – themozel Dec 19 '22 at 13:06
12

Based on this excellent Answer: https://stackoverflow.com/a/51421152/659354

And this Page: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

The commands I used to install MongoDB 4.2

sudo apt-get purge mongo* - Note: mongo to remove the client as well as the server.

sudo apt-get install mongodb-org - Note: install command run after the Mongodb.org Source was added to the Apt-get sources list.

Raystorm
  • 6,180
  • 4
  • 35
  • 62
7

This is because as of now Mongo DB for Ubuntu 18.04 is only available as a development version (See: MongoDB Distros).

I just installed it by doing the following:

Add the corresponding signature:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4B7C549A058F8B6B  

Add the supported version:

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

Update:

    sudo apt update

Install:

sudo apt install mongodb-org-unstable

If you get a "GPG error" repeat step 1 with the key that is shown in the error message. You might be able to install via

sudo apt install mongodb

but according to MongoDB this is not supported and will most probably not install the newest version.

Ole Fass
  • 121
  • 1
  • 6
6

The easiest way to install MongoDB and use the mongod command on ubuntu 18.04.

  1. Update the packages list.

     $ sudo apt update
    
  2. Install the MongoDB.

     $ sudo apt install -y mongodb
    
  3. Check the service's status.

     $ sudo systemctl status mongodb
    

    3a. You should see

     ● 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
    
  4. To allow access to MongoDB on its default port 27017

      $ sudo ufw allow 27017
    
  5. Check status

      $ sudo ufw status
    

5a. You should see

     Status: active
     To                         Action      From
     --                         ------      ----
     27017                      ALLOW       Anywhere
     27017 (v6)                 ALLOW       Anywhere (v6)

5b. If it returns inactive

     $ sudo ufw enable

     Output:
     Firewall is active and enabled on system startup.
  1. Check the / directory to see if there is a data/db directory, if not:

      $ sudo mkdir -p /data/db
    
  2. To run the mongod first you need stop mongodb:

      $ sudo systemctl stop mongodb
    
  3. Finally, you can run the mongod:

      $ sudo mongod
    
Antoine
  • 3,880
  • 2
  • 26
  • 44
Michal S.
  • 385
  • 4
  • 6
3

cd /etc/apt/sources.list.d

remove files related to mongodb

sudo apt update

This solved it for me.

medunes
  • 541
  • 3
  • 16
3

Uninstall and remove any Mongo packages.

$ sudo apt-get purge mongodb-org*

Check if related directories removed

$ sudo rm -r /var/log/mongodb
$ sudo rm -r /var/lib/mongodb

Recheck for autoremove any remaining mongo packages

$ sudo apt-get autoremove

Configure your directory

$ sudo dpkg --configure -a

Force install anything required

$ sudo apt-get install -f

Install from official site: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

Finally restart your Ubuntu and check status of Mogodb server as you did earlier.

Turjoy Saha
  • 107
  • 1
  • 4
2

If you need to install mongodb binary (Manually) to your Ubuntu 18.04 LTS (Bionic). You need to download mongodb .tgz file from this link .

1) Download it to your ~/Downloads folder and moveit to home directory by typing mv Downloads/mongodb-linux-x86_64-ubuntu1804-4.0.4.tgz ~/

2) Then unter it by typing tar -zxvf mongodb-linux-x86_64-ubuntu1804-4.0.4.tgz place it here (Home directory /home/). Dont move it from here.

3) Then make a directory at /data/db location and give write permission to thatdirectory.

sudo mkdir -p /data/db

sudo chmod -R 777 /data/db

4) Now, this is the tricky area. Make sure u r in hme directory by typing pwd (Present Working Directory)

pwd 

it will show

/home/<your user name>

Then type

ls -al

This command will show up all hiddenfile at home directory and search for

~/.bashrc

5) Edit the .bashrc file and write

export PATH=mongodb-linux-x86_64-ubuntu1804-4.0.4/bin:$PATH

and save the file type source ./bashrc

Then type echo $PATH at terminal it will display ~/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) Now at terminal type mongo --nodb it will show MongoDB shell version v4.0.4

From here , you are all set, go ahead and enjoy mongodb installation. This istallation is bit complex but by this method you can easily control the version of mongodb and use it as per your need. enter image description here

7) Then start 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
Kaushik Das
  • 405
  • 1
  • 5
  • 12
2

I had the same problem, and for me the solution was purge, but with the (*) . Purge everything, so i did this:

sudo apt-get purge mongo-tools*
sudo apt-get purge mongodb*

then i follow the steps from the documentation. (Actual version is 4.2.2), and the installation was in Ubuntu 18.04. (URL: 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

With that four steps from the documentation i finally install mongodb community edition on Ubuntu. My problem was 3 files,that can't process.

mongodb-org-server
mongodb-org-mongos
mongodb-org-tools

I hope its help someone

Felipe Illanes
  • 419
  • 5
  • 8
1

run sudo apt autoremove and re-install mongodb .

Saikat Chakrabortty
  • 2,520
  • 4
  • 22
  • 39
1

For Ubuntu version 18.04 LTS, it's better if you will install MongoDB manually.

I need to go through the following steps to make it run on my Ubuntu 18.04:

  1. Fallow manual installation steps from the following mongo DB manual https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu-tarball/
  2. Download .tgz with the following configurations Download MongoDB
  3. Please note, when you install MongoDB 3.6 or above, it comes up with Curl library of "libcurl4" version and which has some compatibility issues on ubuntu 18.04
  4. Due to this, you will end up resulting following output when try to execute "mongod" command:

mongod: /usr/lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by mongod)

  1. To fix this problem, you need to uninstall "libcurl4" dependent library by using the following command

    sudo apt-get remove libcurl4

  2. Then need to install back lower curl lib version (i.e. "libcurl3"), as mongo expects it on ubuntu version "18.04"

    sudo apt-get install libcurl3

  3. You may need to use "sudo" to fork the data and log directories with the installation if it fails with the manual steps

    sudo mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork

  4. you can run "mongo" command now to see the mongo shell running.

It works for me.

amyth
  • 31
  • 1
1

I was facing a libssl1.1 issue when trying to install mongo-db in Pop!_OS 22.04 LTS (or Ubuntu 22.04 LTS).

  1. Go to http://archive.ubuntu.com/ubuntu/pool/main/o/openssl
  2. Find the exact version of libssl for example libssl1.1.1
  3. wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1-1ubuntu2.1~18.04.20_amd64.deb
  4. Then install
  5. sudo dpkg -i libssl1.1_1.1.1-1ubuntu2.1~18.04.20_amd64.deb

Hope this helps others who are trying to do the same.

The issue is referenced in https://github.com/dotnet/sdk/issues/24759.

All credit goes to @feisalramar.

bkp31415
  • 11
  • 4
0

Just run the command sudo apt install mongodb it will install the mongodb, because mongodb is now part of ubuntu repository. After installation run command sudo service mongodb start to start the mongodb server. Then if you run command mongo it will give you shell helper. To see the existing database use command show dbs. After successfull installation you will find there pre existing database names are admin, config, local. Use command db to see which database is currently running on server, there will a database named test or somthing. To add a collection (tables on SQL DB) just use the insert command with an initial document (row in SQL DB) information db.data.insert({"username":"Brad Pitt"})
In previous command data is my collection name. Now to see all documents in data collection just use command db.data.find(); Other commands: sudo service mongod status, sudo service mongodb stop, sudo service mongod restart ,sudo service mongod stop.

For more information, you can visit https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

; enter image description here

enter image description here

matthias_h
  • 11,356
  • 9
  • 22
  • 40
Rafiq
  • 8,987
  • 4
  • 35
  • 35
0

For me on Pop_OS Linux 20.04 LTS helped:

  1. $ sudo apt-get purge mongodb*

Then creating /etc/apt/sources.list.d/mongodb-org-4.4.list file for Ubuntu 18.04 (Bionic) via this command:

  1. $ 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

instead of Ubuntu 20.04 (Focal)

After that install mongodb-org:

  1. $ sudo apt-get update
    $ sudo apt-get install -y mongodb-org

And start mongodb service:

  1. $ sudo systemctl start mongod
0

This issue is only on Ubuntu 22.04,

Try this out:

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
Smack Alpha
  • 1,828
  • 1
  • 17
  • 37
-1

Try this, I successfully find this out

$ sudo apt-get install -y mongodb
Dr Jacob D
  • 25
  • 2