AppImage --install #1255
Replies: 9 comments 10 replies
-
First of all: wrong term. We call it integration, not installation, for a reason. Second, there used to be built-in integration. It turned out to be a really poor idea, hence it was removed and replaced with external tools. Discussed so many times here and in other places like the old forum. There is no point in reiterating the same questions all over and over again. Please use the search. |
Beta Was this translation helpful? Give feedback.
-
Jeez. Sorry I asked. |
Beta Was this translation helpful? Give feedback.
-
I see -- you are the author of AppImageLauncher, hence your reply.
I'm relatively new to AppImage, so there's no particular reason why I would know about the old "the old forum".
This is like people coming to a forum to ask a question and being told to "use Google" instead. Hence, the forum becomes pointless.
Why was it a really poor idea? |
Beta Was this translation helpful? Give feedback.
-
Thank you for the detailed reply and the links.
Rather I was feeling positive about AppImage and had an idea which I suggested and described. I noted that it had probably been thought of and didn't come with the notion of pushing it forward no matter what. Rather, I simply wrote a post with a suggestion and wondered what response I would get. Naive perhaps, but I didn't think my behaviour to be so wrong. But more to the point...
Yes, I can certainly see this. But then, isn't it the case that RPM and deb packages merely have their contents unpacked into fixed directories? Do they not suffer the same lack of future-proofing? In any case, I see that you have clearly thought about it all a great deal, and I don't wish to burden you. Like I say, I'm not hell bent on seeing through "my idea" and clearly accept that it is non-starter. I am grateful that you have gone to the trouble to explain it. All the best Andy |
Beta Was this translation helpful? Give feedback.
-
Hi @kuiperzone, really appreciate your thoughts. Thing is, I think how Gnome (and the XDG specs) handles applications is pretty unflexible, since it assumes that things are in static locations. The AppImage format was specifically made so that you can move applications around freely in the filesystem. So, by adopting the Gnome/XDG ways of doing things would essentially "downgrade" the AppImage user experience to the Gnome/XDG user experience. We are not looking at Gnome/XDG for inspriation, but at systems like RISC OS, NeXTSTEP, and GNUstep. We are aiming for a workflow in which you don't need package managers, GNOME Software, and similar tools, and where everything can be done by drag-and-drop in the file manager. At this point, Linux users seem to be so conditioned on "installing" and "managing" "packages" that when you have a system that needs no "installing", no "managing" (other than what you can do by drag-and-drop in the file manager), and no "packages" (hence no dependencies other than the base OS), then people want to bolt the packages/installing/... workflows on top of them. To me personally, this feels backward.
Only if newer systems are paying no attention to staying backward compatible (which, oddly, Windows is doing a rather good job at). What we need is a stable interface that applications can rely on forever. This is missing in the uncoordinated "Linux" userland stack, because apparently the distribution makers (and Linux Foundation) seem to have no interest in this. So the only stable interface that can be relied in seems to be the kernel-to-userland interface. Hence, I am increasingly leaning toward developing against that interface only, which means to bundle everything an application needs to run privately in each AppImage. Since the kernel-to-userland interface is known not to break, this should (at least directionally) lead to forever-working AppImages. |
Beta Was this translation helpful? Give feedback.
-
Hi @probonopd , I like your thinking on this. Thank you |
Beta Was this translation helpful? Give feedback.
-
Hi @TheAssassin
Can you explain this? I feel it would really be helpful. I ask because I have spent an inordinate amount of time pouring over the RPM spec file format, and it has driven me mental. I realised however that the problem I was having was one of terminology. They appear to refer to building (i.e. making or compiling) the app as "BUILD". And refer to what I would call "building the package" as "INSTALL". I was left deeply perplexed as what do you call the process of installing the package on the target system -- "INTEGRATION"? |
Beta Was this translation helpful? Give feedback.
-
Thank guys, you've both been incredibly helpful. |
Beta Was this translation helpful? Give feedback.
-
@kuiperzone, we actually do this for MuseScore already. (I implemented it myself and I'll do the same for Audacity when I get around to it.) To install MuseScore./MuseScore*.AppImage install Our AppRun file intercepts this option and calls a Bash script that copies the AppImage to If you run the command as root (e.g. with To uninstall MuseScore./MuseScore*.AppImage remove # we allow `uninstall` as an alias for `remove` This deletes all the files created by the Why do we provide these options?For the convenience of our users. @TheAssassin mentioned the advantages of using an external tool do the integration. Those advantages are completely valid, but they rely on the user having the external tool. The advantage of self integration is that it doesn't require an external tool. The tradeoffs (in terms of disk space and inability to alter what's inside the AppImage) are no different to any other aspect of AppImage technology. I would argue that self-integration is more in keeping with the AppImage philosophy. The whole point of providing an AppImage is so that app developers don't have to rely on third parties like distributions, package managers, and package maintainers. We don't want to rely on third party integration tools either, which are just as likely to break as our own integration script, if not more so because our script is written for our AppImage and tested with it specifically. Also, when our script does break we can fix them ourselves and release a new version, but we can't fix problems in an external tool. Let users decideJust because app developers don't want their AppImage to rely on external tools doesn't mean that we won't support using external tools as an optional feature. MuseScore's AppImage can do all the following without relying on external tools:
But if some people want to use an external tool to perform those tasks then they are more than welcome to do so! @probonopd said he sees package managers as outdated, but I fully understand why many people prefer to run a command like Same goes for integration and updater tools. Sure, it costs us a few MB to include these in the AppImage (less after compression), but I think it is worth it to maintain independence, which is the best feature of AppImages. Bundling our own tools doesn't prevent people from using external tools if they prefer. Convenience winsI would love to see a universal solution for AppImage self integration, such as an I appreciate this isn't a perfect solution to the integration problem, but it is a valid solution. An imperfect solution that works right now is infinitely more useful than a perfect solution that doesn't exist yet. Ultimately, the quickest way to a perfect solution is to get more apps and users on board with AppImage, as this would give the AppImage project more negotiating power to get your tools built into distributions. And the quickest way to gain users is by providing something that solves their immediate problem. Nothing could be more convenient than having that solution built into the actual AppImages they are already downloading. |
Beta Was this translation helpful? Give feedback.
-
I've been working with AppImage, deb, rpm and flatpak, and I've had an idea.
But first a little story. I discovered let's say a bug in Gnome Software which only displays itself when an rpm (presumably deb also) is installed from file from the command line. The Gnome team were actually very helpful in diagnosing the problem for me, but in conclusion, stated that the issue would not be fixed because they don't want to encourage people to install non-repo software.
Mmmmm... That kind glitched with me because I thought Linux was meant to be about freedom. In fact, I think it very important for users to have the freedom to install software themselves, and for vendors and developers to be able to release software without having to go through repo gatekeepers.
This is the reason why I love AppImage and it gave me an idea, although I would suspect it is has already been thought of...
If I download and use an AppImage that has packaged a desktop file (and possibly metainfo.xml), then presumably it would be possible (and even easy) to add an install command to the AppImage itself, so that if I then wanted to properly install the software, I could type:
This would put the AppImage file itself in
/usr/bin
, and add the desktop and metadata appropriately under/usr/share
, as well as an icon etc.This would be like having a Windows Setup file which not only installs, but runs the application without installing as the default mode of operation.
The only remaining issue would be to ensure that the user has a clear way to uninstall the application later?
Any thoughts?
PS. I note "AppImage Pool" and have been using it. Love it. But having the ability to install directly from the AppImage itself could be significant?
PS2. Just done a quick search before posting this, and found "AppImageLauncher". Is this relevant to this discussion? Would it be better/simpler to have AppImage be able to install themselves?
Beta Was this translation helpful? Give feedback.
All reactions