LinuxQuestions.org
Go Job Hunting at the LQ Job Marketplace
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices

Reply
 
Search this Thread
Old 09-21-2010, 09:19 PM   #1
TobiSGD
Moderator
 
Registered: Dec 2009
Location: Hanover, Germany
Distribution: Gentoo
Posts: 15,349
Blog Entries: 2

Rep: Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978
How do I check dependencies?


Normally a Debian user I want to give Slackware a try. I installed Slackware64-current into Virtualbox and now have a question. Unlike Debian Slackwares packet management tools do not check dependencies, it is up to the user to do this. I already had a look at:
Slackware Package Management
slackpkg
SlackBuilds.org
sbopkg
Slackware Basics
and all of this documentation show me tools to manage packages and that I have to do dependency checks myself.
But NONE of them explains to me how to do that. How should I know what dependencys package XYZ has?

Can someone please explain to me how I do that?
 
Old 09-21-2010, 09:32 PM   #2
kbp
Senior Member
 
Registered: Aug 2009
Posts: 3,758

Rep: Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643Reputation: 643
Programs will specify the prerequisites in their documentation, some are needed to build and some are needed to run.

eg. GNU gcc: http://gcc.gnu.org/install/prerequisites.html

hth
 
Old 09-21-2010, 09:40 PM   #3
Peacedog
Guru
 
Registered: Sep 2003
Location: Danville, VA
Distribution: Slackware, Windows, FreeBSD, OpenBSD, Mac OS X
Posts: 5,292

Rep: Reputation: 167Reputation: 167
Slackbuilds.org lists dependencies in the README files.

http://slackbuilds.org/faq/#deps

Good luck. ;-)
 
Old 09-21-2010, 09:59 PM   #4
D1ver
Member
 
Registered: Jan 2010
Distribution: Slackware 13.37
Posts: 527
Blog Entries: 3

Rep: Reputation: 126Reputation: 126
+1 for slackbuilds.org. It really makes everything very simple. You may want to check out sbopkg which allows you to keep track of updates to packages which have been installed with slackbuilds.org.
 
Old 09-21-2010, 10:05 PM   #5
TobiSGD
Moderator
 
Registered: Dec 2009
Location: Hanover, Germany
Distribution: Gentoo
Posts: 15,349
Blog Entries: 2

Original Poster
Rep: Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978
So that means that a) I have to install a program, in hope that it is well documented, to see what dependencies it may have, or b) I have to look it up SlackBuilds.org?
Wow, I wonder what will happen if I install a program like VLC, which has lot of dependencies, and then I have to check on what this dependencies depend and so on. Maybe I am fed with a silver spoon from my experiences with Debian, but it seems to me there must be a simpler way.

Anyway, thanks for your help.
 
Old 09-21-2010, 10:14 PM   #6
lumak
Member
 
Registered: Aug 2008
Location: Phoenix
Distribution: Arch
Posts: 799
Blog Entries: 32

Rep: Reputation: 109Reputation: 109
Slackware is distributed as a complete OS and there for needs no dependency tracking for its full and complete repository that you should install in full.

Anything extra you want to install is either found at SlackBuilds.org that clearly state all the extra dependencies or you may be able to find precompiled binaries at any of the other unofficial repositories.

Dependency tracking only gets in the way if you were to try and mash it together with an unofficial repository.


On an extra note. If you don't want a program on your computer because you think it takes up too much hardrive space in your 100+ gigs of space, then uninstall it. Most minor programs shouldn't harm the functionality of your system. It's mainly the library packages that would need to be kept. If you want to trim, ap/ xap/ y/ e/ and f/ are all good places to do that. I would keep everything else.
 
Old 09-21-2010, 10:17 PM   #7
aocab
Member
 
Registered: Nov 2009
Location: Heart of Texas
Distribution: Slackware-current
Posts: 138

Rep: Reputation: 30
http://slackwiki.org/Dependency_Discovery
 
Old 09-21-2010, 10:29 PM   #8
Richard Cranium
Senior Member
 
Registered: Apr 2009
Location: Carrollton, Texas
Distribution: Slackware64 14.1
Posts: 1,412

