Updated appimage post to include example desktop file and some tips

This commit is contained in:
Brandon Rozek 2021-06-03 12:18:08 -04:00
parent ea9471f9fa
commit 2d47cc994f

View file

@ -33,9 +33,24 @@ gqrx.AppDir/
The `AppRun` executable comes from the [AppImage Releases Page](https://github.com/AppImage/AppImageKit/releases). While you're there, you should also download `appimagetool` as we'll be using that soon. The `AppRun` executable comes from the [AppImage Releases Page](https://github.com/AppImage/AppImageKit/releases). While you're there, you should also download `appimagetool` as we'll be using that soon.
The `.desktop` file needs to be a valid [Linux Desktop Icon](https://brandonrozek.com/blog/linuxdesktopicons/). Make sure to define the [`Categories`](https://specifications.freedesktop.org/menu-spec/latest/apa.html) field, the `appimagetool` complained when I didn't. The `.desktop` file needs to be a valid [Linux Desktop Icon](https://brandonrozek.com/blog/linuxdesktopicons/). Some things to take note about the desktop file:
Copy over `gqrx` over to the AppDir: - The icon is assumed to be a `.png`
- The executable is assumed to be located in `/usr/bin/`
- Make sure to define the [`Categories`](https://specifications.freedesktop.org/menu-spec/latest/apa.html) field, the `appimagetool` complained when I didn't.
Here is an example desktop file.
```
[Desktop Entry]
Type=Application
Name=Gqrx
Icon=icon
Exec=gqrx
Categories=Development;
```
Copy over `gqrx` executable over to the AppDir:
```bash ```bash
export gqrx_loc=$(which gqrx) export gqrx_loc=$(which gqrx)
@ -66,6 +81,8 @@ export filtered_libraries=$(echo $all_libraries | grep -vwf excludelist)
echo $filtered_libraries echo $filtered_libraries
``` ```
If this filter doesn't work, then you might need to make sure each library is listed on its own line.
Finally, let's save the locations of these libraries to `library_locations.txt` Finally, let's save the locations of these libraries to `library_locations.txt`
```bash ```bash
@ -81,6 +98,8 @@ xargs -a library_locations.txt -L 1 -I @ cp @ gqrx.AppDir/usr/lib/
If there are any libraries that you need get dynamically injected during runtime, you will have to copy those over as well. If there are any libraries that you need get dynamically injected during runtime, you will have to copy those over as well.
For those using Qt plugins, those live within the `/usr/bin` directory. For example `libqxcb.so` lives in `/usr/bin/platforms/libqxcb.so`.
### Creating the AppImage ### Creating the AppImage
Finally we can use the `appimagetool` command to create the AppImage: Finally we can use the `appimagetool` command to create the AppImage: