classic linux thing that happened a couple of weeks ago, is i was looking up what music players had good visualisations, like the milkdrop kind we all remember. one was a standalone app that could respond to any audio on the computer. cool! so i hit up my package manager. but i noticed something. the installation seemed to require the removal of a few packages and replacement with some other ones. it wanted to remove the audio subsystem on my computer?? and change it to a different one? Linux

Follow

@jk OK so this particular thing requires a specific audio system (that is probably obsolete) and can't use wrappers. That makes sense to me. And the package manager may have correctly determined that in order to satisfy that requirement, it must replace the audio system.

I feel that this is not a helpful suggestion and the package manager is too clever. Although in my experience that usually results in confusing errors where I have to try 10 different things to figure out what it wants.

@madewokherd maybe i'm naive, but i just think than an operating system with components so interdependent and tightly-coupled that installing one thing requires the removal of another thing just isn't a good design? it's definitely too clever for its own good. if this had happened on windows, i would've downloaded the program, it would've crashed on startup, i would have googled the error, and eventually got it working by copying a DLL file into the program's working directory or something

@madewokherd whether that series of events is 'better' is extremely subjective. i personally think it is better, but the general opinion in the linux world does absolutely not trend in that direction at all. even suggesting that is more desirable than wrestling with the package manager until your entire system is broken is a very upsetting prospect to many

@jk In practice Windows has a lot fewer "system packages" to begin with. Mostly there's OS libraries and stuff shipping with the application.

I feel like a middle ground is possible where your libraries can be shared between applications but they're not "global installs" so installing one doesn't require removing another.

Even a "package manager" that emulates the Windows thing of dropping in a dll would actually be pretty good imo, but to my knowledge no one is doing that.

@jk I'd actually love to have something where I could drop in an old Linux binary and it goes "oh, you need a whole 32-bit Linux stack with an obsolete version of GTK. I'll just shove that in a directory somewhere so it doesn't interfere with your core system".

@madewokherd absolutely! i've long advocated for a kind of "upside-down linux" filesystem hierarchy, where all files (bin, lib, docs, var, configs) for a program go in one directory rather than scattered everywhere all over. ideally then you wouldn't really need a package manager. the space wasted by multiple copies of shared objects could ideally be mitigated through block-level deduplication in the filesystem, symlinks, or not at all because it doesn't actually matter that much

@jk The primary concern with duplication isn't space, it's security. If each application ships with its own copy of a library then they tend to not get security updates.

@madewokherd if this is as true as you say, then the package manager is sleeping on the job, and should probably be more oriented around slurping lists of CVEs and maintaining some kind of blocklist for ld to save the computer from annihilation

Sign in to participate in the conversation
Computer Fairies

Computer Fairies is a Mastodon instance that aims to be as queer, friendly and furry as possible. We welcome all kinds of computer fairies!