this post was submitted on 04 Mar 2024
205 points (80.1% liked)

Linux

47994 readers
1727 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Appimages totally suck, because many developers think they were a real packaging format and support them exclusively.

Their use case is tiny, and in 99% of cases Flatpak is just better.

I could not find a single post or article about all the problems they have, so I wrote this.

This is not about shaming open source contributors. But Appimages are obviously broken, pretty badly maintained, while organizations/companies like Balena, Nextcloud etc. don't seem to get that.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 20 points 8 months ago (1 children)

When I was first getting into Linux, Flatpak wasn't a thing quite yet. I ended up installing software in all of the following ways:

  • A .run file. Simplify3D (commercial 3D printer slicer) did this, it was kind of a literal word for word translation of the Windows .exe installer system. Please don't do this. See also install.sh. Just don't do this.

  • A .tar.gz file full of the executable and its assets with no further elaboration. This happened a few times but I really remember FTL: Faster Than Light did this when I bought the game directly from them rather than on Steam, and they were nice enough to link it to a Steam key for me. This'll work if you're handing out a thing you made to a couple other people, don't distribute like this please.

  • Clone my git repo. I'm going to type this slowly so that it will best be understood: Git is for people who are contributing to code, not for people who just want to run it. Do not ask end users to compile from source.

  • Ubuntu PPAs. This one seems to have died; it's been a couple years since I've seen anyone suggest adding a PPA. Good, they somewhat sucked.

  • Pip. There are way too many end-user applications that are distributed with Python's package manager. No. Bad.

  • Alien. For a brief time the driver for my printer was only distributed as a .rpm, I was on a .deb based system. There's a thing called Alien that lets you do that.

  • Loose .debs. Haven't encountered this one in awhile either, but...could be worse.

-Snap. No. Just. No.

Compared to almost all of these I'd prefer an AppImage. For example, go look at the process of getting an up to date copy of Chirp, the amateur radio programming software. The instructions are kind of "build it yourself," they are flawed and borderline incorrect, and include no uninstall instructions. I would vastly prefer they just package the damn thing as an AppImage.

Compared to AppImage, I almost always prefer a Flatpak. Flathub is built into my distro's GUI app center and is almost transparent to the user. Using Flatpaks with the terminal is complete rectal pus, but for most end users who prefer to do things graphically Flatpak works pretty well most of the time. It is not completely seamless, like Flatpak seems to suffer from all the drawbacks of sandboxing with none of the benefits.

If you are distributing to a wide audience, use Flatpak or publish to the various standard repos. If you're a little niche thing that might distribute 200 or 300 copies ever, AppImage is probably simpler. Otherwise just...keep your repo private.

[–] [email protected] 7 points 8 months ago

Thanks, yes fully agree. There are a ton if shitty distribution ways.

When I publish stuff on Github (its never big, always small tools) I never let people git clone, just download the needed parts.

Releases are meant for that, but still, putting software on repos may be annoying but its the correct way to do.