[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.
Think this: what is the appeal of Slackware Linux? I think: it allows you full control.
What will remain of that appeal if you make it more like Debian, SuSe, RHEL, Manjaro? Nothing.
Exactly right Eric. No other distro gives you everything that was used to build it right out of the box. That is both powerful and empowering.
Anyway, this brand new "controversial" thread feels refreshing after the (now) traditional "Is Slackware Dead" threads....
PS. I use Slackware, Ubuntu and openSUSE. I am not so impressed by the systemd's boot/shutdown speed, and in fact I do not care about this "speed" thing. Should I?
Last edited by LuckyCyborg; 04-06-2021 at 09:59 AM.
The great disadvantage of traditional Slackware is that you can't start with a small, compact base system like Debian net-install and just add what you want. Well, you can if you're a retired person like me with plenty of time on your hands and a need for something to do during lockdown. I see tracking down missing dependencies as an alternative to sudoku. Most people here probably have better things to do.
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.
Maybe just use one of the BSDs, then? But this brings up a good point re: Linux vs. BSD. What is the "core system" of Linux? The kernel? The userland tools? Both of these combined?
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.
The reason for that though is if you break something by removing a dependency than what was the point the point? Sure it could just warn you, hey you will probably break the following packages in some way but than what happens later when you go to install something else. Either that something else has to have a complete list of all transitive dependencies and its going to re-install a bunch of stuff you removed or it relays on its own dependencies managing their dependencies, which might now be broken.
So you are back to exactly the same situation you have with installing a binary on Slackware, it might not work because something is missing. If the package does not contain all the transitive deps you are back to essentially the same trouble shooting process as on Slackware to try to figure out why its broken too. While I do understand where you are coming from (and made my distro Slackware 20 years ago because of it) I kind think you go the just don't do deps route or the full integrity route.
How old are we talking? I just updated to kernel 5.11.11 in about 2.5 minutes flat.
Because you're a Debian user at heart. You don't get Slackware and you never will. That has always been the case with Debian users. Slackware vs Debian is an age old fight. But it's OK. I flounder using Debian.
How about: The whole system is on the iso. You don't need dependency resolution if you follow the recommendation and run a full install, because there is nothing to resolve. It has all been done for you. If you want to add stuff, by all means do it. The tools are provided.
Does every Linux distribution have to be the same? Gawd, what a dystopian future you're aiming for.
Great. Good for you. I not only use it as my main system, but I also use it on practically every computer in my life. It powers my NAS & media centre, it powers my OpenVPN server, it powers my off-site backup machine, it powers my laptop and work computer. There are not enough Slackware boxes in my life.
"Here's a nickel, kid. Get yourself a better computer." - Condescending Unix user
Well, that was something of a cantankerous post. Hope your day is going OK otherwise.
@gerogerigegege - You fail to understand the nature of the dependency checking problem.
From here
Quote:
Dependency solving is a hard problem in all non-trivialcomponent models. It has first been shown to be NP-complete in 2006 for expressive dependencies such as Debian’s [16]—which allows version predicates (e.g.,python3-aiohttp>= 3.0.1), AND/OR logical connectors, virtual packages,and explicit inter-package conflicts.
Quote:
From the review we conducted one cannot conclude that the problem is solved.
Maybe just use one of the BSDs, then? But this brings up a good point re: Linux vs. BSD. What is the "core system" of Linux? The kernel? The userland tools? Both of these combined?
I would say the kernel, some kind of init system, the main libraries (but not necessarily the graphical ones), coreutils, util-linux, a shell (probably bash), the traditional unix utilities (awk, grep, find, diff and so forth), the main package tools (tar, gzip, bzip2, xz), and perhaps the build tools. The BSDs include those because the traditional way of adding to the base was to build ports locally (which I believe is not the case nowadays). Also of course a package manager.
Think this: what is the appeal of Slackware Linux? I think: it allows you full control.
This reason here is what made me stay with slack, it gives you complete control.
Think of it like a Linux from scratch where you get a fat binary base and some tools to keep it up to date. The rest is up to you.
If we're voting, I vote no on dependency checking. I vote no on system-d. Slackware isn't my only distribution. Linux isn't even my only platform. I like the tool that it is. But if PV our BDFL decides to make changes, I can adapt. I know that the unix philosophy will live on even if dependency checking and system-d were brought on board. As for the speed of change, I compare Slackware to RHEL, which is an extremely long term support distribution, slow moving. I compare Slackware Current to Fedora. Very up to date. But in both cases I consider Slackware superior for my personal needs and much easier to manage, maintain, build software on, customize etc etc etc. I do know Red Hat product like the back of my hand, as well as other distributions, and other operating systems, for job purposes, but Slackware is one of the most elegant operating system for the engineer that I've worked with. ~d
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!
because all it has at the moment are nostalgic ex-Unix users, curious hobbyists [of which I self-define] and some 4chan and Reddit users who use it to look cool.
Come on now man, we don't all fit into a mold like that. I'm not an ex-Unix user, 4chan or redditter using it look 'cool' or whatever; I use it because it's the only distro I've ever gotten cozy with, and since I run it on my main system as a daily driver I don't consider it just a hobbyist's choice.
Quote:
Originally Posted by Lysander666
As I said in another thread recently, it took me two hours - me, as a relatively experienced Slackware user - to recently update an old system's kernel and all its packages. I found it frustrating. In Debian this would have taken about five minutes. The other thing that I was surprised at, which I had forgotten about, was the length of time Slackware took to boot up and shutdown.
Was this just base system packages or was it also third party packages?
I did a mass update on my old ivy bridge box; hadn't updated Slackware on it a while since I built my new system, an entire mass rebuild against the newer glibc had taken place. I don't know how long it took really, I just updated slackpkg first, then ran upgrade-all, came back a little while later and it was done.
I don't think a lengthy rebuild like that is going to be something you'd see in the main releases, I think it's just a fact of using -current.
As for shutdown/boot up speeds.. maybe it's because I run an AMD 5800x with gobs of ram and an NVME ssd, but it slices through boot up stupid fast. I've ran Manjaro on the same rig and haven't found it to be noticeably faster.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.