These days Ubuntu published their new long term supported version, 22.04, and it is not possible to install mongodb because they don’t support libssl1.1 anymore:
The following packages have unmet dependencies:mongodb-org-mongos : Depends:libssl1.1(>=1.1.1)butitisnotinstallablemongodb-org-server : Depends:libssl1.1(>=1.1.1)butitisnotinstallablemongodb-org-shell : Depends:libssl1.1(>=1.1.1)butitisnotinstallable
I googled it, but I did not find anywhere nobody who could solve this problem. Any ideas?
Thank you!
Just apt installing openssl 1.1 sounds like a recipe for disaster.
Ubuntu 22.04 already has openssl 3 installed.
I think a MongoDB team member had best respond to this issue with a recommended path
… @Stennie_X ?
Ubuntu 22.04 was released less than a week ago so doesn’t have official MongoDB packages available yet. The build team is aware and will set up appropriate packaging & testing infrastructure to validate new packages.
I don’t have a specific ETA to share at the moment, but I’d generally recommend waiting for essential software packages to be available before committing to major O/S upgrades.
If you are an early adopter of a new O/S release, suggested interim workarounds would be:
Run your MongoDB deployment on separate hosts with supported O/S versions (eg 20.04 LTS)
Run MongoDB in a container/VM with a supported O/S version
Use a hosted version of MongoDB (eg MongoDB Atlas) so you have fewer direct dependencies on O/S updates
All of these approaches use official binaries, so you are less likely to run into novel issues.
For a development environment you could also consider:
However, I would be very wary of mixing & matching packages intended for different O/S versions (especially for a production environment) as those combinations have not been thoroughly tested.
Ok, thank you! Will wait for the support then. Out of ignorance, may I ask if generating a snap instead of a deb could solve the dependency problem and other possible library conflicts?
Hi Alexander, I’ve already posted the process above. I’ll re-post it in case you didn’t see it: sudo docker run -dp 27017:27017 -v local-mongo:/data/db --name local-mongo --restart=always mongo
As a sidenote, you can still download some of the mongodb binaries from the official ubuntu repo (not recommended by mongodb though), if you just playing around it is fine imho. Example:
Hi folks! Ubuntu 22.04 has been out for almost 3 months now, when will we be able to install the official version of mongo without all sorts of hacks and tweaks?
My bash script (that’s added below) will open the ‘nano’ editor and offer you to edit the control file specifying the deps. Your are looking for a line like this (starting with “Depends” and containing a reference to “libssl1.1”):
Hint: You don’t need ‘mongodb-mongosh’ from the deps as it’s being replaced by ‘mongodb-mongosh-shared-openssl3’.
Afterwards I couldn’t start the mongod service:
Jun 1118:14:11 systemd[1]: Started MongoDB Database Server.
Jun 1118:14:11 systemd[48437]: mongod.service: Failed to determine user credentials: No such process
Jun 1118:14:11 systemd[48437]: mongod.service: Failed at step USER spawning /usr/bin/mongod: No such process
Jun 1118:14:11 systemd[1]: mongod.service: Main process exited, code=exited, status=217/USER
Jun 1118:14:11 systemd[1]: mongod.service: Failed withresult'exit-code'.
Which was because of a missing user (after looking at ‘/etc/systemd/system/mongod.service’), so I added it:
sudo adduser mongodb
Edit, try, fail, repeat:
Jun 1118:15:53 systemd[1]: Started MongoDB Database Server.
Jun 1118:15:53 mongod[48504]: /usr/bin/mongod: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory
Jun 1118:15:53 systemd[1]: mongod.service: Main process exited, code=exited, status=127/n/a
Jun 1118:15:53 systemd[1]: mongod.service: Failed with result 'exit-code'.
Jun 1118:23:59 mongod[48822]: /usr/bin/mongod: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
Jun1118:26:29 systemd[1]: StartedMongoDBDatabaseServer.
Jun1118:26:29 mongod[48845]: /usr/bin/mongod: /lib/x86_64-linux-gnu/libcrypto.so.1.1: version `OPENSSL_1_1_0' not found (required by /usr/bin/mongod)
Jun1118:26:29 mongod[48845]: /usr/bin/mongod: /lib/x86_64-linux-gnu/libssl.so.1.1: version `OPENSSL_1_1_0' not found (required by /usr/bin/mongod)
Jun1118:26:29 mongod[48845]: /usr/bin/mongod: /lib/x86_64-linux-gnu/libssl.so.1.1: version `OPENSSL_1_1_1' not found (required by /usr/bin/mongod)
But didn’t I see a snap with 1.1 libs on the system when running the find commands? - Sure did!
$ sudo find / -type f -name libcrypto.so*
/usr/lib/x86_64-linux-gnu/libcrypto.so.3
/snap/core20/1518/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
$ sudo find / -type f -name libssl.so.*
/usr/lib/x86_64-linux-gnu/libssl.so.3
/snap/core20/1518/usr/lib/x86_64-linux-gnu/libssl.so.1.1
#!/bin/bash
# name: debedit.sh
# author: showp1984
# description: unpacks, edits control file and repacks deb-files with gz or xz compression
# prerequisites: xz-utils && nano
# No guarantees. Use at your own peril.
unset DECOMPXZ
unset DECOMPGZ
FILES="{post,pre}{inst,rm} conffiles md5sums control"
echo "Uncompressing deb..."
ar x $*
FILEXZ="control.tar.xz"
if [ -f "$FILEXZ" ]; then
DECOMPXZ=1
echo "Found: $FILEXZ | using XZ decomp..."
tar --xz -xvf $FILEXZ
fi
FILEGZ="control.tar.gz"
if [ -f "$FILEGZ" ]; then
DECOMPGZ=1
echo "$FILEGZ exists."
tar xzf $FILEGZ
fi
nano control
if [[ "$DECOMPXZ" == 1 ]]; then
echo "Repacking $FILEXZ..."
tar --ignore-failed-read -cvJf $FILEXZ $FILES
echo "Repacking deb with xz files..."
ar rcs "${*}-newpackage.deb" debian-binary $FILEXZ data.tar.xz
fi
if [[ "$DECOMPGZ" == 1 ]]; then
echo "Repacking $FILEGZ..."
tar --ignore-failed-read -cvzf $FILEGZ $FILES
echo "Repacking deb with gz files..."
ar rcs "${*}-newpackage.deb" debian-binary $FILEGZ data.tar.gz
fi
echo "Cleanup..."
rm -r control md5sums debian-binary control.tar.xz data.tar.xz control.tar.gz data.tar.gz postrm preinst prerm conffiles postinst
echo "Done!"
For those who only need the shell and some tools like mongodum/restore, you just have to install those two packages witch are included in the officiel mongo repo:
We found this really annoying but solved the problem by witching to AWS DocumentDB. Now everything works again under 22.04, we save some money by handing off the whole replication problem to AWS, and our searches are faster to boot. If the real MongoDB had gotten its act together sooner we would never have known.
It is because of the missing dependencies mongodb not installing on ubuntu 22.04.
The main reason is the missing of libssl1.1 dependency. So we need to install it seperately.
I have been using ubuntu in 20.04 and now I want to use it in 22.04 but the actual support of mongodb for Ubuntu 22.04 isn’t released yet. Any reason why the delay of the release for Ubuntu 22.04.
Hi,
This worked for me.
But my concern is I am not able to open mongodb shell using in terminal i tried both the commands,
mongo : showing Command ‘mongo’ not found
mongodb : showing this error.
The mongo command line shell is no longer available in MongoDB 6.0. You want to use the newer mongosh shell. It should have been installed when you installed MongoDB, but if not you can download it separately.
The screenshot shows you ran the mongod command. This is the MongoDB database engine process. Since the process was already running using the defaults, a second instance could not be started and should have failed with a message in the logs similar to Address already in use.