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] 4 points 3 months ago (2 children)

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?

[–] [email protected] 7 points 3 months ago* (last edited 3 months ago) (1 children)

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.

[–] [email protected] 1 points 3 months ago (1 children)

It isn’t, and if you’re manually downloading stuff and putting it in some folders, you’re doing it very wrong.

I don't understand. My distro doesn't have any folders.

[–] [email protected] 1 points 3 months ago (1 children)

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.

[–] [email protected] 2 points 3 months ago (1 children)

Now your just being sad. And still wrong: I only interact with the terminal.

[–] [email protected] 1 points 3 months ago

Doesn't change the fact that they're in your distro - waiting... lurking...

[–] [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.