this post was submitted on 05 Aug 2024
74 points (98.7% liked)

Linux

5230 readers
205 users here now

A community for everything relating to the linux operating system

Also check out [email protected]

Original icon base courtesy of [email protected] and The GIMP

founded 1 year ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 3 points 3 months ago* (last edited 3 months ago)

I’ve always thought of dependencies as equivalent to dlls. Is that right?

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 naturally ffmpeg is a dependency.

Why is Linux so fiddley with dependencies?

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.