I’m encountering an issue with openSSL version mismatching, I’m running unit tests on my workstation where I need to start a mongoDB server. My tests return an error
StdoutInstanceError: Instance failed to start because a library is missing or > cannot be opened: “libcrypto.so.1.1”
note: this is using mongo 6.0.7 from their official sources.
I then attempted to install the 1.1 version of openSSL, i.e with
dnf install openssl1.1-devel
Nope! it seems to conflict with the newer version of openSSL instead of running alongside it. In addition, my nvidia drivers from RPMFusion (akmod package) depends on the newer openSSL package (which is fair)
is there a way to install the packages together?
This seems to indicate that you’re running on Fedora.
Mongo used to, but is no longer shipped by Fedora. The MongoDB instructions just have instructions for RedHat. These mostly work for Fedora as well but sometimes run into library conflicts.
I assume this is how you encountered the error.
MongoDB provides a library-independent way to get their software running: software as a service via docker. This is what I would recommend you use.
In case you have not used docker on your Fedora workstation before: install it via
sudo dnf install moby-engine.
Start docker via
systemctl enable --now docker.service.
Enable control to the local user via
usermod -aG docker <username>
docker would be a good idea, however these Mongo instances are spawned inside of a test suite (npm’s mongo-memory-server in this case). I apologize for not mentioning it before.
I found a solution; It turns out, mongo has released binaries for rh9, which is compiled targeting the newer openssl libs. I’ve manually set up the test suite to grab that binary package instead, and tests began to work properly.
note: for those looking for this on the web, here are the env variables i set to make it work: