I am looking for a way to create download-and-install style programs for Linux. To clarity what I mean by "download & install", I mean that the installation process proceeds like this:
- User downloads graphical installer (NOT a deb, rpm, etc. file... I'm talking about an actual ELF executable) from website
- User runs graphical installer (preferably by double-clicking it) as a regular user (not as root) - installer puts program & its dependencies (included with the installer) in a nice place in the home directory and adds things to the desktop environment menus to make running easier
- User can now run the program from the desktop environment menus
- Uninstaller is installed alongside the program, which can be run at any time
This style of download & install is very similar to the method the majority of traditional personal computer users (in contrast to mobile PC users which are accustomed to app-stores) are used to and I wish to distribute any programs I make using such a method.Plus I just really like this method of software distribution. It just feels right.
I predominantly use C++ and FLTK for Linux programs.
I am interested in all of the different options available for replicating this experience, so feel free to mention different methods of "getting there"
Assume that a program has already been created and that it needs to be "retro-fitted" into this installation style
./configure; make dep; make; make local-install
? – DopeGhoti Feb 06 '18 at 18:36.run
" files that Enemy Territory, Unreal Tournament, etc used to install - tar file appended to a shell script basically. Of course, I would much prefer a native package version so my package manager takes care of dependencies, upgrades, uninstalling, etc. – ivanivan Feb 06 '18 at 18:51.run
files (and thank you for reminding me about the fantastic ET) do what my earlier comment mentions- the devs do a meticulous job ensuring all dependencies are present, and they were often precompiled fori386
ori686
for the purposes of portability, and in come cases still game with aREADME
orINSTALL
file outlining all the outlying dependencies that need to be addressed before executing them. – DopeGhoti Feb 06 '18 at 18:55