How do you guys get software that is not in your distribution’s repositories?
I understand appimages. I use them exclusively. Can someone explain what flatpak and SNAP are and how they work? I have autism so please be as clear and concise as possible?
The easiest way to think of it is flatpaks are AppImages with a repository and snaps are flatpaks but bad.
That has benefits and detriments. Appimages contain everything they need to run, flatpak’s mostly do, but can also use runtimes that are shared between flatpaks.
All flatpaks are sandboxed, which tends to make them more secure. AppImages can be sandboxed, but many aren’t.
Flatpaks tend to integrate with the host system better, you can (kinda) theme them, their updates are handled via the flatpak repo, and they register apps with the system.
AppImages are infinitely more portable. Everything’s in one file, so you can pretty much just copy that to any system and you have the app.
Why not just stick to what we’ve always been doing?
- wget something.tar.gz
- tar something.tar.gz
- man tar
- tar xzf something.tar.gz
- cd something
- ls -al
- ./config.sh
- chmod +x config.sh
- ./config.sh
- make config
- Try to figure out where to get some obscure dependency, with the right version number. Discover that the last depency was hosted on the dev’s website that the dev self-hosted when it went belly up 5 years ago. Finally find the lib on some weird site with a TLD you could have sworn wasn’t even in latin characters.
- make config
- make
- Go for coffee
- make install
- SU root
- make install
I much prefer our modern package format solutions:
- sudo apt install something
- open
- wtf this is like 6 months old
- find a PPA hosted by someone claiming to have packaged the new version
- search how to install PPAs
- sudo apt <I forgot>
- install app finally
- wtf it’s 2 months old and full of bugs
- repo tells me to report to original developer
- report bugs
- mfw original dev breaks my kneecaps for reporting a bug in out of date versions packed with weird dependency constraints they can’t recreate
- Compile from source
- Find alternative
- Deploy in VM/Docker
If I wanted snap, flatpak or appimages, I would use windows. Shared dependencies or death.
Native package manager > Native binaries > AppImage > Flatpak.
Yes, snap isn’t even on the scale.
Not a fan of AppImages myself. For an universal format it has surprising amount of issues with different distros, in my experience. And the whole Windows style “go to a website, download the AppImage, if you want to update it, go to the web page again and download it again” is one thing I wanted to get away from. At least they don’t come with install wizards, that clicking through menus thing was a pain.
For one off stuff I run once and never need again, AppImage is alright. But not being built-in with sandboxing, repos, all that stuff, it just seems like a step back.
There is no software that is not in AUR. I use arch, BTW.
My software, QuickDAV, is not in the AUR. It’s open source, and I release it only as an AppImage, because I am lazy.
I guess we should have added the word “notable”
I’m terribly sorry, you left the door wide open ;)
I’m curious, what makes AppImage a good choice for the lazy developer? Is it easier to create?
I’m curious, what makes AppImage a good choice for the lazy developer? Is it easier to create?
The appimage is basically just
git clone
->make
->make install DESTDIR=/path/to/AppDir
->wget appimagecreationtool
and finallyappimagecreationtool /path/to/AppDir
and that’s it you have your appimage.appimagecreationtool being several tools that can create the appimage from an AppDir, like linuxdeploy, linuxdeploqt, go-appimage, etc
And that on itself isn’t complex either, it if basically running ldd on the binary, then copy those libraries into the AppDir and finally run patchelf to patch the paths in the binaries and libraries, suyu uses a deploy script instead of using those tools, which I’ve recently forked and began expanding.
I don’t know how easy it is to make a flatpak or snap, but I do know the dev of zen browser hates dealing with the flatpak and iirc right now the flatpak is outdated as result.
EDIT: Also lite-xl has been making a flatpak for like 2 years and it isn’t ready yet.
But yeah, sometimes I just compile from source, if needed.
That’s exactly what the vast majority of AUR packages do already? You can also apply modifications to the compilation process if needed.
Indeed, but don’t underestimate my laziness.
I’m currently on a atomic distro, so how I get my software from favorite to least favorite is this:
- Flatpak
- Appimage
- Fedora distrobox
- rpm-ostree
Have you met nix?
Nix is cool but also incredibly painful
I use nix package manager on fedora silverblue. It’s awesome.
Awesomely painful
Why is it painful for you?
It just is overly complex. Nix has its own environment instead of just being a regular package manager.
os-tree is slow as molasses
As it should be, don’t do that.
Doctor, when I do this it hurts…
Also, you’re creating a disk image…
If you don’t compile from source, do you even Linux?
Linux From Scratch user detected
as it should be, nobody likes proprietary vendor-locked formats that get shoved down your throat