30
votes

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.

14

14 Answers

94
votes

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
18
votes

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.

5
votes

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.

5
votes

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.

3
votes

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

2
votes

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
2
votes

cd /etc/apt/sources.list.d

remove files related to mongodb

sudo apt update

This solved it for me.

1
votes

run sudo apt autoremove and re-install mongodb .

1
votes

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.

6. Check the / directory to see if there is a data/db directory, if not:

     $ sudo mkdir -p /data/db

7. To run the mongod first you need stop mongodb:

     $ sudo systemctl stop mongodb

8. Finally, you can run the mongod:

     $ sudo mongod

I hope that I helped 🙃

1
votes

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.

0
votes

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

0
votes

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.

0
votes

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
-2
votes

Try this, I successfully find this out

$ sudo apt-get install -y mongodb