Rep: Reputation: 398Reputation: 398Reputation: 398Reputation: 398
Quote:
Originally Posted by TobiSGD View Post
So that means that a) I have to install a program, in hope that it is well documented, to see what dependencies it may have, or b) I have to look it up SlackBuilds.org?
Wow, I wonder what will happen if I install a program like VLC, which has lot of dependencies, and then I have to check on what this dependencies depend and so on. Maybe I am fed with a silver spoon from my experiences with Debian, but it seems to me there must be a simpler way.

Anyway, thanks for your help.
It is normally much less painful that you make it out to be. As for VLC, Alien Bob has done the work for you: http://www.videolan.org/vlc/download-slackware.html
 
Old 09-21-2010, 10:36 PM   #9
T3slider
Senior Member
 
Registered: Jul 2007
Distribution: Slackware64-14.0
Posts: 2,239

Rep: Reputation: 602Reputation: 602Reputation: 602Reputation: 602Reputation: 602Reputation: 602
Quote:
Originally Posted by TobiSGD View Post
So that means that a) I have to install a program, in hope that it is well documented, to see what dependencies it may have, or b) I have to look it up SlackBuilds.org?
Wow, I wonder what will happen if I install a program like VLC, which has lot of dependencies, and then I have to check on what this dependencies depend and so on. Maybe I am fed with a silver spoon from my experiences with Debian, but it seems to me there must be a simpler way.

Anyway, thanks for your help.
In the rare case of VLC, Alien Bob's repository is *definitely* the place to get it. He builds it statically so dependencies are a non-issue, and you won't need to upgrade a bunch of applications to try to keep VLC in some fragile shared library state. Alien Bob's repository is a very good one for both SlackBuilds and prebuilt packages.

Another good repository for SlackBuilds and prebuilt packages: rworkman's repository.

Both of the above repositories are maintained by two members of the core Slackware team -- and thus they are quite trustworthy.

If you're looking for applications that don't exist in either of those repositories (and you will at some point, since both repositories are relatively small), slackbuilds.org is the best place in my opinion (and sbopkg is a great interface for it). Of course no binary packages are hosted at slackbuilds.org -- just SlackBuilds. Outside of official Slackware packages (and possibly the two above-mentioned repositories hosting binaries), Slackware is very much a source-based distribution. This means you can specify whether you want to include an optional dependency instead of being forced to use it (as in binary-based package distributions, like Debian). I personally dislike gconf, for example, so I make sure to exclude it as a dependency or avoid the application outright if it is a required dependency (fortunately gconf is usually optional). Another good example is JACK -- if JACK is installed, almost everything involving audio will try to build against it. You may not want everything to build against JACK, or you may not want JACK at all. In binary-based distributions, you'd be stuck with JACK unless they hosted a version with JACK support and a version without (which obviously is not a common thing to do, especially since there are many applications that support JACK). You're either forced to install JACK or you're forced to rebuild the application against JACK if support was not included. Binary-based distributions are great if you lack the time or the technical knowledge, but I much prefer source-based package management for those reasons.

sbopkg is a fantastic interface to slackbuilds.org, and makes building dependency trees very easy -- you can create a queue and build and install each package in the order specified. This means you decide what dependencies an application will link against.

Gentoo and arch are other nice source-based distributions (though they are not shipped as a 'full' OS, unlike Slackware), and they include dependency resolution alongside their source-based package manager. Gentoo's USE flags would certainly be handy in dictating optional dependencies in a consistent format, and it is, in my opinion, the most elegant source-based dependency resolving package management system in the GNU/Linux world (of course *BSD's ports system cannot go unmentioned, but it is obviously not available in GNU/Linux).

In the end, Slackware has quirky philosophies -- it keeps the system very simple and puts all of the blame on you, the administrator. With tools like sbopkg and repositories like slackbuilds.org, Slackware is a *much* friendlier distribution than it once was, but its philosophies are unchanged. If you don't see the advantages of source-based package management and/or you do not want to deal with dependency management yourself, perhaps binary-based distributions would be more suitable (or at least dependency-resolving source-based package managers). The lack of dependency resolution is considered a feature of Slackware since you, the system administrator, dictates exactly what you install on the system. Of course this is a half-truth since a full installation of Slackware is completely binary-based (though perhaps fairly generic compared to some other distributions).

