AppImage: Difference between revisions

From FreeCAD Documentation
Line 1: Line 1:
=== What is an AppImage ===
=== What is an AppImage ===
[[Image:AppImage-logo.png]] ''Package once and run everywhere. Reach users on all major desktop distributions.''

AppImage is a format similar to a binary that allow to quickly distribute an application to almost any Linux distro. Read more about it on the [https://appimage.org Appimage homepage] and [https://en.wikipedia.org/wiki/AppImage Wikipedia].


=== FreeCAD AppImages ===
=== FreeCAD AppImages ===

Revision as of 13:07, 11 November 2018

What is an AppImage

Package once and run everywhere. Reach users on all major desktop distributions.

AppImage is a format similar to a binary that allow to quickly distribute an application to almost any Linux distro. Read more about it on the Appimage homepage and Wikipedia.

FreeCAD AppImages

Stable version

Development version

Auto Updating

AppImage has a very smart and economical way of updating. It calculates the delta between the new appimage and the older one and will only download the changes between their versions. So essentially, the user theoretically ends up downloading ~10%-15% instead of a a new appimage each time. This is done via an AppImage application.

via Command Line Interface

appimageupdate

via GUI

appimageguiupdate

Using AppImages in your Development Workflow

Note: This section is specifically for developers

A very convenient aspect of FreeCAD is that a majority of it is built in python and doesn't require to manually compile the code (like c++). Essentially, a python file can be modified and upon restarting FreeCAD those changes will be integrated. A developer can quickly work on the latest FreeCAD release using this technique and an appimage. FYI, mentioned procedure doesn't modify the environment in any way, that is nothing gets installed and no environment paths get modified. All one needs to do is the following:

Modifying AppImages

 $ <FreeCAD>.AppImage --appimage-extract
 $ cd squashfs-root/
 (Open your python file(s) in you favorite code editor and save)
 $ ./AppRun

Repackaging AppImages

If you've done the above and now want to re-package the AppImage with your latest changes proceed as follows:

 $ cd ..
 $ wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
 $ chmod a+x appimagetool-x86_64.AppImage
 $ ./appimagetool-x86_64.AppImage squashfs-root