[SOLVED] why does slackware's package manager purposely not resolve dependencies?
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.
Distribution: Started with Slackware - 3.0 1995 Kernel 1.2.13 - Now Slackware Current. Also some FreeBSD.
Posts: 124
Rep:
Quote:
Originally Posted by Cultist
So, suppose I find PackageA.tar.gz on some random source site. I try to compile and install, but it requires packageB, packageC, packageD, and packageE as dependencies to work. Will it tell me this when I try to compile it, or will I have to dig around the site that I downloaded from and hope that it lists the required dependencies? Or can I just expect most tarballs to have dependencies listed inside? I've relied mostly on apt-get in Debian for my software, only compiled a few things and they've never required dependencies I didn't already have
In my experience (Slackware user since 1995) that is exactly how it works. If I try and compile something and it fails because of a missing library it will tell me, I then just go and find the library and install it first. Even with pre-compiled binaries, if I launch a program and it fails it always tells me what is missing. If I am in X and I try and launch a program and it does nothing, I simply flip over to the console I started X from and read the error message which will tell me what is missing.
Slackware is all I know and this is how I have always done it, never gave it much thought, thought this is how all distros worked.
Last edited by Fred-1.2.13; 06-09-2010 at 10:24 AM.
So, suppose I find PackageA.tar.gz on some random source site. I try to compile and install, but it requires packageB, packageC, packageD, and packageE as dependencies to work. Will it tell me this when I try to compile it, or will I have to dig around the site that I downloaded from and hope that it lists the required dependencies? Or can I just expect most tarballs to have dependencies listed inside? I've relied mostly on apt-get in Debian for my software, only compiled a few things and they've never required dependencies I didn't already have
"but it requires packageB, packageC, packageD, and packageE" This assumes there are packageB and packageC somewhere, which in turn assumes there is package management. In fact, it requires libraryA and libraryB. As discussed in other posts, with package management libraryA may come in packageA together with libraryA2, libraryA3, and other gig of potentially harmful stuff.
A good example I remember is Eclipse being dependent on few Mozilla libraries. When Mozilla upgraded Eclipse stopped working. Even though Eclipse has MOZILLA_FIVE_HOME handy for this very case, package management induced brain damage sent many people Google as reflected in forums. Distribution creativity in selecting packages for these libraries was amusing.
"as dependencies to work" Or as dependencies to build. Dependencies to work and dependencies to build from source may be different.
"will I have to dig around the site" Since it is "some random source site", everything is possible. However, you never have to dig since the dependencies will show themselves anyway. You may want to dig or just read what the site says upfront in order to save some effort.
"most tarballs to have dependencies listed inside" I guess yes. Dependencies are listed either directly in some readme or indirectly in configure. Read what configure tells you carefully since if something is missing then configure will try to exclude the code that uses it and still compile the rest. You get binaries with some missing functionality.
Some dependencies are harder to discover. For example, if an app loads some library dynamically and does not report it was not found then you have reduced functionality. For example, a media player may not want to emphasize its dependency on decss.
"I've relied mostly on apt-get in Debian" That is, you used work of Debian developers who created packages for apt-get. Did you notice how many packages are there readily available? This implies that there are either few people who create and maintain hundreds and hundreds of packages or lots and lots of people who create and maintain few packages each. In both cases package management cannot be very hard.
Finally, some software does not need any package management at all since it installs itself to opt or local nicely after download.
The answer to the question in the subject is actually documented. After you install Slackware, you get an email the first time you log in as root. That email states the reason explicitly:
Quote:
Slackware is designed around the idea that the system should be a complete installation kept updated with any official patches. This avoids the mess of dependencies that some other Linux based GNU systems face.
Since you've used a dependency tracking package manager, you know that they become unstable once you add two unofficial repositories. You have no reason to believe that they'll remain consistent with each other, so you can expect the system to break at any time. This essentially limits you to using software from the official repositories. And let me tell you that once you've built a few of your own packages, no single repository will be good enough for you. If you have six unofficial repositories in your sources.list, then it means either a) you're lucky that you haven't run into problems yet, or b) you're doing more work to maintain that setup (e.g. with pinning) than you ever would with Slackware.
I'm going to weigh in here briefly. I've been using Slackware for all of about three days... and I've already decided to ditch Debian, which I've been using for about three years. After just three days of package management the Slackware way, I'll never use an automatic dependency resolution tool again. Slackware kicks *ss!
I've been using Slackware for about 6 years and decided to add a SalixOS repository and slapt-get/gslapt as an experiment. It lasted for about an hour. It was telling me that I had lame and several other packages installed from slackbuilds and Salix, just because they were the same version number, it would not let me delete the Salix version as it wasn't actually installed. If a package manager cannot identify what is installed how can it process instructions on it.
So in conclusion: Slackware has a great package manager that does the job and doesn't require dependency tracking. If Slackware or Slackbuild doesn't have a package I can always cherry pick from a variety of other trusted sources. I can even roll my own and deal with the dependencies on a case by case basis.
If dependency tracking package managers worked all the time I would use them. They make life easy and I like easy, however in my experience they eventually screw your system up. That is why I love Slackware because I know if it is broken it was almost certainly my fault.
If dependency tracking package managers worked all the time I would use them. They make life easy and I like easy, however in my experience they eventually screw your system up. That is why I love Slackware because I know if it is broken it was almost certainly my fault.
samac
Agreed. I've used several distros that have, in my opinion, good package management systems (Debian, Arch, FreeBSD). But, eventually they will usually fail. If something breaks on my Slackware systems it is easier to track down the root cause and repair the problem.
I've used Arch, Debian, Gentoo and never had trouble with the package managers. Judging by the popularity of the 3 distributions, I would guess I'm not the only one. I've used Slackware in the past (in fact it was the only thing I had installed on my machines for over a year or so), I've moved on, and don't see myself going back any time soon.
P.S.: Before I get called a dick and what not, if I'm a dick, then so is everyone posting "installed Slackware, never gonna switch".
I've used Arch, Debian, Gentoo and never had trouble with the package managers. Judging by the popularity of the 3 distributions, I would guess I'm not the only one. I've used Slackware in the past (in fact it was the only thing I had installed on my machines for over a year or so), I've moved on, and don't see myself going back any time soon.
P.S.: Before I get called a dick and what not, if I'm a dick, then so is everyone posting "installed Slackware, never gonna switch".
I've moved on from Debian, Arch, and FreeBSD. However, I don't post on the forums of other distros and announce that fact. But, that is just me. I'm happy with Slackware.
Oh, I get it. So this forum is dedicated to threads in which Slackware users kiss eachother's asses and congratulate one another on their great taste in operating systems?
The 'problem' is some newbie users will input the right combination of keywords in a search engine, read this thread and think that Slackware is the best thing since rohypnol/chloroform and that all the other distributions are broken and only used by newbies who don't know any better. Whenever someone posts a 'pro-windows' thread (or a thread linking to an article claiming Windows "superiority" in any matter) quite a few fellow members bother to post "corrections" - even those fellow members who have moved on from Windows.
FUD is FUD and I'm doing my share to fight it. If you don't like it, start a Slackware-centric forum where Slackware users can continue to misinform one-another and make sure to ban me from it.
P.S.: I don't remember seeing LQ rules by which you can't comment in $DISTRIBUTION subforum unless you currently use $DISTRIBUTION. Perhaps I'll install Slackware on a spare machine (or just claim I did, how will you know the difference) and then continue to post here. Would that be ok with you sir?
Last edited by posixculprit; 06-11-2010 at 08:07 AM.
I started reading this thread then half way through I felt like I was reading something out of Somthingawful or 4chan.
Slackware works this way.
Slackware has alot of user/devs who like it this way.
Slackware is the only linux I can stand besides very very old outdated Redhat.
Slackware is nice this way.
Yes all us slackware users kiss each others butt and smell of poo cause of all that kissing. Nobody is asking anybody to watch 2 girls 1 cup if you watch and feel sick IT"S YOUR OWN BLOODY FREAKING FAULT.
Only people with the word "Moderator" can tell people to GTFO. For everyone else, request (politely) that a mod deal with it.
As to your earlier comment, LQ does have a Slackware-centric forum - you are in it.
Remember the Rules - disagree politely. If you don't like a distro and don't seem to be getting any agreement from the rest of the membership, maybe you need to step away and accept that this is not a battle you can win.
I've been using Slackware for about 6 years and decided to add a SalixOS repository and slapt-get/gslapt as an experiment. It lasted for about an hour. It was telling me that I had lame and several other packages installed from slackbuilds and Salix, just because they were the same version number, it would not let me delete the Salix version as it wasn't actually installed. If a package manager cannot identify what is installed how can it process instructions on it.
So, you're blaming a tool, when you should only blame your inability to use it.
In the same manner, I'm creating my own mplayer packages and I'm replacing the one provided by slackware. Should I blame slackpkg when it removes it and replaces it with the official package, or should I just learn to use slackpkg properly?
I've seen so much misinformation in this thread I can't even start bothering. What's even worse is the hostility towards anyone having a different opinion about anything.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.