Skip Navigation

I created a script for installing Linux apps from their official sources

I created a script that always installs apps from their official source

https://github.com/Tsu-gu/appfetch/

It's a proof of concept of an idea I had a while ago. I dislike having to hunt down apps for my Linux machine when I want them from an official source. Some apps are packages as tarballs, some as .debs, some as install scripts that download a binary, some are flatpaks and snaps.

I created a yaml file with only verified apps from flathub and snapcraft, and added a few apps outside of them that I could think of.

The ultimate goal is the user just typing the names of what they want, and the script will just get it. They shouldn't waste time with picking the right source.

46 comments
  • I like this idea, but with the increase in supply chain attacks, I'm reluctant to use it. I've been much more reticent about installing from AUR, and my use of github projects has drastically slowed down since I now feel as if I have to read all the source code for everything I get.

    I've sandboxed programs before, and I may just start making that standard practice, but still... it makes me angry. It's, like: this is why we can't have nice things. There are precious few OSS supply chain static code analysis tools, and there are a lot of languages I don't know well enough to review, or which have such broad or deep dependency trees that it's more work than it's worth. The most frustrating is the dampening effect it's having on OSS. It only pushes people to only use programs from big commercial companies.

    Anyway, none of that is directly related to your program, which is really cool. Sadly, if there aren't any positive developments in the OSS ecosystem for attacking the supply chain problem, cool projects like this are not going into my toolbox.

    • That's understandable. Truth be told I probably wouldn't trust this either if I didn't make it. Anything can be hiding in the custom field.

      • Now I'm wondering, if it were bundled with an OCI sandboxing system, that would address my issues with Flatpack and Snap. Technology has moved on and Flatpack has stagnated, and Snap's just an attempt to centralize control and distribution. It's time for a redesign, specifically focusing on supply chain attacks, with sandboxing all the way down.

  • Sounds like Obtainium on Android.

    The thing that concerns me is that it downloads an unofficial source.

    • Those are all official sources tho, but you have to trust me not to put in malicious commands of course.

  • Genuine question: Why would I use this as opposed to Nix? Between nixpkgs and the NUR, there are an insane amount of packages available, and you can build everything from source if you wish.

    • It's meant for people who prefer their apps from the official sources rather than repackaged. All this script dies is make it easy so you don't have to google the app's name and search for an install method on its website.

  • I think that using some "custom" package names for internal args is not the best choice.

    Anyway, later I'll take a better look at it and probably contribute to it. Ty

    • Could you elaborate? I'm not the best programmer so I'm open to suggestions.

      • I saw that "version" and "update" are inside apps.yaml instead inside the program itself like "search". I see why version helps to be there which gets updated with the list, but the update link looks more like a quirk to be inside apps list. And it would make sense to distinguish program version and apps list version.

46 comments