Skip to content

Add AppImage for easier Linux distribution #985

@TequinDragon

Description

@TequinDragon

Hi, I was trying to give ngscope a try and was a bit frustrated with having to move files into ideal locations just to run the application.

I'm sure there will be a lot of others that will experience similar frustration if they are not wanting to or unable to use the provided deb/rpm packages. For example, Manjaro or Arch users

I'm creating this issue as I don't have the time to create a pull-request myself, but my hopes is that someone can pick it up and add it to the build pipeline.

An AppImage is a self-contained Linux application that just runs without needing to install or movie files into appropriate directories. It would be very welcoming to have this included in the distributed assets in releases.

  1. Create a directory that looks like this
    AppRun
    ngscopeclient.desktop
    ngscopeclient.png --(symbolic link)--> usr/share/ngscopeclient/icons/128x128/app-icon.png
    usr/
    ├─ bin/
    │  ├─ ngscopeclient
    ├─ lib/
    │  ├─ libscopehal.so
    │  ├─ libscopeprotocols.so
    ├─ share/
    │  ├─ ngscopeclient/
    │  │  ├─ icons/
    │  │  ├─ shaders/
    
  2. AppRun file contents
    #!/bin/bash
    
    export LD_LIBRARY_PATH="${APPDIR}/usr/lib:${LD_LIBRARY_PATH}"
    
    ${APPDIR}/usr/bin/ngscopeclient
  3. ngscopeclient.desktop
    [Desktop Entry]
    Name=NgScopeClient
    Exec=ngscopeclient
    Icon=ngscopeclient
    Type=Application
    Categories=Utility;
  4. Then use a tool like appimagetool to turn the directory into a AppImage
    ARCH=x86_64 ./appimagetool-x86_64.AppImage ngscopeclient ngscopeclient.AppImage

The resulting ngscopeclient.AppImage can be run as is from either the command line or file manager.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions