I’m really triggered by the idea that Linux makes running old software easy. The bane of my existence is finding an application that depends on libButts.5.1, but my distro ships with libButts.5.3, which isn’t backward compatible for some reason, and trying to install libButts.5.1 bricks the desktop environment for some reason.
I’ve had poor luck with AppImage. Because of how it works, it has failed in the exact thing it was supposed to do, just werk everywhere. But I’ve heard it generally works well.
All potentially fantastic ideas had the original author bothered to package in any of those formats. Much more common is the only release is a .deb built for an ancient version of Ubuntu, leading to my above frustrstions.
You can repackage old FOSS source code into any of those containers and install and use it that way. Nothing is stopping you, the tools are free and widely documented. You don’t need to own the FOSS repository to repackage it, and actually a huge chunk of containers are packaged by people not affiliated with the development project of the software.
I think we will become better served over time by using systems like the AUR or nix as it seems quite straightforward to make new software available with them. Both of those systems define the method a package should be built with, so even if the maintainer is long gone and the package hasn’t been updated in a long time it will probably still be possible to build, or any changes needed to build it can be easily shared to save other people troubleshooting effort.
The drawbacks are: nix doesn’t seem to have an elegant way to define that users or groups should be created (e.g. at least one package providing locate requires that) (though it does have at least one non-elegant way and one manual but less non-elegant way), and a package usable with pacman has lacked a definition of what version of every dependency it requires in at least one case where it would have been useful to me (even though that is possible apparently), so if anything made a backwards-incompatible change you may not be able to use the package manager alone to troubleshoot.
I mean not really, Appimage has been around since 2004, flatpak/docker for about a decade now. But at any rate I don’t see your point, the person I replied to said it’s hard to run old applications on Linux and I gave him solutions on how to do that. What does their age have to do with anything?
I don’t see your point, the person I replied to said it’s hard to run old applications on Linux and I gave him solutions on how to do that. What does their age have to do with anything?
it’s hard to run old applications on Linux
What does their age have to do with anything
I’m not sure if you’re taking the piss but since those solutions are so recent, you won’t find old applications packaged with those solutions.
They don’t need to be packaged at the time of creation anyway, they can be packaged right now. Distrobox makes this easy, like let’s say you need an application that only works on Ubuntu 18.04. It’s two commands:
distrobox create--image ubuntu:18.04 ubuntu
distrobox enter ubuntu -- sudo apt-get install _package_
Then to export the package to your desktop you can even do
distrobox enter ubuntu -- distrobox export --app _application_
Boom, you have an Ubuntu 18.04 application on an OS of your choosing. You can theoretically do this with any distro, distrobox can use any OCI images from docker-hub, quay.io, or any registry of your choice.
what you do is: you make a chroot environment that has libButts.5.1 , so it isn’t really part of your system. you run your old app inside of it, so you can do your buttstuff in a safe environment
Someone probably could. But not me. I am not a software developer, and being one should not be a prerequisite to using an OS, despite what the memes in this very group might lead one to believe.
Potentially but it’s not always that simple. I’ve literally encountered this exact scenario. OldeShit needs libY 1.9 but pacman is on 2.2. Can’t downgrade because libY uses 10 different libs collectively in the depends tree that explicitly need 2.0 or higher. So you take a look at libY and OldeShit builds only to realise several functions that libY provide have been reworked or removed, making it incompatible with OldeShit. As such OldeShit doesn’t build.
As an aside, this is quite literally why Microsoft has several different VC Redistributables. To avoid this issue. But this also creates another issue. Lol.
I mean to be fair, it’s likely you’d spend most of your time reverse engineering creative’s drivers with something like ghidra, which doesn’t need Linux 😄
I’m really triggered by the idea that Linux makes running old software easy. The bane of my existence is finding an application that depends on libButts.5.1, but my distro ships with libButts.5.3, which isn’t backward compatible for some reason, and trying to install libButts.5.1 bricks the desktop environment for some reason.
I just searched for that lib, in an attempt to help you with the supposed problem. I won’t deny, you got me there.
And this is what is actually good about Linux. :)
Why is that good?
No time for actual facts, only circlejerking /s
Well this is linuxmemes
Appimage, Snap, Flatpak, Docker, Podman, Distrobox, Toolbox…
AppImage has definitely made my life a lot easier in several cases!
I’ve had poor luck with AppImage. Because of how it works, it has failed in the exact thing it was supposed to do, just werk everywhere. But I’ve heard it generally works well.
All potentially fantastic ideas had the original author bothered to package in any of those formats. Much more common is the only release is a .deb built for an ancient version of Ubuntu, leading to my above frustrstions.
I think we will become better served over time by using systems like the AUR or nix as it seems quite straightforward to make new software available with them. Both of those systems define the method a package should be built with, so even if the maintainer is long gone and the package hasn’t been updated in a long time it will probably still be possible to build, or any changes needed to build it can be easily shared to save other people troubleshooting effort.
The drawbacks are: nix doesn’t seem to have an elegant way to define that users or groups should be created (e.g. at least one package providing
locate
requires that) (though it does have at least one non-elegant way and one manual but less non-elegant way), and a package usable withpacman
has lacked a definition of what version of every dependency it requires in at least one case where it would have been useful to me (even though that is possible apparently), so if anything made a backwards-incompatible change you may not be able to use the package manager alone to troubleshoot.Those are fairly recent solutions
We only use software that has existed before the past decade in this household!
I wonder if someone is packaging that stuff for the new solutions
I mean not really, Appimage has been around since 2004, flatpak/docker for about a decade now. But at any rate I don’t see your point, the person I replied to said it’s hard to run old applications on Linux and I gave him solutions on how to do that. What does their age have to do with anything?
I’m not sure if you’re taking the piss but since those solutions are so recent, you won’t find old applications packaged with those solutions.
They don’t need to be packaged at the time of creation anyway, they can be packaged right now. Distrobox makes this easy, like let’s say you need an application that only works on Ubuntu 18.04. It’s two commands:
distrobox create --image ubuntu:18.04 ubuntu
distrobox enter ubuntu -- sudo apt-get install _package_
Then to export the package to your desktop you can even do
distrobox enter ubuntu -- distrobox export --app _application_
Boom, you have an Ubuntu 18.04 application on an OS of your choosing. You can theoretically do this with any distro, distrobox can use any OCI images from docker-hub, quay.io, or any registry of your choice.
I wouldn’t exactly call that easy, but compared to how it used to be, fair enough.
what you do is: you make a chroot environment that has libButts.5.1 , so it isn’t really part of your system. you run your old app inside of it, so you can do your buttstuff in a safe environment
Thanks for the suggestion. I can’t wait to try buttstuff in a safe environment later.
Most of the people who post these kinds of memes unironically, aren’t actual nix users
can you not recompile the app to use the new lib?
Someone probably could. But not me. I am not a software developer, and being one should not be a prerequisite to using an OS, despite what the memes in this very group might lead one to believe.
that’s when you find out that the updated build environment is incompatible with the older libraries the project expected.
usually the only escape is docker, or containerization to be correct, just give the old app and old environment.
this wastes a lot of space though
Potentially but it’s not always that simple. I’ve literally encountered this exact scenario. OldeShit needs libY 1.9 but pacman is on 2.2. Can’t downgrade because libY uses 10 different libs collectively in the depends tree that explicitly need 2.0 or higher. So you take a look at libY and OldeShit builds only to realise several functions that libY provide have been reworked or removed, making it incompatible with OldeShit. As such OldeShit doesn’t build.
As an aside, this is quite literally why Microsoft has several different VC Redistributables. To avoid this issue. But this also creates another issue. Lol.
Anyone who’s feeling Linux savvy, try getting EAX working with some X-Fi hardware. Best of luck ;)
That sounds sadistic.
I mean to be fair, it’s likely you’d spend most of your time reverse engineering creative’s drivers with something like ghidra, which doesn’t need Linux 😄
I’ll just leave this here: https://lemmy.world/post/2735721