The Linux Thread - The Autist's OS of Choice

  • 🏰 Deploying update to the Tatarus security page. If you encounter issues, post here.
  • Want to keep track of this thread?
    Accounts can bookmark posts, watch threads for updates, and jump back to where you stopped reading.
    Create account
Technically your package managers already do this, but their two main faults are a) they aren't standardized and every distro has their own package manager that basically does the same thing, which also mean that when you pull an offline installer package it can only be used with that package manager and b) they default to centralized online-only form of software distribution.
Windows installers aren't all the same, either, and MS Store packages typically do not even give you a choice where to install them to, dumping everything into C: by default.

Besides, Discover gives you the possibility to choose between Flatpaks and normal repo items, if both are available. Flatpaks can be managed with apps like Warehouse.
 
I always find this amusing how people bang on about this being a problem constantly.

I haven't had issues installing software in years. I have also built RPMs, debs and arch packages and it isn't difficult to do any of this.

Almost all these installers on both Linux and windows are nothing other than compressed archive with some scripts. Pretending that Windows is superior for whatever reason is completely asinine and tells me you really have fucking clue what you are on about.
What I find amusing more is that for a single mention of "Windows vs Linux" in my post about the usefulness of LLM's in software development, I got like ten off-topic responses talking about me. Then I'll get the slap on the wrist from the staff because others can't ignore me saying things like this. But I want to talk about Linux, not about me.

Now if you leave all the grudges aside and re-read what I said, you'll know what I mean. Every package manager does the same thing. And every distro works much the same way. You could make a packaging format that's distro agnostic and does the same thing, for example throwing the software files in /opt/ and symlinking it to /bin/, then leaving a script to undo these changes. Offline, distro agnostic, mimics the way software distribution works on MS-DOS/Windows. Both AppImage and Flatpak over-engineer this. AppImage is nice, but it creates the complexity of a non-standard format that requires the right packages to run them, and Flatpak is Flatpak, overengineered to shit. And by saying "mimicing Windows" I don't mean "make it so piss easy like it is on Windows so that Windows users can flock to Linux" since I know that's the default assumption, no. I mean make it so that I download a binary executable, that I can give the execution flag and run from the terminal for an installation script like that to run. That way I can keep that file on a portable drive and be able to install it on any distro now or in the future without needing an Internet connection or a separate package for each distro. That's it, it's a very simple concept.
Windows installers aren't all the same, either, and MS Store packages typically do not even give you a choice where to install them to, dumping everything into C: by default.

Besides, Discover gives you the possibility to choose between Flatpaks and normal repo items, if both are available. Flatpaks can be managed with apps like Warehouse.
When I say "Windows installer" I mean a classic Win32 installer. For example, NSIS, the GNU GPL licensed framework for it. Making one is quite literally writing a script. The only thing that's different between something like NSIS and doing some form of a pre-packaged Bash script is that NSIS is streamlined into plopping an installer wizard executable that contains the program files and the installer script. What I'm suggesting is NSIS for Linux, so that software developers can package their software into an installer wizard like that, that is distro agnostic and does what you'd expect it to do. The only thing that may be controversial here is that I'm suggesting to do something in the Linux world that is done in the Windows world, and that always causes a visceral reaction from Linux people.
 
that always causes a visceral reaction from Linux people
you can come up with the perfect solution and all it takes is a few autistic troons who don't like it to fracture the ecosystem even further. The only way you could defeat this is with insane amounts of funding and marketing, and even then it wouldn't capture the entire linux desktop ecosystem.
 
@Slav Power senpai, I missed you and your yiffer textwalls in the Linux thread… but please for the love of God, go back to the Windows thread and sperg there. And then take a hiatus for another 5-8 months because you got on Null’s nerves again and he called you out on MATI.
 
which also mean that when you pull an offline installer package it can only be used with that package manager and
its important to remember just because a package shares the same source code with upstream the package itself is maintained and updated by the distro, so it doesnt matter that apt isnt the same thing as dnf. the package is still a debian package or a fedora package
 
