[SOLVED] Some 'how to & why' questions about 'Dependency Checking'...
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
The trouble with ldd and with reading the output from 'configure' when building from source, is that they don't usually tell you the name of the package you need -just the library or header or pkg-config file it was looking for.
Any good dependency resolver will always rely on *lots* of manually-produced and maintained data -precisely why Slackware will never have it.
Click here to see the post LQ members have rated as the most helpful post in this thread.
Here is my understanding of package installation at present:
1) Installing packages ‘changes’ you Slackware installation.
2) ‘Changes’ might hurt your installation which is why you must check dependencies.
3) Some packages that you want to install are dependant on other packages and those packages may or may not be dependant on even other packages.
4) Slackware does not install the underlying packages automatically, you must make the ‘install – don’t install’ decision yourself.
1) Correct.
2) No. Missing dependencies will only "hurt" whatever package you installed without making sure its deps where installed.
3) That's right.
4) Not only does slackware not install them, it does not tell you what they are (automatically).
Quote:
Originally Posted by Robert.Thompson
Here are my questions and, if possible, I am looking for 'newbie' level responses to them:
1) When I review the underlying packages, what am I looking for?
2) How would I know if I should install them or not?
3) Is there a ‘method’ or ‘S.O.P.’ for checking dependencies?
4) Are there any really big ‘red flags’ to watch out for?
1) There are several ways to check if a certain package has dependencies or not:
1.1) If you don't have a full install and want to know if some official package has dependencies or not: check here
1.2) If you are installing a non-official package, then the package creator "should" provide this info to you.
1.2.1) If he doesn't, you can try executing whatever it is you installed and see if it complains about something
1.2.2) You can also use the 'ldd' command to know what libraries is an binary linked to.
1.2.3) If the package is compiled by you from source, then it will complain if deps are missing.
2) Well, you kinda have to install them... unless you recompile the program without the dependency.
3) See point 1
4) Not really
I just install/run whatever package then fix if some package is missing. However, most of those multimedia packages have tons of dependency (dependency that has its own dependency and so on). Others have fewer dependencies.
I have read, and re-read, the posts here (as well as the linked posts) and, for a newbie, package installation and dependency checking is a 'crapshoot'.
Given the input that I have received here, safe package installation and dependency checking, for a newbie, is a 3 step process:
Back up your system prior to installing a package.
Attempt to install the package:
if there are no dependency issues, the package will be installed, for better or for worse.
if there are dependency issues, install them and then install the original package.
After # 1 or # 2, if your system no longer works properly, reinstall your back up and ask questions in this forum.
This is because there is no simple, nor 100% definitive, answer to the question:
Quote:
How do you know if you should, or should not, install a dependency?
'Back up and roll the dice'
Thanks again for your time!
Marking as SOLVED.
Last edited by Robert.Thompson; 02-22-2011 at 11:43 AM.
If you install using SlackBuilds from slackbuilds.org all dependencies are listed (both required and some optional dependencies). Any required dependencies must be installed, while any optional dependencies may be installed if you want the added functionality that the dependency would provide. If you are not using slackbuilds.org, usually dependencies for a given application are listed on their website or in a README or INSTALL file within the extracted source archive. There are very few applications that leave dependency information up to you to find, and assuming you are compiling from source usually the ./configure step will fail telling you which dependency is missing (assuming the application uses autoconf). There shouldn't be any need to 'guess' at dependencies, which is the incorrect conclusion you seem to have come to. Usually you wouldn't even be able to build an application without all of the dependencies available and the build would fail (and you could go install the dependency it mentions). Of course, sometimes there can be run-time dependencies but hopefully those would be included with the documentation in the source archive.
The need to guess at dependencies is really only needed when you use binaries instead of compiling from source, and again, depending on where you get the binary package from, the dependencies would still probably be listed. For example, slacky.eu provides both binary packages and SlackBuilds and provides all dependency information in a separate text file.
If you get a random binary package from the middle of nowhere (which I myself would be hesitant to install...), then you may have to guess at dependencies...but even if you do like to live dangerously and install such packages `ldd` may help you discover what you're missing anyway.
The only situation that matches your last post is when an inexperienced Slackware user tries to install a minimal system or uninstall official Slackware packages to save hard drive space. That is a legitimate situation where you may not know which packages depend on the package you're uninstalling (unless you're familiar enough with the system). And even then there have been some efforts to make that information available.
I think my problem is that I do not know how to properly express myself, sorry.
From the posts I learned a lot about how to 'identify' dependencies.
The problem is that I do not understand how to 'check the them'. What am I to check? How would I know that I shouldn't install a particular dependency?
Do to my lack of understanding, I see no point in checking dependencies because I do not know what I am looking for or what I am try to accomplish. I do know that 'checking dependencies' is what separates Slackware from most of the other distro's, so, it must be something that I should learn how to do, right?
I hope that this is more clear.
Thanks,
Last edited by Robert.Thompson; 02-22-2011 at 03:15 PM.
Reason: typo's
1) There are several ways to check if a certain package has dependencies or not:
1.1) If you don't have a full install and want to know if some official package has dependencies or not: check here
1.2) If you are installing a non-official package, then the package creator "should" provide this info to you.
1.2.1) If he doesn't, you can try executing whatever it is you installed and see if it complains about something
1.2.2) You can also use the 'ldd' command to know what libraries is an binary linked to.
1.2.3) If the package is compiled by you from source, then it will complain if deps are missing.
Quote:
Originally Posted by T3slider
If you install using SlackBuilds from slackbuilds.org all dependencies are listed (both required and some optional dependencies). Any required dependencies must be installed, while any optional dependencies may be installed if you want the added functionality that the dependency would provide. If you are not using slackbuilds.org, usually dependencies for a given application are listed on their website or in a README or INSTALL file within the extracted source archive. There are very few applications that leave dependency information up to you to find, and assuming you are compiling from source usually the ./configure step will fail telling you which dependency is missing (assuming the application uses autoconf). There shouldn't be any need to 'guess' at dependencies, which is the incorrect conclusion you seem to have come to. Usually you wouldn't even be able to build an application without all of the dependencies available and the build would fail (and you could go install the dependency it mentions). Of course, sometimes there can be run-time dependencies but hopefully those would be included with the documentation in the source archive.
slax-dude and t3slider already answered you: which part needs to be clarified?
if deps are needed you have to install 'em, if they are optional you simply can choose to install them or not.
slax-dude and t3slider already answered you: which part needs to be clarified?
if deps are needed you have to install 'em, if they are optional you simply can choose to install them or not.
Sorry, is that all there is to it?
I thought that I had to check or review or verify or audit or do something important (and unknown to me) before I installed them!
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.