this post was submitted on 05 Aug 2024
74 points (98.7% liked)
Linux
5231 readers
147 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?
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.