Universal Linux software installation helper

Newbie/student question!

I’m making an app in Rust that facilitates software installation like Windows. Basically, it loads .installcommand files that have curl, bash etc instructions and checks dependencies. These .installcommmand files could be downloaded from software vendors and run with my package. It asks the user whether they want to install these dependences etc, and uses the appropriate package manager for the user’s system. The goal was to have a guided installation for non-techy people who want to use Linux but don’t want to use terminal commands (the general public.)

Would this be helpful? It may be a naive idea, but it allows Linux users to have an automated Windows-like installation process. I was also wondering if I could get it integrated into KDE and/or used by software vendors.

Any feedback would be greatly appreciated. I think something like this could be a huge step in bringing Linux to the masses.

Well, usually linux users avoid installing stuff that isn’t provided through their distros repos. imho installing such stuff should be discouraged for “non-techy users” (for me “non-techy users” mean users that don’t really know what they are doing).

It’s one of those “it’s a great idea but is it realistic in practice” kinda things.

I really do not want to discourage you in your project but before you move further, do a little planning. Spend a day or two mapping out the project and you will soon realize that it’s extremely complex.

Just an example:
Is it only the packages or is it the system in general (kernels comes to mind) you are updating? Because then it suddenly moves on even further than just package managers (that is already huge in itself).
And it kinda sounds to me you want a “one gui tool to do it all”, or it would just be another gui for a package manager, and those exists (just not one for all, but is that needed if you know what package manager you use?).

I can assure you, if it was as easy as you describe it, it would already have been done.

If you decide to move forward, I think you should make the project towards maintainers of distros rather than something a user would install in mind.
Kinda like a Calamares for system/package management.
I think that would be the only way it would even be feasible.

1 Like

Thanks for the reply! All I wanted the tool to do is run scripts like this:

curl -sS https://download.spotify.com/debian/pubkey_6224F9941A8AA6D1.gpg | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/spotify.gpg
echo "deb http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list

in a downloadable, user-friendly way, and notify the user about potential issues. It shouldn’t touch the OS, that’s definitely a bit complicated for now.

Thanks

Oh, a gui wrapper, sure.

Getting it in as a KDE application though, that is a whole other thing.

I guess the best advice is to read up on their guidelines and what you have to do.

This might give you some inspiration.

having a standard GUI interface that not only helps you find the software you need but helps you install it using your distro’s package manager or flathub, or snap or whatever would be a valuable thing for linux community to have.

discover, and others try to achieve that in their own way but there is no universal linux “installer” experience… and i frankly think there should be.

get to it, can’t wait to see it as an option in my repository (or better yet preinstalled in all the main distros).

good idea.

you need to convince all linux desktop environment to use the same GUI :slight_smile:

or at least offer it in their repositories and if it becomes popular enough like say firefox then everyone would just include it.

I believe discover is available in most distros’ repositories

For proprietary software where you’d follow upstream’s instructions, that would work, yeah. Reminds me of something similar I’ve seen in, I think, Ubuntu Mate or Solus, where you could install proprietary stuff like Chrome from the store.

IMO it would be interesting to pursue the idea of adding this functionality as an optional plugin to Plasma Discover rather than have it be its own software.

FOSS software should be downloadable from the repos or something like flatpak, though.

It’s worth noting that adding a repository to the sources.list is touching the OS, though.

I am not sure what your idea is, but I seem to understand that you are trying to come up with a system that compiles binaries from sources?

This would definitely be interesting. While it would be a tad complex and this is the reason al distros do use binary already compiled packages (DEB or RPM).

But if you come up with something that works, it would definitely be a possitive thing.

I think if you want to actually make your GUI wrapper popular for these kinds of scripts, you’ll have to think hard about the security implications and how to protect an unassuming user from malicious software running on their system.

What this looks like to me is AUR scripts for Arch Linux. They also make use of the native package manager to install software from sources that are not marked as trustworthy by default. For that reason, because literally anyone can put stuff into AUR, Arch very clearly marks it as “do this at your own risk only, and we’ll provide you with tools to check the script on every installation or upgrade”. If you want to use AUR, you have to go through somewhat cumbersome steps to set it up, because it would be too unsafe to make it available by default.

That’s the kind of stuff your script goes up against if you want it to be a universal solution for everyone that’s provided by distros by default. So think hard about how to prevent random proprietary vendors from getting untrustworthy code installed on users’ systems.

In the same context, the people making Flatpak (and Snap, but only Ubuntu cares about Snap) have been working for years on a comprehensive solution to this problem. As in, if we can’t trust random software vendors with access to our users’ systems, then we have to sandbox them. Because of those efforts, you can now install apps such as Spotify as Flatpak, through software like Discover or GNOME Software, and you can somewhat rely on the fact that they’re not going to mess up the rest of your system or surveil the user’s interactions with other apps.

So, given that Flatpak (and Snap) are increasingly omnipresent on current-day Linux systems, think about what makes your approach unique and provides extra value on top of that. If you don’t have a good answer to this, you might still get a couple of users if your UX is good, but your reach will be limited.

My personal belief is that it’s both more useful and more educational to contribute to an existing project first (in this case, probably Flatpak/Portals) and understand what challenges people are dealing with who have worked on these problems for years. Linux is not Windows, it’s simultaneously more behind and more ahead depending on how you look at it. For that reason, a solution for these issues might not look like it would on Windows.

2 Likes