Skip to content

AppImage, first attempts - a small tutorial #333

Description

@munix9

AppImages are back on OBS.

eg.

$ mkdir ~/AppImage
$ cd ~/AppImage

1.7.x

build result

$ wget -O celestia-1.7.x-x86_64.AppImage https://download.opensuse.org/repositories/home:/munix9:/celestia:/1.7/AppImage/celestia-latest-x86_64.AppImage
$ chmod 755 *.AppImage

create a portable, main version-dependent $HOME directory in the same folder as the AppImage file

$ mkdir celestia-1.7.home

start Celestia / get help (filename may change after updates)

$ ./celestia-1.7.x-x86_64.AppImage
$ ./celestia-1.7.x-x86_64.AppImage -h

1.6.x

build result

$ wget -O celestia-1.6.x-x86_64.AppImage https://download.opensuse.org/repositories/home:/munix9:/celestia:/1.6/AppImage/celestia-latest-x86_64.AppImage
$ chmod 755 *.AppImage

create a portable, main version-dependent $HOME directory in the same folder as the AppImage file

$ mkdir celestia-1.6.home

start Celestia / get help (filename may change after updates)

$ ./celestia-1.6.x-x86_64.AppImage
$ ./celestia-1.6.x-x86_64.AppImage -h

Optional: Updates via AppImageUpdate

$ wget https://github.com/AppImageCommunity/AppImageUpdate/releases/download/continuous/AppImageUpdate-x86_64.AppImage
$ chmod 755 *.AppImage

optionally create a portable $HOME directory in the same folder as the AppImage file

$ mkdir AppImageUpdate-x86_64.AppImage.home

Optional: Import gpg public key (gpg2 must be installed)

$ wget -O obs-munix9.pub https://build.opensuse.org/projects/home:munix9/public_key

global (without a portable $HOME for AppImageUpdate)

$ gpg2 --import obs-munix9.pub

for AppImageUpdate only (portable $HOME, see above)

$ HOME=~/AppImage/AppImageUpdate-x86_64.AppImage.home gpg2 --import obs-munix9.pub

old stuff

Build system:

  • openSUSE Leap 42.3 x86_64

Test systems:

  • Ubuntu 18.04.2 amd64 (VM)
  • Xubuntu 18.04
  • openSUSE Tumbleweed

Version: celestia-qt, git master (with additional hacks/patches and spice enabled)

The AppImage test environment has now moved from OBS to github/travis-ci
https://github.com/munix9/Celestia (branch appimage_build)

Updates should now be possible via https://github.com/AppImage/AppImageUpdate

Howto

create a working directory (is arbitrary, can be moved or renamed later)

$ mkdir ~/celestia-app
$ cd ~/celestia-app

download the AppImage file from https://github.com/munix9/Celestia/releases (Continuous build)

$ wget https://github.com/munix9/Celestia/releases/download/continuous/celestia-qt-continuous-x86_64.AppImage

and make it executable

$ chmod 755 celestia-qt-continuous-x86_64.AppImage

create a portable home folder to use as $HOME

$ ./celestia-qt-continuous-x86_64.AppImage --appimage-portable-home

Hint: There is now an alternative for a portable $HOME directory. If a writable directory named celestia-qt.home exists in the same folder as the AppImage, this directory is defined as portable $HOME.
This should make it easier to handle the different AppImage names after updates.


venture a first start

$ ./celestia-qt-continuous-x86_64.AppImage

Troubleshooting, general

"Error Saving Bookmarks" "Read-only file system" on exit - solved (#335)
$ mkdir -m 700 ~/celestia-app/celestia-qt-continuous-x86_64.AppImage.home/.config

Troubleshooting, Ubuntu 18.04.2

(celestia-qt:...): Gtk-WARNING **: ...: Unable to locate theme engine in module_path: "murrine", - solved, should not occur again

first install gtk2-engines-murrine

$ sudo apt-get install gtk2-engines-murrine

solution by prepending the GTK_PATH64 env var when the AppImage is started

$ GTK_PATH64=$GTK_PATH64:/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/ ./celestia-qt-continuous-x86_64.AppImage

or by creating a symbolic link

$ mkdir -p ~/celestia-app/celestia-qt-continuous-x86_64.AppImage.home/.gtk-2.0/engines
$ ln -s /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/engines/libmurrine.so ~/celestia-app/celestia-qt-continuous-x86_64.AppImage.home/.gtk-2.0/engines/

Using an individual celestia-data folder

the Celestia way

$ ./celestia-qt-continuous-x86_64.AppImage --celestia-extract-data
done: celestia data extracted to '/home/test/celestia-app/celestia-qt-continuous-x86_64.AppImage.data'
start celestia e.g. with
CELESTIA_DATA_DIR=/home/test/celestia-app/celestia-qt-continuous-x86_64.AppImage.data/ /home/test/celestia-app/celestia-qt-continuous-x86_64.AppImage

the AppImage way

$ ./celestia-qt-continuous-x86_64.AppImage --appimage-extract
$ mv squashfs-root/usr/share/celestia/ my-data
$ rm -r squashfs-root

and now celestia can be started with the alternative data path

$ CELESTIA_DATA_DIR=~/celestia-app/my-data/ ./celestia-qt-continuous-x86_64.AppImage

Updates

The procedure to carry out updates is still under review. Until clarification the AppImage can be updated with AppImageUpdate.
Hints:

That's it for now.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions