Is it really so crazy to want a stable platform on which to run current applications? In the Linux world: yes.
Is it really so crazy to want a stable platform on which to run current applications? In the Linux world: yes.
AppImage solves the problem in a different way, although AppImage doesn't have a concept of automatic upgrades like Snap:
I suppose one could put an appimage in a snap, leading to either the best or worst of both worlds.
There are other downsides, too.
At the same time, the upsides of such systems are really nice; they are very much reminiscent of MacOS apps - and that I really like. If the whole theming and such can be fixed - it would be perfect.
For example, they could have an optional "recent applications" repository that you add if you want up-to-date applications. This way Firefox, LibreOffice, etc would be up2date but the system would be stable.
If you install Chrome on an LTS by the way, it will come with the Google repository and be always up2date.
I7 4/8 16gb and ssd. Laptop isn't a slouch
I have tons of snaps and the only one that is really slow is Cura.
And that's a good thing. If I wanted my system to force software updates on me, I'd use windows.
Users should always have the ability to control updates. Always.
I'm only an occasional linux user as a developer, I never dove into the history or the design. Is there a particular reason why linux distributions couple the system so heavily with the application layer?
The proprietary solution to that instability is to appoint people who ensure ABIs don't change. Microsoft is a great example of that strategy. Many apps made for Windows 3.1 still run today on Windows 10, almost 30 years later.
The typical open source solution to ABI instability is to freeze library ABIs and build all the applications on those temporarily frozen libraries. Applications are built for a particular release. While it would be possible to keep updating the applications during the release cycle, it appears no one has yet figured out how to do that economically.
An interesting exception to the rule is web browsers. Firefox and Chromium get regular feature updates in major Linux distributions. That's probably because browsers have a very large attack surface, yet people use them all day long, so they deserve extra attention from software distributors.
In any case Things like ostree and flatpak seem to be heading in this direction.
At least the PPAs are actually a better solution than a platform like Windows (whose "system" is separated from "application"), where you download binaries for upgrades, since you have visibility of the source code and build process.
I have around two dozen PPAs for the software I need to keep up to date. In the past, I used to upgrade Ubuntu on every release; now, I barely do it on every LTS.
Example: recently I had need of the of the DOSBox debugger, which you need to enable at compilation. On Windows this was as simple as finding some zip file from someone who'd done it and extracting the executable. On my Lubuntu system though, it wasn't in the repo for my version, nor was there a PPA. It was, however, in the very newest repo for Ubuntu and required up to date dependencies and I didn't want to upgrade my perfectly working base system.
Ultimately I had to manually download the package and its dependencies, extract their contents, and use LD_LIBRARY_PATH and the like to get it to run out of a self-contained directory.
That's what's fascinating to me. All the technology is there to distribute portable self-contained applications on Linux, but basically no one does it, or they pull a flatpak and still tie it into the horrifically silly repo model (and still aren't portable!). Only AppImage makes any sense, but hardly anyone embraces it.
Half of the time, PPAs don't work. Snaps and Flatpaks are a step forward, but they still require a central server for fetching dependencies.
AppImages are good.
I don't believe this, and I suspect you're doing something unorthodox with your apt sources (it wouldn't be the first time I hear a story like this).
PPAs build from source on a vanilla platform for the given configuration, so they're guaranteed to have standard output (binaries etc.) and dependencies. When there is a problem with a certain configuration, such build won't be available to the user.
Can you list the PPAs that don't work?
It seems essentially to be what you want - separation of "system" and "apps". An immutable containers host with custom things running on top.
That's a novel concept if you don't mind me saying so ;]
There is a config.json for defining inheritance only.
edit: Here are my recipes: https://github.com/pauldotknopf/darch-recipes/tree/master/re...
I did this - and it saved my bacon recently.
I had a 14.04 LTS install, from around the time that that Crunchbang "went away" (just before Bunsen and CB++). At the time, it was my upgrade (completely new system). I decided to make it look as close to CB as I could; in a large part, I was very successful and happy with the result. But when I installed the OS, I decided to put in on an SSD (with certain partitions done as ramfs, so as not to kill the SSD). My /home went on another drive.
All was good and happy, but over time, things became more and more difficult to get newer software, etc. Over the years I really buggered my system; the nearly final blow was doing a "hand-upgrade" to the latest gcc so I could get certain features needed to compile some stuff for a Udacity course I was taking (also got CUDA installed and working for that course as well). Doing this upgrade, though, ended up breaking a portion of the standard "upgrade" process to the point where it would fail if I tried to move to say, 15.04 LTS or similar. Even simple installs of software from the repos would sometimes throw errors in the logs. It was really messed up.
Then one day last year, I decided to try to upgrade my NVidia drivers, and in the process fubar'd the whole system; all I could do was land to a console. Ultimately, I ended up switching over to the FB drivers just to get X back so I could do some research easier with a browser, and to see what I could recover to. I decided that since my /home was still ok - that I would attempt to just upgrade the OS and see what happened pointing /home at the old drive.
So - I bought a new SSD and pulled the old one (so I'd have something to fall back on), and then tried out a variety of distros to see what things had gotten up to in the years I'd been away. I had considered just moving to Bunsen, but as I started to think about things, and research stuff, I decided that I wanted something less compact.
Ultimately, via a series of steps which I won't delve into, I settled on Ubuntu Budgie 18.04 LTS.
The install went perfectly, and it had no problem picking up my old /home partition and such; I ended creating a new user instead of going through the rigamarole of trying to get the old user and such all configured with the login system (I've been there and done that, and it's a damn pain); besides, that also allowed me a "backup" of my old user directory in /home - a good thing, I could move over what I wanted as I needed it or such, and keep the old one around for a while.
It turned out to be a fairly easy and painless upgrade. Since then, I've decided and stuck with the idea of not using any software that isn't from a repo, or .deb file or such. No more compiling from source and wondering where/what I have on my system. Instead, I either do without, or install it on a VM, or build a .deb package myself, or try a snap or appimage, etc. Basically, I'm trying to keep my system clean and "uncontaminated" so I don't fall into this issue of a broken upgrade system again.
Now I need to see if Ubuntu Budgie 19.04 LTS is available yet - when it comes out, it's supposed to have all the newer features of the latest Budgie desktop; I had played with that and the distro (I forget the name), but I didn't like the package manager that distro used; it felt too limiting since most things out there are distributed as .deb or .rpm packages, etc.