Last edited by T3slider; 09-21-2010 at 10:39 PM.
 
Old 09-21-2010, 10:38 PM   #10
TobiSGD
Moderator
 
Registered: Dec 2009
Location: Hanover, Germany
Distribution: Gentoo
Posts: 15,349
Blog Entries: 2

Original Poster
Rep: Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978
Quote:
Originally Posted by lumak View Post
Slackware is distributed as a complete OS and there for needs no dependency tracking for its full and complete repository that you should install in full.

Anything extra you want to install is either found at SlackBuilds.org that clearly state all the extra dependencies or you may be able to find precompiled binaries at any of the other unofficial repositories.

Dependency tracking only gets in the way if you were to try and mash it together with an unofficial repository.


On an extra note. If you don't want a program on your computer because you think it takes up too much hardrive space in your 100+ gigs of space, then uninstall it. Most minor programs shouldn't harm the functionality of your system. It's mainly the library packages that would need to be kept. If you want to trim, ap/ xap/ y/ e/ and f/ are all good places to do that. I would keep everything else.
Currently I run a 40GB SSD in my Laptop, so no 100+ Gigs, and I don't think that every Slackwareuser has 100+ Gigs. I personally like slim systems, that are tailored to my needs, so I don't see the point in installing 5GB of software to this machine to get rid of dependency checking.

@aocab: +1 for this, but is this manual dependency checking anymore? But of course very helpful.
 
Old 09-21-2010, 10:47 PM   #11
the3dfxdude
Member
 
Registered: May 2007
Posts: 315

Rep: Reputation: 84
Sounds like you are talking about pre-built packages. I either find out from the packager, or use ldd on all the binaries and libraries.
 
Old 09-21-2010, 10:57 PM   #12
TobiSGD
Moderator
 
Registered: Dec 2009
Location: Hanover, Germany
Distribution: Gentoo
Posts: 15,349
Blog Entries: 2

Original Poster
Rep: Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978
First, thanks for the links you mentioned and the time I cost you.

I think I am not fully understanding this.
Quote:
Slackware is distributed as a complete OS and there for needs no dependency tracking for its full and complete repository that you should install in full.
Quote:
The lack of dependency resolution is considered a feature of Slackware since you, the system administrator, dictates exactly what you install on the system.
How can I dictate what is installed on my system, when I am supposed to install the whole repository?
Quote:
sbopkg is a fantastic interface to slackbuilds.org, and makes building dependency trees very easy -- you can create a queue and build and install each package in the order specified. This means you decide what dependencies an application will link against.
But when I make a full installation, will it not build against anything in the repository it can?
 
Old 09-21-2010, 11:20 PM   #13
dc_eros
Member
 
Registered: Nov 2006
Distribution: Slackware
Posts: 292

Rep: Reputation: 39
I have an 80GB HD with almost 60GB for slackware (minux swap, testing, windows).

I never have problem with dependency except when I attempt to install tovid and dvdauthor. I almost gone crazy installing dependency after dependency. The rest, there are like 2 to 4 average dependency - slackbuilds.org packages.
 
Old 09-21-2010, 11:55 PM   #14
T3slider
Senior Member
 
Registered: Jul 2007
Distribution: Slackware64-14.0
Posts: 2,239

Rep: Reputation: 602Reputation: 602Reputation: 602Reputation: 602Reputation: 602Reputation: 602
Quote:
Originally Posted by TobiSGD View Post
First, thanks for the links you mentioned and the time I cost you.

