Permalink
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
73 lines (42 sloc) 3.45 KB

Overview

There are different ways to create AppImages. The following section gives you an overview of which ways are available, their advantages and disadvantages, and where to find more information.

Packaging from source

The recommended approach is to package software from source. Ideally, upstream application authors take over maintenance of AppImages, and provide them on their release pages.

To learn more about how packaging from source works, please refer to :ref:`ref-packaging-from-source`.

The process of packaging from source can and should be automated. CI systems like Travis CI can help with that.

Automated continuous builds on Travis CI

This option might be the easiest if you already have continuous builds on Travis CI in place. In this case, you can write a small scriptfile and in many cases are done with the AppImage generation.

More information on using Travis CI for making AppImages can be found in :ref:`ref-travis-ci`.

.. seealso::
   There are a lot of examples on GitHub that can be found using the `GitHub search <https://github.com/search?utf8=%E2%9C%93&q=%22Package+the+binaries+built+on+Travis-CI+as+an+AppImage%22&type=Code&ref=searchresults>`_.


Using electron-builder

For Electron based applications, a tool called electron-builder can be used to create AppImages.

With electron-builder, making AppImages is as simple as defining AppImage as a target for Linux (default in the latest version of electron-builder). This should yield usable results for most applications.

.. seealso::
   More information can be found in the `documentation on AppImage <https://www.electron.build/configuration/appimage.html>`_ and `the documentation on distributable formats <https://www.electron.build/index.html#pack-only-in-a-distributable-format>`_ in the `electron-builder manual <https://www.electron.build>`_.

   There are a lot of examples on GitHub that can be found using the `GitHub search <https://github.com/search?utf8=%E2%9C%93&q=electron-builder+linux+target+appimage&type=Code&ref=searchresults>`_.

Converting existing binary packages

This option might be the easiest if you already have up-to-date packages in place, ideally a PPA for trusty or earlier or a debian repository for oldstable. In this case, you can write a small .yml recipe and in many cases are done with the package to AppImage conversion. See :ref:`convert-existing-binary-packages` for more information.

Using the Open Build Service

This option is recommended for open source projects because it allows you to leverage the existing Open Build Service infrastructure, security and license compliance processes.

More information on using OBS for making AppImages can be found in :ref:`ref-obs`.

Manually creating an AppDir

Create an AppDir manually, then turn it into an AppImage. Please note that this method should only be your last resort, as the other methods are much more convenient in most cases. Manually creating an AppDir is explained mainly to illustrate how things work under the hood.

See :ref:`ref-manual` for more information.