linux desktop ecosystem
My proposition would be universal across every distro. Be it CLI or GUI, Debian, Fedora or Arch. As long as it uses the Linux kernel and adheres to the FHS, this type of installer wizard would work. The Linux kernel is what executes the binaries, and FHS is how you deploy the software. /opt is there exactly for installing software like this. Software can check if it's invoked from the command line or from a GUI and launch the right form of an installation wizard so you don't need a DE to use it, and you could bundle both variants in the same installer binary.
Most importantly, this would give software developers one way to be able to distribute their software across all distros, which would incentivize more support of Linux, which is something Linux users want. This has always been the big problem, that again, even Linus Torvalds said is a problem that he personally experiences, where AppImages are the next best solution but somewhat restricted, and Flatpaks are much like Wayland, an overengineered solution to a simple problem, and the one universal minimal solution has been there ever since the Linux kernel was a thing. A binary that unpacks the software to /opt and symlinks it to /bin or whatever the best way to have it seen by the system is.

I don't see anything controversial with this approach. If you don't like it you could just not use it. Just like you're not forced to use Flatpaks if you hate how complex they are. I just think this would be the most elegant and minimalist idea for software distribution on Linux.
its important to remember just because a package shares the same source code with upstream the package itself is maintained and updated by the distro, so it doesnt matter that apt isnt the same thing as dnf. the package is still a debian package or a fedora package
This "the distro maintains the package" is another major issue. The distro maintainers don't have to maintain a package for something like a web browser, or any package that isn't a fundamental system package that needs to be tailored to a specific distro. It's the reason why people don't like Debian for example, it makes every package outdated, even something that realistically doesn't need to be kept that old, like Neovim. Flatpak solves that, and works across all distros, but is overly complicated. AppImage, also, fixes that, but it can't automatically update and it's restrictive in it's packaging. But both Flatpak and AppImage prove that no, the distro doesn't need to mandate which packages and which specific versions you can or cannot install, because they will simply work, they're pre-compiled binaries that don't need the distro's special sauce to run. And by doing what Windows does, which is throw all the dependencies with the program, disk space be damned, that solves the issues that mandate the distros to babysit the package versions of all software.

Let's face it, apt, rpm, pacman, Linux's package management is flawed, and with how popular and praised Flatpak is it's not a theory, it's a fact, since Flatpak fixes those issues that stem from Linux distros insisting on doing things in a more convoluted, restrictive way for benefits that might've mattered in the 70's when Unix was a thing, or 90's when home computers were yet to see 1GB of disk space, but nowadays 256GB gives you more than enough buffer space for redundant dependency binaries. That's the only real issue classic package managers solve by introdusing all the problems Flatpak/AppImage solve. And the way software works on Linux is not that different from Windows. It's a binary, that links up to dependcy binaries if it needs to, and the kernel runs the binary, so nothing's stopping anyone from creating installation wizards for Linux.
 
Last edited:
What I find amusing more is that for a single mention of "Windows vs Linux" in my post about the usefulness of LLM's in software development, I got like ten off-topic responses talking about me. Then I'll get the slap on the wrist from the staff because others can't ignore me saying things like this. But I want to talk about Linux, not about me.
You get a slap on the wrist for sperging out and posting a 5 paragraph essay about shit no one cared about because someone has a different opinion than you. This entire post could be summed up as "I like the way windows installs application, and think flatpak and appimage are too over engineered. I also like offline installers for application, which Linux does not have outside those two thing." But instead people now have to go through a wall of text to ignore your niggerbabble.

and the one universal minimal solution has been there ever since the Linux kernel was a thing. A binary that unpacks the software to /opt and symlinks it to /bin or whatever the best way to have it seen by the system is.
Until you run a LTS distro that can't run the application because a dependency is too old, which is why Linux doesn't do that. I wonder if we could maybe ship the application with the dependencies baked in, or better yet, make a stable target for applications to base off of entirely seperated from the distro itself! Oh wait...
 
Now if you leave all the grudges aside and re-read what I said, you'll know what I mean. Every package manager does the same thing. And every distro works much the same way. You could make a packaging format that's distro agnostic and does the same thing, for example throwing the software files in /opt/ and symlinking it to /bin/, then leaving a script to undo these changes. Offline, distro agnostic, mimics the way software distribution works on MS-DOS/Windows. Both AppImage and Flatpak over-engineer this. AppImage is nice, but it creates the complexity of a non-standard format that requires the right packages to run them, and Flatpak is Flatpak, overengineered to shit. And by saying "mimicing Windows" I don't mean "make it so piss easy like it is on Windows so that Windows users can flock to Linux" since I know that's the default assumption, no. I mean make it so that I download a binary executable, that I can give the execution flag and run from the terminal for an installation script like that to run. That way I can keep that file on a portable drive and be able to install it on any distro now or in the future without needing an Internet connection or a separate package for each distro. That's it, it's a very simple concept.
1789680097265.png
For 99% of computer users the way it works on Linux is actually better. Vast majority of users nowadays don't install anything. The rest will maybe install steam, or will be served well by packages in mainstream distros.