I think I am not fully understanding this.How can I dictate what is installed on my system, when I am supposed to install the whole repository?
If you wish to narrow down the installed packages included with the full Slackware installation, you really just need to know what you're doing. This is easiest during installation when you can exclude entire package sets (like kde, e [for emacs], tcl, etc.) and then slim down those that you do wish to install using expert/menu mode. However, you should be able to uninstall entire package sets using slackpkg (for example, `slackpkg remove kde` should, unless I got my syntax wrong, uninstall the kde series of packages). See here for the package set descriptions (and of course note that GNOME is no longer shipped with Slackware). Refining beyond that just requires experience, or picking out the obvious. If you wish to create a truly minimal system then see the various threads on the subject, like this one.
Quote:
Originally Posted by TobiSGD View Post
But when I make a full installation, will it not build against anything in the repository it can?
It depends on the application. Usually the configure script tries to automatically determine the dependencies that are installed and build against it if it is present, but this can usually be prevented by passing a "--without-package" or "--disable-package" option, for example. Sometimes building against a dependency may be disabled by default and you would have to add "--enable-package" or "--with-package" -- though usually when you build using the SlackBuilds from slackbuilds.org any optional dependencies will be listed and might just require passing a parameter to the script instead of modifying the ./configure options explicitly. Take the ffmpeg SlackBuild, for example, which takes several arguments to enable or disable a dependency.

I think it is important to note the distinction between packages included by default with Slackware and third-party packages that you add. Slackware is shipped as a full distribution and is meant to be installed completely. HOWEVER, not every package is linked against every other package, and there is a *lot* that you can exclude without trouble. In general, you should install all of the a/ series, most of the ap/ series unless there is something you obviously do not want, all of the d/ series (unless you want to get into trouble later when you try to compile something from source), the k/ series, most (or all) of the l/ series, most of the n/ series, most of the x/ series, and much of the xap/ series (though you can be more selective here). The other series might include software that you want, but are basically optional.

With experience you'll know if you need something or not and unless you are trying to create a truly minimal system, it isn't too much trouble to pare down a Slackware install.

Now, again with that distinction -- I was definitely referring to third-party applications that you install (usually compiled from source) when I was talking about your ability to decide what gets installed and what doesn't. I currently have 147 packages installed that did not ship with Slackware. 127 of those are from slackbuilds.org (you should note that I work a bit with audio, which definitely adds a lot of dependencies. For completeness' sake, 2 are from Alien Bob, 1 is sbopkg, and the rest [17] I compiled myself). There are optional dependencies that I explicitly did not install because either I did not like the dependency or I would have no use for it. The only way to include/exclude these dependencies at will is to use source-based package management (dependency-resolving source-based package managers have the ability to exclude dependencies as well, but require an extra configuration step...outside of audio/video dependencies, long dependency trees are relatively rare and thus handling them manually doesn't really take much extra time, especially with sbopkg's queues. If it is still too much work for you, however, I would suggest Gentoo or maybe Arch as possible alternative distributions if you still want a source-based distro). I hope you can see the benefit of slackbuilds.org here -- dependencies for every package are clearly listed, and with sbopkg you can create a queue with the proper build order for your desired application and any dependencies with relative ease. This also forces you to read about what dependencies are being installed instead of mindlessly installing anything that is supposedly needed for an application -- but since any good dependency-resolving package manager lets you review the to-be-installed packages before doing anything, this is really a moot point.

I think I've rambled for long enough. Managing a Slackware system is not as difficult as it may seem after this rather lengthy thread (thanks in no small part to my rambling), but it does have certain philosophical differences when compared to other distributions that you must be on board with if you are to be a happy Slacker. If you don't agree with those differences...then there are always other distros out there that may suit your needs/wants better.
 
1 members found this post helpful.
Old 09-22-2010, 01:16 AM   #15
TobiSGD
Moderator
 
Registered: Dec 2009
Location: Hanover, Germany
Distribution: Gentoo
Posts: 15,349
Blog Entries: 2

Original Poster
Rep: Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978Reputation: 3978
Thank you for your really good explanations, I think I understand that now and will poke around with it to see if this will work for me.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to check rpm dependencies? fsloke Linux - General 9 12-07-2011 11:35 AM
usbimg2disk.sh fails on dependencies check zavko Slackware 1 02-11-2010 10:11 AM
check dependencies syeronne Linux - Newbie 1 11-30-2005 09:53 AM
how to check rpm dependencies demmylls Linux - General 9 01-31-2005 12:14 PM
How do I check for dependencies? glenn69 Linux - Newbie 4 05-06-2004 05:28 PM


All times are GMT -5. The time now is 09:29 AM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration