-
-
Notifications
You must be signed in to change notification settings - Fork 563
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compatibility between AppImages and Snaps #166
Comments
Thanks @shoogle, indeed it would be nice if one could convert between the different formats. The philosophical difference is that AppImage doesn't allow for dependencies other than the base system, whereas Snappy introduces a dependency on the Ubuntu Core image. This might be not so easy to work around without resulting in larger AppImages than need be. |
To be clear: This is not a recommended way to build AppImages, because they will not be very compatible to older/different target systems. |
Turns out that this may become more feasible once the oldest still-supported Ubuntu version is the same version that most Snaps are built against... which may be once 14.04 is no longer supported? cc @zyga |
Some semi-random notes for future reference.
|
If the goal is to run snap packages via appimage then I think you need a bit more to work correctly. Not all snaps can be just unpacked and started successfully. Many snaps require the mount namespace to be configured according to the package description. You may have some luck with snaps using classic confinement but for strictly confined snaps I think the likelihood of this working long-term is close to zero. |
I suggested #1251 to achieve maybe the same thing, along with supporting more distros and fixing a number of issues AppImage has in practice. If 1251 was closed and locked, wouldn't it make sense for this to be too? |
Hi @orowith2os, architecturally Snap is way closer to AppImage than Flatpak is. Both are using squashfs images. I think that a collaboration between the creators of AppImage and Snap might be beneficial for everyone. But then, companies like Canonical have a track record of cancelling projects after a couple of years, so as a community project AppImage with limited resources we need to be careful where to invest time. |
Supporting Flatpaks rather than Snaps would still end up likely working better, and on more distros. If anything, working something out with Flatpak would be better for everyone. I sense some bias (against Flatpak) here :) |
As explained elsewhere, I don't see a way to do that without breaking completely what AppImage stands for. If you have concrete ideas on what to do, why to do it, and ideally how to do it, then please open a discussion over at the Ideas section. Thanks! |
There's been quite a bit of fuss about snaps in the last few days, with Canonical attempting to push them as the new universal Linux packaging format. So what does this mean for AppImages?
The two formats have much in common, but there are some key differences:
So the two formats actually have different uses and will probably exist side-by-side.
But perhaps we can do better than coexistance, and actually work together?
It turns out that converting a snap to an AppImage is very easy to do. Simply:
$APP.AppDir
.desktop
file and app icon from./share/...
into the root of the AppDirThe resulting "SnapImage" can be carried around on a USB stick and used on other machines. Unfortunately, binary executables packaged this way won't magically become compatible with older distributions, so the result is not as portable as an AppImage compiled the usual way, but it is a good start! Perhaps if the snap packaging system is ported to older distribution and the snap was compiled there it would do the trick?
There are other areas where Snaps and AppImages might be able to work together, for example if the snap daemon were to set up a sandbox for AppImages. If snapd really is to be ported to every distribution then this might be an avenue worth perusing. Of course, AppImages should still work on systems without it.
The text was updated successfully, but these errors were encountered: