Well this was a fun way to start my day. I was trying to install Davinci Resolve on my Mint PC (since Mint 22 broke some of Resolves dependencies), and it was still giving the warning of missing dependencies.
One of the dependencies libasound2 couldn’t install but apt recommended 2 others. Tried both and non worked. So I decided to uninstall both, and then Cinnamon Setting disappeared. I tried to fix it by reinstalling Cinnamon itself, but yeah… on reboot it would crash on the Mint file check.
However after trying the Recovery mode to get access to the terminal. I was able to access Timeshift, get the backup from yesterday and I’m back up and running.
So happy I enabled Timeshift. Hurray for safety nets actually working to protect me from myself.
I’ve always thought of dependencies as equivalent to dlls. Is that right? In the past, I’ve had to hunt down dependencies, but all I did was drop them into the right directory and everything worked. Why is Linux so fiddley with dependencies?
It isn’t, and if you’re manually downloading stuff and putting it in some folders, you’re doing it very wrong.
The package manager deals with dependencies.
If a software complains about missing dependencies, you didn’t install it via your package manager.
And/Or it wasn’t packaged for your version of your distro. So take a step back and reconsider what you’re actually trying to achieve.
I don’t understand. My distro doesn’t have any folders.
You’re wrong. Your distro has Nautilus, Dolphin, Thunar and/or PCManFM in its repos. Install one of them, open it and you’ll see folders.
Now your just being sad. And still wrong: I only interact with the terminal.
Doesn’t change the fact that they’re in your distro - waiting… lurking…
Usually, but not always. Most of the times a dependency is a software library contained within a shared object file (a
.so
file), and that is indeed analogous to a dll.A dependency can be other things as well though, like a specific program that a software package depends on being present. For example, the handbrake program to reencode videos will call
ffmpeg
under the hood. So naturallyffmpeg
is a dependency.I don’t think it is? I mean, software depending on external shared libraries isn’t exactly a Linux only concept, and if anything I think most Linux distros’ ways of handling dependencies are superior.
The main difference with Windows is that third party software tends to bring their own dlls for anything that’s not a standard part of Windows, which is wasteful because of duplication, and less secure because the included libraries may be out of date and contain known security holes.
On Linux, distributions usually have every library under the sun in their repositories, managed by the package manager and kept up to date by the maintainers. As long as you stick to software included with your distro, or software packages for your specific distro, dependencies should be resolved automatically by the package manager. For example: if you download the Google Chrome .deb file, and install it with
apt-get
, it will pull in all the dependencies it needs to run.If you go outside of that, for example compiling software yourself, or downloading non-distro specific binaries, you will have to take care of dependencies yourself. Perhaps that’s what you mean with the fiddly bit.