Also you can just statically link everything, no? You will then have your universal binary, or am I missing something?
 
You could make a packaging format that's distro agnostic and does the same thing, for example throwing the software files in /opt/ and symlinking it to /bin/, then leaving a script to undo these changes. Offline, distro agnostic, mimics the way software distribution works on MS-DOS/Windows.
/opt should generally receive more love.

Both AppImage and Flatpak over-engineer this. AppImage is nice, but it creates the complexity of a non-standard format that requires the right packages to run them, and Flatpak is Flatpak, overengineered to shit.
My issue with appimages is that they go into the home dir by default. Apps should go into /opt or /usr/bin instead and be accessible to anyone, IMO.

And by saying "mimicing Windows" I don't mean "make it so piss easy like it is on Windows so that Windows users can flock to Linux" since I know that's the default assumption, no. I mean make it so that I download a binary executable, that I can give the execution flag and run from the terminal for an installation script like that to run. That way I can keep that file on a portable drive and be able to install it on any distro now or in the future without needing an Internet connection or a separate package for each distro. That's it, it's a very simple concept.
That would solve problems, so the fandom called Linux community will say No.

This has always been the big problem, that again, even Linus Torvalds said is a problem that he personally experiences, where AppImages are the next best solution but somewhat restricted, and Flatpaks are much like Wayland, an overengineered solution to a simple problem, and the one universal minimal solution has been there ever since the Linux kernel was a thing. A binary that unpacks the software to /opt and symlinks it to /bin or whatever the best way to have it seen by the system is.
Have you checked out AppImageLauncher yet?
 
I wonder if we could maybe ship the application with the dependencies baked in, or better yet, make a stable target for applications to base off of entirely seperated from the distro itself!
Flatpak/AppImage. A solution to a real problem. You could drop the dependencies alongside the binary in /opt and that'd be that. The whole shared dependencies thing only helped in reducing disk space waste by keeping redundant dependencies, which again, is a non-issue nowadays when it won't sum up to even 1GB out of 256/512GB on an average system. And what I don't understand is why no one bothered to make a way to build installer binaries like this if everything about the way software runs on Linux is down to the kernel, that's the same across all distros.
For 99% of computer users the way it works on Linux is actually better.
Not if the distro defaults to using it's own repo that will have a package that doesn't need to be maintained by it outdated. But Mint ships with Flatpak by default so that issue is getting better. I still think that the installer route would've been the cleanest way to go about it, zero external dependencies needed to deploy software offline or online. I do believe a form of offline distribution is good, so I guess Flatpak and AppImage are the only two forms of distributions you need to realistically target nowadays, but still, /opt seems cleaner. As native as it can be.
Have you checked out AppImageLauncher yet?
Good to keep in mind, thanks. By the way, even Linus admired the way AppImages go about software distribution on Linux. They're not perfect, but like I said, they'll neatly go in tandem with Flatpaks for devs to not have to deal with catering to every distro separately when all they need to run their software is the Linux kernel.
 
My issue with appimages is that they go into the home dir by default. Apps should go into /opt or /usr/bin instead and be accessible to anyone, IMO.
It's not like it's difficult to copy them to the place which is relevant.

If I have a static binary/godawful Electron app AppImage that I will solely be using, it gets copied into ~/bin.

If I have a static binary/shell script that I am likely to run as root it gets copied (or linked to my local copy of my config repository) into /usr/local/bin.
 
My issue with appimages is that they go into the home dir by default. Apps should go into /opt or /usr/bin instead and be accessible to anyone, IMO.
/usr/bin is typically where the package manager puts stuff. So /opt is would be the most correct place.




I wondered what the difference was between /opt and /usr/local/bin
/usr/local is a place to install files built by the administrator, typically by using the make command (e.g., ./configure; make; make install). The idea is to avoid clashes with files that are part of the operating system, which would either be overwritten or overwrite the local ones otherwise (e.g., /usr/bin/foo is part of the OS while /usr/local/bin/foo is a local alternative).
That would solve problems, so the fandom called Linux community will say No.
What specific problem is there? I rarely have issues installing packages on distros these days. Even the stupid GUIs work (most of the time) these days and I hate them.
Until you run a LTS distro that can't run the application because a dependency is too old, which is why Linux doesn't do that. I wonder if we could maybe ship the application with the dependencies baked in, or better yet, make a stable target for applications to base off of entirely seperated from the distro itself! Oh wait...
Most third-party applications normally just include anything they need. TBH, if it is a pre-compiled binary and there is a tarball, you can simply just extract the tarball, put the directory in your path, and you are done.

