Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : LINUX: Dependencies.....
Author | Message | ||||
Grogster Admin Group Joined: 31/12/2012 Location: New ZealandPosts: 9051 |
In Linux Mint and other distros, when you go to install packages you are sometimes told that you need additional "Dependencies". I always allow that, as it seems silly to NOT allow that - that is asking for the package to NOT work. Are "Dependencies" somewhat similar to Windoze DLL files? If they are, that would help my understanding of the Linux lingo. If that is NOT the case, I would love some explanation of what dependencies actually are at a technical level. Thanks. Smoke makes things work. When the smoke gets out, it stops! |
||||
Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 3496 |
Programs can ber distributed as "portable", what means that they do not depend on other programs(packages). But they can als be distributed as is. Meaning they will only run on a system that meets the progams requirements. For a vide player that could be a format convertor (i.e ffmpeg). That is a dependency. In some cases the version of that package is important. Edited 2021-10-20 18:32 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
thwill Guru Joined: 16/09/2019 Location: United KingdomPosts: 3831 |
Hi G, The analogy for a Windoze DLL on Linux is the shared-object, .so file. The "dependencies" of package A are literally just other packages B, C, D containing files (executables, shared-objects, resources) that A requires to work. As an example the GNU C compiler package 'gcc' depends on the GNU linker 'ld' executable which is contained in the 'binutils' package. Best wishes, Tom Game*Mite, CMM2 Welcome Tape, Creaky old text adventures |
||||
scruss Regular Member Joined: 20/09/2021 Location: CanadaPosts: 83 |
Mint is a Debian distribution. Debian is very particular about telling you about dependencies. Other distros just install 'em anyway, as the package isn't going to work without them. Sometimes dependencies have options, where either one of two packages provides the features your package needs. Mint will pick one, and unless you really know otherwise (hint: you probably don't), go with what it suggests. Another type of dependency is a suggested package. These often add optional, non-essential features. Unfortunately, documentation often falls under the "suggested" class. Sometimes the suggestions will pull in gigabytes of packages that seem to have nothing directly to do with your package. This is particularly true of any Gnu *-doc package. GNU, for reasons all their own, use a very special format of hypertext documentation called texinfo. Since GNU software comes with source, any package with texinfo source will pull in all the dependencies it needs to rebuild that source into html/pdf/whatever documentation. Since the TeX Live distribution required to build texinfo docs is currently sitting at around 5 GB, at one point you'll install a package and it'll pull in more packages than you can possibly imagine. Disks are cheap, you've got no idea what's running on your computer anyway, enjoy. |
||||
Grogster Admin Group Joined: 31/12/2012 Location: New ZealandPosts: 9051 |
Ahhh! Thanks chums. So it would seem more like in Windoze if you go to install something, and Windoze moans that it needs the C++ redistributable or Direct-X or something like that. So not DLL files, more so just other APPLICATIONS that are called upon by the package you are installing, so those applications need to be installed also, or the calls to them will fail. Do I have that right? Thanks for the info. Every time I move a machine to Mint(laptop this time), I find myself with more and more questions! Smoke makes things work. When the smoke gets out, it stops! |
||||
JohnS Guru Joined: 18/11/2011 Location: United KingdomPosts: 3649 |
It can also be "DLL" (.so - shared object) files. It's possible to have multiple versions of a .so e.g. when you have an older app & some other ones using a newer version of the .so (and they'll work fine alongside each other). You can even have ones local to an app. (The point of a newer .so is it will provide all the same APIs but may add more.) Generally it just works. Essentially MS copied the above ideas when it made DLLs but over time made rather a mess of things resulting in DLL hell. John |
||||
Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 5705 |
To be fair to Win 10, It looks to see if a suitable DLL is already in RAM, if it is then it doesn't load a second copy now. Previous versions did, sometimes leading to RAM getting clogged up with multiple copies of the same thing. Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
Print this page |