Apt-get fails on 16.04 or 18.04 installing mongodb
Ubuntu 16.04 and MongoDB 4.0
First, remove any existing repository file for MongoDB.
sudo rm /etc/apt/sources.list.d/mongodb*.list
Next, add the key: (without the key, the repository will not load)
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E52529D4
Now, create a new MongoDB repository list file:
sudo bash -c 'echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" > /etc/apt/sources.list.d/mongodb-org-4.0.list'
Complete the installation with update of repositories then install:
sudo apt update
sudo apt install mongodb-org
Enable the mongod
service and start it up:
systemctl enable mongod.service
systemctl start mongod.service
Check your mongodb version:
~$ mongo --version
MongoDB shell version v4.0.5
git version: 3739429dd92b92d1b0ab120911a23d50bf03c412
OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
allocator: tcmalloc
modules: none
build environment:
distmod: ubuntu1604
distarch: x86_64
target_arch: x86_64
Check if the service is running:
~$ systemctl status mongod.service
● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-01-21 00:33:51 MST; 7s ago
Docs: https://docs.mongodb.org/manual
Main PID: 2906 (mongod)
CGroup: /system.slice/mongod.service
└─2906 /usr/bin/mongod --config /etc/mongod.conf
Ubuntu 18.04 and MongoDB 4.2
First, remove MongoDB from previous if installed:
sudo apt remove --autoremove mongodb-org
Remove any mongodb repo list files:
sudo rm /etc/apt/sources.list.d/mongodb*.list
sudo apt update
Now, add the new key:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 4B7C549A058F8B6B
Add the new repository:
echo "deb [arch=amd64] http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Install MongoDB
sudo apt update
sudo apt install mongodb-org
Enable and start the mongod
server service:
systemctl enable mongod.service
systemctl start mongod.service
Check your installation:
~$ mongo --version
MongoDB shell version v4.2.2
git version: a0bbbff6ada159e19298d37946ac8dc4b497eadf
OpenSSL version: OpenSSL 1.1.1 11 Sep 2018
allocator: tcmalloc
modules: none
build environment:
distmod: ubuntu1804
distarch: x86_64
target_arch: x86_64
You can also check your service has started:
~$ systemctl status mongod.service
● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: e
Active: active (running) since Mon 2019-12-30 08:05:48 MST; 1min 7s ago
Docs: https://docs.mongodb.org/manual
Main PID: 7941 (mongod)
CGroup: /system.slice/mongod.service
└─7941 /usr/bin/mongod --config /etc/mongod.conf
Ubuntu 20.04 and MongoDB 4.4
First, remove MongoDB from previous if installed:
sudo apt remove --autoremove mongodb-org
Remove any mongodb repo list files:
sudo rm /etc/apt/sources.list.d/mongodb*.list
sudo apt update
Now, add the new key:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 656408E390CFB1F5
Add the new repository:
echo "deb [arch=amd64] http://repo.mongodb.org/apt/ubuntu $(lsb_release -sc)/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org.list
Install MongoDB
sudo apt update
sudo apt install mongodb-org
Enable and start the mongod
server service:
systemctl enable mongod.service
systemctl start mongod.service
Check your installation:
~$ mongo --version
MongoDB shell version v4.4.3
Build Info: {
"version": "4.4.3",
"gitVersion": "913d6b62acfbb344dde1b116f4161360acd8fd13",
"openSSLVersion": "OpenSSL 1.1.1f 31 Mar 2020",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "ubuntu2004",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
You can also check your service has started:
~$ systemctl status mongod.service
● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset>
Active: active (running) since Sun 2021-01-24 07:52:50 MST; 27s ago
Docs: https://docs.mongodb.org/manual
Main PID: 2353629 (mongod)
Memory: 59.2M
CGroup: /system.slice/mongod.service
└─2353629 /usr/bin/mongod --config /etc/mongod.conf
Jan 24 07:52:50 terrance-ubuntu systemd[1]: Started MongoDB Database Server.
Hope this helps!
In addition to @Terrance 's answer, here is how you can find appropriate sig key. Example is applicable to mongodb in this case but can be used for any other package similarly. Before you execute lines from @Terrance 's answer:
Go to ubuntu key server to find actual key
Search for string of interest (mongodb in case) and submit that first form (you don't need second form for this) - click
Search!
button
- On provided search list seek for your version (it was 3.4 in my case here in example)
You can see two rows with keys there. Focus on most actual by date. First string is date created while second one is date valid due.
Use sig from row mentioned in point 5 - in case from picture it would be
A15703C6
Continue with Terrance 's answer wether you need to install package or upgrade like myself
First run:
$ sudo rm /etc/apt/sources.list.d/mongodb*.list
It would be recommended to also remove any lines that are related to MongoDB from the /etc/apt/sources.list
file.
Then do a fresh installation of MongoDB using the commands provided in the official MongoDB intstallation instructions for Ubuntu.
Commands in provided link are given below
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
sudo apt-get install gnupg
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
sudo service mongod start
sudo service mongod status