this post was submitted on 05 Aug 2024
74 points (98.7% liked)
Linux
5240 readers
130 users here now
A community for everything relating to the linux operating system
Also check out !linux_memes@programming.dev
Original icon base courtesy of lewing@isc.tamu.edu and The GIMP
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
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.