I was using CENTOS 7.0 in 2023 (the distro was almost EOL) at work, and I could install stuff by grabbing the binary and just sticking it in /opt or /bin very rarely will you be unable to have a third-party library, not unless it is expecting files to exist in certain places in the system e.g. Davinci Resolve does this, and that is why is it a bitch to get running on anything other than what they specifically support.

Other applications you can build from source e.g. Tmux, Vim, Neovim, Git, and GZDoom are relatively trivial to build from source.
 
Last edited:
What specific problem is there?
The problem is more on the developer side than it is on the user side. How do you package your software so that you can distribute it across the entire Linux ecosystem without having to dedicate your time to cater to every separate distro separately. If it's the distro maintainers that do it for you, then with LTS distros like Debian you'll have the issue where users are getting older versions of your package than they should. It's the distro's fault, but they'll likely complain to you. By making the software distribution hostile to the developer, you discourage supporting Linux, so Linux users ultimately suffer by having a poorer software ecosystem to choose from.

The guy from your avatar talked all about it here, you can listen to him if me writing long posts is an issue.
 
/usr/bin is typically where the package manager puts stuff. So /opt is would be the most correct place.
Yeah. I normally only put symlinks into /usr/bin pointing to my /opt installations.

What specific problem is there?
The problem Slav Power described and which AppImageLauncher kinda solves. Kinda. It's on the user's side, not the developer's.
 
The problem is more on the developer side than it is on the user side. How do you package your software so that you can distribute it across the entire Linux ecosystem without having to dedicate your time to cater to every separate distro separately.
You can literally stick it in a tarball. I've already explained this to you before I am sure.
If it's the distro maintainers that do it for you, then with LTS distros like Debian you'll have the issue where users are getting older versions of your package than they should. It's the distro's fault, but they'll likely complain to you.
Why is it an issue they get an older version of the package? LTS distro makes it very clear that they support certain specific versions of things. Often you don't need the newest version of the software all the time.

Often there are many ways to install the same piece of software.
By making the software distribution hostile to the developer, you discourage supporting Linux, so Linux users ultimately suffer by having a poorer software ecosystem to choose from.
It isn't hostile to the developer, though. You are just pretending it is.

WTF are you on about "poorer software ecosystem"?
https://youtube.com/watch?v=Pzl1B7nB9KcThe guy from your avatar talked all about it here, you can listen to him if me writing long posts is an issue.
Linus Torvolds is not a god, and he is frequently wrong about many things. Also, I don't care what most Linux YouTubers say, as they normally have no fucking idea what they are talking about, so please don't bother linking me them as I have no interest in listening to them. There are a handful of people on YouTube that aren't talking out of their backside when it comes to Linux.
 
The problem Slav Power described and which AppImageLauncher kinda solves. Kinda.
AppImage* kinda solves. It's imperfect and AppImageLauncher is another half-measure to improve this imperfect solution but it's still a pretty good solution to the problem of making it easy for the developers of the software to easily package and distribute it. On both Windows and Mac it's all streamlined, you get one or two installers for each platform and you're done, you now cover everyone using those platforms. On Linux it continues to be a pain for no good reason as AppImage and Flatpak, decent solutions to this problem, show that it has nothing to do with the fact that there are different distros.

The existence and popularity of Flatpak and AppImage proves that this is a problem software developers suffer from. They should be in charge which versions of their packages they should be able to distribute, and they should be able to distribute them to every Linux user. And Linux users are the ones that ultimately lose with this issue remaining unsolved, an operating system is no good if there's no software worth running on it, so why artificially limit it's availability?

My /opt installer proposition is something that would've worked if it happened in the 90's. Nowadays making AppImage and Flatpaks as popular as they can be is the next best thing. Flatpaks for the online Linux way of distribution, AppImage for the static portable offline distribution. And of course popularize distros coming pre-packaged with support for both OOTB.
He should just use Windows and not bother us.
Okay. Who are you, the Linux users? What is Linux? What should it be? How should it be used? Why is it that you're hostile to the idea of giving the users a choice? Do you believe that Linux should restrict certain options? Because as far as I'm aware, Linux is just a kernel, around which anyone can build any OS they want with any features they want. You could so damn choose not to use the things I'm proposing and ignore their existence, but why should you and people like you be the ones that dictate what people can and cannot use?
 
Back
Top Bottom