[SOLVED] Slackware's pkgtools is horrifically archaic, or why dependency checking shouldn't be considered to be taboo anymore
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.
Slackware's pkgtools is horrifically archaic, or why dependency checking shouldn't be considered to be taboo anymore
Slackware's pkgtools is, to be quite frank, horribly archaic; it doesn't have any sort of dependency checking, despite the fact that the core system is horrifically large (8GBs). Due to it not having dependency checking, you're not able to deselect any packages without risking breaking your entire system, so you'll just have lots and lots of packages that just waste space doing nothing. I've read quite a few posts on here where the conclusion ends up being "8GBs is not a whole lot of space", despite the fact that those 8 gigs could be used for something more useful. Naturally, this wouldn't be a problem if the core system was smaller (see the BSDs), but it isn't, so it's a problem.
Not even the SlackBuilds have dependency checking, despite the fact that all of the BSD ports trees have some sort of dependency checking; even the binary package tools on BSDs have dependency checking!
Dependency checking really shouldn't be viewed as taboo anymore; all of the (major) BSDs have it, and basically all */Linux distros have it. Even CRUX has it; even CRUX!
Edit: Ok, I'm marking this thread as solved. I feel like I've gotten some reasonable answers, despite my admittedly crappy post. I'm sorry for upsetting people; it wasn't my intention to do so.
Last edited by gerogerigegege; 04-08-2021 at 01:54 AM.
Reason: Ending the thread
Freshly registered and their first post being on a controversial topic? Anyway, I'll get my piece out...
Dependency checking can be handy in some cases and frustrating in others. Slackware has decided years ago that its solution is to simply require you to use a relatively large install base and resolving all dependencies with it. SBo provides all dependencies in parseable info files that users or scripts can use to determine what dependencies are needed.
Is this the ideal system for everyone? Absolutely not and it was never intended to be! But it is the ideal system for some. I like having no dependency resolution with Slackware because it makes it super easy to upgrade my system as I see fit. If I want to upgrade the graphic's stack (which I've done on the last two stable releases for better GPU support), I don't have to worry about the packaging system getting in my way.
I appreciate the Slackware base providing a good foundation of a system. No, I don't use xfce, fluxbox, windowmaker, or other DEs/WMs since I am happy with KDE, but I know a lot of people like those WMs/DEs and I am not worried about a few hundred MB or 1-2 GB that might be taken up by those unneeded (for me) packages. I have a 1TB NVMe drive that I partitioned into 250GB for the system and the remaining ~750GB for my /home partition.
And really, 8GB on *most* systems is minimal. Yes, there will always be systems that are more limited in storage space, but they are getting rare. I just had my dad order a relatively top-of-the-line SSD for his aging laptop. He's getting a 250GB Samsung 870 EVO SSD for $40US. The full 8GB is 3.2% of that drive's capacity. If Slackware ends up taking 20GB, that's still less than $4 of SSD space.
I don't have a dog in the fight about whether Pat should implement dependency checking. All I ask is package removals continue the same sane way as currently practiced -- removing only the files of that package and not removing a boat load of other packages. Dependency checking should indeed pull in whatever packages are needed, but not forcibly remove packages. To me this is where dependency checking is horribly mangled on all other distros.
Slackware amply demonstrates that it's an unnecessary complication because despite not having it it seems to work just fine and is much easier to fix when things go awry. KISS applies.
8GB really is nothing in terms of storage and has been for a long long time. Not enough now for even a single "4K" movie, nor any but small "indie" or historical games (the 15 year old PS3 had games typically in the 6-20GB range but some much larger).
No dependency check because there is no official binaries repository. Slackware is just all what is on installation DVD. For binaries on DVD all dependencies are fulfilled. Everything outside DVD is just not Slackware. One needs to take care by itself for dependencies for custom packages. It is not as easy as in Debian. Everything has its own price. For example it is sometimes very difficult to remove package from Debian. Effects can be really surprising. Not by hand but with package management system. Once I tried to remove small package - effect was all Gnome desktop was removed. That's Debian.
Dependency checking really shouldn't be viewed as taboo anymore; all of the (major) BSDs have it, and basically all */Linux distros have it. Even CRUX has it; even CRUX!
When there are so many distributions picking their own way of doing things, some people just want distro A to do exactly what distro B is doing.
Personally, I was a Windows noob i.e. not even a power user. I migrated to Ubuntu > distrohopped countless in between > Debian > Arch > Slackware. On coming onto Slackware, We(including my brother also a noob Windows user) enjoyed Slackware's way of doing things so much more that the annoyances of other distros were realized by us to be just the distros' annoyances. We were quite surprised being a novice GUI folks that changing a simple text file is responsible for all the settings in the system - Something we hadn't thought about in our whole Windows use span!
Coming to the package management, the complete set of libraries & wonderful software coming along with it suggested that this is meant to be a goto system. In many Slackware deployments I have managed in my family, everyone asked me later what is this system that runs so smooth for years. They didn't even know it was Slackware. I use Windows too in my other laptop and the more I use that, the more I admire Slackware way of doing things - Just set me once & do your work.
Last edited by medictruck; 04-05-2021 at 10:38 PM.
I doubt he'll post again but he is probably reloading this page like an eager beaver. Dr. Jennifer Golbeck says, "Internet Trolls Are Narcissists, Psychopaths, and Sadists." https://www.psychologytoday.com/us/b...hs-and-sadists
Honestly? When's the last time you had to chase down dependencies? Like if you're using current, I haven't had to install a hard dependency on anything in over a year. OBS took a lot, but most multimedia things do. (And that was 1.5 years ago.)
Distribution: Slackware64 {15.0,-current}, FreeBSD, stuff on QEMU
Posts: 452
Rep:
Why, so removing a user-facing program can take out some libraries as well? -current's core collection of libraries is pretty much as good as it gets. Chipping away at it all willy-nilly is like going to a five-star steakhouse and filling up on bread.
Bleh, why are you all assuming I'm trolling? Just because I think Slackware should do some things differently, and that thing just happens to be a controversial thing, doesn't mean I'm trolling; grow up. Differing opinions != trolling.
I just think that Slackware should handle the core system and packages similar to how the major BSDs handle it (Free, Open, Net), i.e. have a small core system (either ultra-minimal like in the case of Free, or somewhat minimal with X like in the case of Net and Open) and have a sane package/ports system that has dependency checking. I explicitly stated that Slackware shouldn't check for dependencies in the core system if it was minimal, because that'd be stupid, but the core system has so much stuff in it that it really doesn't make any sense.
Dependency checking doesn't have to be some sort of over-complicated hell, just do it like how the BSDs do it.
Slackware's pkgtools is, to be quite frank, horribly archaic; it doesn't have any sort of dependency checking, despite the fact that the core system is horrifically large (8GBs). Due to it not having dependency checking, you're not able to deselect any packages without risking breaking your entire system, so you'll just have lots and lots of packages that just waste space doing nothing. I've read quite a few posts on here where the conclusion ends up being "8GBs is not a whole lot of space", despite the fact that those 8 gigs could be used for something more useful. Naturally, this wouldn't be a problem if the core system was smaller (see the BSDs), but it isn't, so it's a problem.
Not even the SlackBuilds have dependency checking, despite the fact that all of the BSD ports trees have some sort of dependency checking; even the binary package tools on BSDs have dependency checking!
Dependency checking really shouldn't be viewed as taboo anymore; all of the (major) BSDs have it, and basically all */Linux distros have it. Even CRUX has it; even CRUX!
I confess that your "long-titled" post has brought a smile to my face. I understand your frustration, but I have to warn you that I do not think that you will be satisfied with the replies. I suggest that you accept your perception that Slackware is flawed. Actually most users here improve the distribution and are happy to discuss how they implemented their solutions. For example I changed the init system to runit to improve the booting up time. I even set out to design my own package manger, but I got derailed in other projects now. In retrospect, very few distributions allow such intrusive interventions, and that is why we love Slackware.
Slackware is indeed archiac. Update it and do let us know how you achieved it. You will enjoy it!
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.