Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 00:09 04 Dec 2021 Privacy Policy
Jump to

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

Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 7750
Posted: 07:28am 20 Oct 2021
Copy link to clipboard 
Print this post

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: Netherlands
Posts: 952
Posted: 08:31am 20 Oct 2021
Copy link to clipboard 
Print this post

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
If nothing goes right ... turn left
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 1943
Posted: 08:48am 20 Oct 2021
Copy link to clipboard 
Print this post

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
CMM2 Welcome Tape, Creaky old text adventures
 
scruss
Newbie

Joined: 20/09/2021
Location: Canada
Posts: 34
Posted: 08:22pm 20 Oct 2021
Copy link to clipboard 
Print this post

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

Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 7750
Posted: 01:09am 21 Oct 2021
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 2534
Posted: 06:49am 21 Oct 2021
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 1196
Posted: 07:08am 21 Oct 2021
Copy link to clipboard 
Print this post

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
 
Print this page


To reply to this topic, you need to log in.

© JAQ Software 2021